Hi,
On 21.06.2017 21:41, lavrovyn@...145... wrote:
Yes, default_log.cc is listed in core-sel4.mk file. However, I've recently noticed that not all of the components listed in SRC_CC actually get to compile (including default_log.cc), which results in incomplete core-sel4 library. After taking a closer look, it turned out that io_port_session_support.cc and io_port_session_component.cc are the source of this problem. I had them out commented for my sabre_lite build as you've previously suggested. Removing them from core-sel4.mk for seL4_x86_32 build gave me the same results as for sabre_lite: incomplete core-seL4 library
now I get the same error. You can't just uncomment it with '#', because all followed files will _not_ be added anymore. Just remove the lines completely. The issue here is that all files are concatenated by the '' at the end of each line. If you uncomment one in between, all lines (and therefore files) below will not be compiled anymore.
Library core-sel4 COMPILE cpu_session_component.o COMPILE cpu_session_support.o COMPILE cpu_thread_component.o COMPILE io_mem_session_component.o COMPILE io_mem_session_support.o COMPILE main.o COMPILE pd_assign_pci.o COMPILE pd_session_component.o COMPILE pd_upgrade_ram_quota.o COMPILE ram_session_component.o COMPILE ram_session_support.o COMPILE rom_session_component.o COMPILE rpc_cap_factory.o COMPILE version.o MERGE core-sel4.lib.a
and the same "undefined reference" errors at the end. Now that I know where the problem is: what can I do from here?
Please check that you compile and link the file to core. Check that the symbol actually shows up as symbol in core.o, e.g. by examining the output of "readelf -s build/<arch>/core/sel4/core.o".
In case it is successful, on x86 I get:
readelf -s build/x86_32/core/sel4/core-sel4.o | grep log | grep Log
7729: 00000000 0 NOTYPE GLOBAL DEFAULT UND _ZN6Genode3Log3logEv
Here you see the symbol part of core.o.