-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Labels
bugSomething isn't workingSomething isn't working
Description
If I ask cmake to build librealm.a then it fails to statically link in the symbols for cpptrace which leads to linker errors. librealm.a should be self-contained and include the symbols for all its dependences.
nm librealm.a | grep cpptrace
0000000000000fbc T __ZN8cpptrace10stacktraceD1Ev
0000000000001f60 T __ZN8cpptrace10stacktraceD2Ev
0000000000002404 T __ZN8cpptrace16stacktrace_frameD1Ev
0000000000002430 T __ZN8cpptrace16stacktrace_frameD2Ev
U __ZN8cpptrace18generate_raw_traceEmm
0000000000000e58 T __ZN8cpptrace9raw_traceC1Ev
0000000000001ed4 T __ZN8cpptrace9raw_traceC2Ev
0000000000000bd8 T __ZN8cpptrace9raw_traceD1Ev
0000000000001ea8 T __ZN8cpptrace9raw_traceD2Ev
U __ZNK8cpptrace16stacktrace_frame9to_stringEb
U __ZNK8cpptrace9raw_trace7resolveEv
Repo on MacOS with Apple clang version 15.0.0 (clang-1500.0.40.1)
and
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17
Trying to link anything against librealm.a
will lead to:
ld: Undefined symbols:
cpptrace::generate_raw_trace(unsigned long, unsigned long), referenced from:
Realm::Backtrace::capture_backtrace(int, int) in librealm.a[14](faults.cc.o)
cpptrace::stacktrace_frame::to_string(bool) const, referenced from:
Realm::Backtrace::print_symbols(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>&) const in librealm.a[14](faults.cc.o)
cpptrace::raw_trace::resolve() const, referenced from:
Realm::Backtrace::print_symbols(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>&) const in librealm.a[14](faults.cc.o)
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working