Thanks, Kent!
Your both suggestions make a lot of sense and both worked!
Chris

On Wed, Oct 21, 2020 at 5:44 PM Kent Mcleod <kent.mcleo...@gmail.com> wrote:

> On Wed, Oct 21, 2020 at 3:46 PM Chris Koziarz
> <ch...@breakawayconsulting.com.au> wrote:
> >
> > 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?
>
> Hi Chris,
>
> You also need to add your library as a dependency on the
> sel4test-driver executable:
>
> target_link_libraries(
>     sel4test-driver
>     PUBLIC
>         sel4_autoconf
>         muslc
>         sel4
>         sel4runtime
>         sel4allocman
>         sel4vka
>         sel4utils
>         sel4rpc
>         sel4test
>         sel4platsupport
>         sel4muslcsys
>         sel4testsupport
>         chrises_lib
>     PRIVATE sel4test-driver_Config
> )
>
> Alternatively adding it as a dependency for any of the libraries that
> sel4test-driver already depends on should also cause it to link.
>
>
> > #############################################
> > # 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
> > _______________________________________________
> > Devel mailing list
> > Devel@sel4.systems
> > https://sel4.systems/lists/listinfo/devel
>
_______________________________________________
Devel mailing list
Devel@sel4.systems
https://sel4.systems/lists/listinfo/devel

Reply via email to