Skip to content

Missing Symbols in librealm.a #226

@lightsighter

Description

@lightsighter

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 working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions