Hi all,
This might be a CMake rather than seL4 question, but bear with me because
I'm new to CMake so still I don't understand how seL4 is being built.
I don't know how to add and link a piece of new code (a static library) to
the executable.
I add the statements to the CMakeList.txt:
add_library(chrises_lib STATIC ${sources})
target_link_libraries(chrises_lib ...)
and I can see libchrises_lib.a being built.
By examining build.ninja, I can see the whole bunch of libraries (.a files)
being pulled in by the linker, but there is no chrises_lib.a in the long
list of .a files. And the result is obviously 'undefined reference to' all
symbols that are im[lemented in chrises_lib.a.
What am I missing? What do I have to add to the series of CMakeList.txt
and where I need to add (besides add_library and target_link_libraries that
I'm already using per above), in order for my chrises_lib.a be included in
the list at static libs below?
#############################################
# Link the executable apps/sel4test-driver/sel4test-driver
build apps/sel4test-driver/sel4test-driver:
C_EXECUTABLE_LINKER__sel4test-driver apps/sel4test-driver/archive.o
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/arch/arm/arch.c.obj
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/main.c.obj
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/tests/interrupt.c.obj
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/tests/syscall.c.obj
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/tests/timer.c.obj
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/testtypes.c.obj
apps/sel4test-driver/CMakeFiles/sel4test-driver.dir/src/timer.c.obj |
libsel4/libsel4.a apps/sel4test-driver/sel4runtime/libsel4runtime.a
apps/sel4test-driver/seL4_libs/libsel4allocman/libsel4allocman.a
apps/sel4test-driver/seL4_libs/libsel4vka/libsel4vka.a
apps/sel4test-driver/seL4_libs/libsel4utils/libsel4utils.a
apps/sel4test-driver/sel4_projects_libs/libsel4rpc/libsel4rpc.a
apps/sel4test-driver/seL4_libs/libsel4test/libsel4test.a
apps/sel4test-driver/seL4_libs/libsel4platsupport/libsel4platsupport.a
apps/sel4test-driver/seL4_libs/libsel4muslcsys/libsel4muslcsys.a
apps/sel4test-driver/libsel4testsupport/libsel4testsupport.a
apps/sel4test-driver/seL4_libs/libsel4test/libsel4test.a
apps/sel4test-driver/sel4_projects_libs/libsel4rpc/libsel4rpc.a
apps/sel4test-driver/sel4_projects_libs/libsel4nanopb/libsel4nanopb.a
apps/sel4test-driver/sel4_projects_libs/libsel4nanopb/libnanopb.a
apps/sel4test-driver/seL4_libs/libsel4sync/libsel4sync.a
apps/sel4test-driver/seL4_libs/libsel4serialserver/libsel4serialserver.a
apps/sel4test-driver/seL4_libs/libsel4utils/libsel4utils.a
apps/sel4test-driver/util_libs/libelf/libelf.a
apps/sel4test-driver/util_libs/libcpio/libcpio.a
apps/sel4test-driver/seL4_libs/libsel4platsupport/libsel4platsupport.a
apps/sel4test-driver/sel4runtime/libsel4runtime.a
apps/sel4test-driver/util_libs/libplatsupport/libplatsupport.a
apps/sel4test-driver/util_libs/libfdt/libfdt.a
apps/sel4test-driver/seL4_libs/libsel4simple-default/libsel4simple-default.a
apps/sel4test-driver/seL4_libs/libsel4debug/libsel4debug.a
apps/sel4test-driver/seL4_libs/libsel4vspace/libsel4vspace.a
apps/sel4test-driver/seL4_libs/libsel4simple/libsel4simple.a
apps/sel4test-driver/seL4_libs/libsel4vka/libsel4vka.a libsel4/libsel4.a
apps/sel4test-driver/util_libs/libutils/libutils.a
apps/sel4test-driver/musllibc/build-temp/stage/lib/libc.a ||
apps/sel4test-driver/libsel4testsupport/libsel4testsupport.a
apps/sel4test-driver/musllibc/muslc_gen
apps/sel4test-driver/seL4_libs/libsel4allocman/libsel4allocman.a
apps/sel4test-driver/seL4_libs/libsel4debug/libsel4debug.a
apps/sel4test-driver/seL4_libs/libsel4debug/sel4debug_Gen
apps/sel4test-driver/seL4_libs/libsel4muslcsys/libsel4muslcsys.a
apps/sel4test-driver/seL4_libs/libsel4muslcsys/sel4muslcsys_Gen
apps/sel4test-driver/seL4_libs/libsel4platsupport/libsel4platsupport.a
apps/sel4test-driver/seL4_libs/libsel4platsupport/sel4platsupport_Gen
apps/sel4test-driver/seL4_libs/libsel4serialserver/libsel4serialserver.a
apps/sel4test-driver/seL4_libs/libsel4serialserver/sel4serialserver_Gen
apps/sel4test-driver/seL4_libs/libsel4simple-default/libsel4simple-default.a
apps/sel4test-driver/seL4_libs/libsel4simple/libsel4simple.a
apps/sel4test-driver/seL4_libs/libsel4sync/libsel4sync.a
apps/sel4test-driver/seL4_libs/libsel4test/libsel4test.a
apps/sel4test-driver/seL4_libs/libsel4test/sel4test_Gen
apps/sel4test-driver/seL4_libs/libsel4utils/libsel4utils.a
apps/sel4test-driver/seL4_libs/libsel4utils/sel4utils_Gen
apps/sel4test-driver/seL4_libs/libsel4vka/libsel4vka.a
apps/sel4test-driver/seL4_libs/libsel4vka/sel4vka_Gen
apps/sel4test-driver/seL4_libs/libsel4vspace/libsel4vspace.a
apps/sel4test-driver/sel4_projects_libs/libsel4nanopb/libnanopb.a
apps/sel4test-driver/sel4_projects_libs/libsel4nanopb/libsel4nanopb.a
apps/sel4test-driver/sel4_projects_libs/libsel4rpc/libsel4rpc.a
apps/sel4test-driver/sel4runtime/libsel4runtime.a
apps/sel4test-driver/sel4runtime/sel4runtime_Gen
apps/sel4test-driver/sel4test-driver_Gen
apps/sel4test-driver/sel4test-tests/sel4test-tests
apps/sel4test-driver/util_libs/libcpio/libcpio.a
apps/sel4test-driver/util_libs/libelf/libelf.a
apps/sel4test-driver/util_libs/libfdt/libfdt.a
apps/sel4test-driver/util_libs/libplatsupport/libplatsupport.a
apps/sel4test-driver/util_libs/libplatsupport/platsupport_Gen
apps/sel4test-driver/util_libs/libutils/libutils.a
apps/sel4test-driver/util_libs/libutils/utils_Gen kernel/kernel_Gen
libsel4/libsel4.a libsel4/sel4_Gen libsel4/sel4_autoconf_Gen