On 21.02.2018 22:43, Valery V. Sedletski via genode-main wrote:
Also, is it possible for Genode build system to avoid assembling all modules into image.elf, so I could load them separately as multiple modules? (at least, older Genode versions did so)
Ok, I commented
# exec rm -rf [run_dir]/genode
out in genode/tool/run/boot_dir/nova
and now it does not remove the "genode" subdirectory, containing all the binaries after "imahge.elf.gz" creation. But I see it creating "core.o" object file, instead of "core" binary. How could I convert "core.o" to "core"? I tried to link it like this:
/usr/local/genode-gcc/bin/genode-x86-gcc -o core core.o
but it complains about duplicate symbol: "__dso_handle". It has been defined in crtbegin.o. Also, it tries to link with -lc and fails. What should be correct way to link "core" binary?
Now I found the
build_core [run_dir]/genode/$core_obj $modules [run_dir]/image.elf [core_link_address]
string in genode/tool/run/run. I tried to change it to
build_core [run_dir]/genode/$core_obj [run_dir]/core [core_link_address]
but it does not like empty $modules list. How could I create core image with empty modules list?
PS: A feature request for Genode build system: May be, it would be good to add options for etc/build.conf, to disable removing the "genode" subdirectory, containing all the binaries, plus optionally generate "core" together with "image.elf", so that it will generate a core image without embedded modules. It would be more convenient if a developer wants to copy modules to some GRUB installation manually. So, one can run the run script to generate both the "image.elf" and separate binaries. This would allow both to 1) deploy the scenario on test machine automatically and 2) copy the scenario manually to GRUB config file. For manual copying, it would be more convenient to have separate binaries, so they are not duplicated in each scenario image.elf images, which both take much space on disk, and the same binaries can be reused in many scenarios. Also, with all modules built into the "image.elf", it is not very comfortable to edit the "config" files without regenerating the "image.elf".
WBR, valery