Hello Sebastian,
On 2/2/23 10:09, Sebastian Sumpf wrote:
The unwind code for C++ exceptions is in ld.lib.so. But for shared
libraries we do not link ld.lib.so, because the missing unwind symbols
should end up as undefined symbols in the library. Only when the dynamic
binary is linked ld.lib.so should be required to resolve these
undefined symbols. The questions is why the linking of libc++.lib.so
complains about these undefined symbols in the first place?
Using Genode aarch64 objdump on the generated libraries shows, that only
the `_init` symbol ends up in there.
Using the same command for x86_64 shows many more things in the
libraries for this platform.
Now I wonder what is the difference in linking libraries for aarch64
compared to x86_64?
The commands to link the library for both platforms are attached.
Regards, Pirmin
[llvm:cmake]
/usr/local/genode/tool/21.05/bin/genode-x86-g++
-fPIC
-fPIC
-O2
-D__GENODE__
-m64
-nostdinc
-D__BSD_VISIBLE
-D__FreeBSD__=8
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include/spec/x86_64
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include/spec/x86
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include/spec/64bit
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/spec/x86_64
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/spec/x86
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include
-I/usr/local/genode/tool/21.05/lib/gcc/x86_64-pc-elf/10.3.0/include
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/libc
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/libc-genode
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/spec/x86/libc
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/spec/x86_64/libc
-O3
-Wl,-gc-sections
-Wl,-z
-Wl,max-page-size=0x1000
-Wl,-Ttext=0x01000000
-Wl,--eh-frame-hdr
-Wl,-rpath-link=.
-Wl,--entry=0x0
-Wl,-melf_x86_64
-Wl,--whole-archive
-nostartfiles
-nodefaultlibs
-static-libgcc
-L/data/gapfruit/goa/llvm/var/abi/x86_64
-lgcc
-l:ldso_so_support.lib.a
-T /home/pirmin/.local/goa/share/goa/ld/genode_rel.ld
-shared
-o ../../lib/libc++.lib.so
CMakeFiles/cxx_shared.dir/algorithm.cpp.obj
CMakeFiles/cxx_shared.dir/any.cpp.obj
CMakeFiles/cxx_shared.dir/atomic.cpp.obj
CMakeFiles/cxx_shared.dir/barrier.cpp.obj
CMakeFiles/cxx_shared.dir/bind.cpp.obj
CMakeFiles/cxx_shared.dir/charconv.cpp.obj
CMakeFiles/cxx_shared.dir/chrono.cpp.obj
CMakeFiles/cxx_shared.dir/condition_variable.cpp.obj
CMakeFiles/cxx_shared.dir/condition_variable_destructor.cpp.obj
CMakeFiles/cxx_shared.dir/debug.cpp.obj
CMakeFiles/cxx_shared.dir/exception.cpp.obj
CMakeFiles/cxx_shared.dir/functional.cpp.obj
CMakeFiles/cxx_shared.dir/future.cpp.obj
CMakeFiles/cxx_shared.dir/hash.cpp.obj
CMakeFiles/cxx_shared.dir/ios.cpp.obj
CMakeFiles/cxx_shared.dir/iostream.cpp.obj
CMakeFiles/cxx_shared.dir/locale.cpp.obj
CMakeFiles/cxx_shared.dir/memory.cpp.obj
CMakeFiles/cxx_shared.dir/mutex.cpp.obj
CMakeFiles/cxx_shared.dir/mutex_destructor.cpp.obj
CMakeFiles/cxx_shared.dir/new.cpp.obj
CMakeFiles/cxx_shared.dir/optional.cpp.obj
CMakeFiles/cxx_shared.dir/random.cpp.obj
CMakeFiles/cxx_shared.dir/random_shuffle.cpp.obj
CMakeFiles/cxx_shared.dir/regex.cpp.obj
CMakeFiles/cxx_shared.dir/shared_mutex.cpp.obj
CMakeFiles/cxx_shared.dir/stdexcept.cpp.obj
CMakeFiles/cxx_shared.dir/string.cpp.obj
CMakeFiles/cxx_shared.dir/strstream.cpp.obj
CMakeFiles/cxx_shared.dir/system_error.cpp.obj
CMakeFiles/cxx_shared.dir/thread.cpp.obj
CMakeFiles/cxx_shared.dir/typeinfo.cpp.obj
CMakeFiles/cxx_shared.dir/utility.cpp.obj
CMakeFiles/cxx_shared.dir/valarray.cpp.obj
CMakeFiles/cxx_shared.dir/variant.cpp.obj
CMakeFiles/cxx_shared.dir/vector.cpp.obj
CMakeFiles/cxx_shared.dir/filesystem/operations.cpp.obj
CMakeFiles/cxx_shared.dir/filesystem/directory_iterator.cpp.obj
CMakeFiles/cxx_shared.dir/filesystem/int128_builtins.cpp.obj
-nodefaultlibs
[llvm:cmake]
/usr/local/genode/tool/21.05/bin/genode-aarch64-g++
-fPIC
-fPIC
-O2
-D__GENODE__
-nostdinc
-D__BSD_VISIBLE
-D__FreeBSD__=8
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include/spec/arm_64
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include/spec/64bit
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/base/2022-09-17/include
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/spec/arm_64
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include
-I/usr/local/genode/tool/21.05/lib/gcc/aarch64-none-elf/10.3.0/include
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/libc
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/libc-genode
-I/data/gapfruit/goa/llvm/var/depot/trimpim/api/libc/2023-01-30/include/spec/arm_64/libc
-O3
-Wl,-gc-sections
-Wl,-z
-Wl,max-page-size=0x1000
-Wl,-Ttext=0x01000000
-Wl,--eh-frame-hdr
-Wl,-rpath-link=.
-Wl,--entry=0x0
-Wl,--whole-archive
-nostartfiles
-nodefaultlibs
-static-libgcc
-L/data/gapfruit/goa/llvm/var/abi/arm_v8a
-lgcc
-l:ldso_so_support.lib.a
-T /home/pirmin/.local/goa/share/goa/ld/genode_rel.ld
-shared
-o ../../lib/libc++.lib.so
CMakeFiles/cxx_shared.dir/algorithm.cpp.obj
CMakeFiles/cxx_shared.dir/any.cpp.obj
CMakeFiles/cxx_shared.dir/atomic.cpp.obj
CMakeFiles/cxx_shared.dir/barrier.cpp.obj
CMakeFiles/cxx_shared.dir/bind.cpp.obj
CMakeFiles/cxx_shared.dir/charconv.cpp.obj
CMakeFiles/cxx_shared.dir/chrono.cpp.obj
CMakeFiles/cxx_shared.dir/condition_variable.cpp.obj
CMakeFiles/cxx_shared.dir/condition_variable_destructor.cpp.obj
CMakeFiles/cxx_shared.dir/debug.cpp.obj
CMakeFiles/cxx_shared.dir/exception.cpp.obj
CMakeFiles/cxx_shared.dir/functional.cpp.obj
CMakeFiles/cxx_shared.dir/future.cpp.obj
CMakeFiles/cxx_shared.dir/hash.cpp.obj
CMakeFiles/cxx_shared.dir/ios.cpp.obj
CMakeFiles/cxx_shared.dir/iostream.cpp.obj
CMakeFiles/cxx_shared.dir/locale.cpp.obj
CMakeFiles/cxx_shared.dir/memory.cpp.obj
CMakeFiles/cxx_shared.dir/mutex.cpp.obj
CMakeFiles/cxx_shared.dir/mutex_destructor.cpp.obj
CMakeFiles/cxx_shared.dir/new.cpp.obj
CMakeFiles/cxx_shared.dir/optional.cpp.obj
CMakeFiles/cxx_shared.dir/random.cpp.obj
CMakeFiles/cxx_shared.dir/random_shuffle.cpp.obj
CMakeFiles/cxx_shared.dir/regex.cpp.obj
CMakeFiles/cxx_shared.dir/shared_mutex.cpp.obj
CMakeFiles/cxx_shared.dir/stdexcept.cpp.obj
CMakeFiles/cxx_shared.dir/string.cpp.obj
CMakeFiles/cxx_shared.dir/strstream.cpp.obj
CMakeFiles/cxx_shared.dir/system_error.cpp.obj
CMakeFiles/cxx_shared.dir/thread.cpp.obj
CMakeFiles/cxx_shared.dir/typeinfo.cpp.obj
CMakeFiles/cxx_shared.dir/utility.cpp.obj
CMakeFiles/cxx_shared.dir/valarray.cpp.obj
CMakeFiles/cxx_shared.dir/variant.cpp.obj
CMakeFiles/cxx_shared.dir/vector.cpp.obj
CMakeFiles/cxx_shared.dir/filesystem/operations.cpp.obj
CMakeFiles/cxx_shared.dir/filesystem/directory_iterator.cpp.obj
CMakeFiles/cxx_shared.dir/filesystem/int128_builtins.cpp.obj
-nodefaultlibs
_______________________________________________
Genode users mailing list
[email protected]
https://lists.genode.org/listinfo/users