This is an archive of the discontinued LLVM Phabricator instance.

Fix XRayTest link on FreeBSD (and likely NetBSD too)
ClosedPublic

Authored by dim on Jan 24 2019, 12:37 PM.

Details

Summary

As reported on llvm-testers, during 8.0.0-rc1 testing I got errors while
building of XRayTest, during check-all:

[100%] Generating XRayTest-x86_64-Test
/home/dim/llvm/8.0.0/rc1/Phase3/Release/llvmCore-8.0.0-rc1.obj/./lib/libLLVMSupport.a(Signals.cpp.o): In function `llvm::sys::PrintStackTrace(llvm::raw_ostream&)':
Signals.cpp:(.text._ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x24): undefined reference to `backtrace'
Signals.cpp:(.text._ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x254): undefined reference to `llvm::itaniumDemangle(char const*, char*, unsigned long*, int*)'
clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[3]: *** [projects/compiler-rt/lib/xray/tests/unit/CMakeFiles/TXRayTest-x86_64-Test.dir/build.make:73: projects/compiler-rt/lib/xray/tests/unit/XRayTest-x86_64-Test] Error 1
gmake[3]: Target 'projects/compiler-rt/lib/xray/tests/unit/CMakeFiles/TXRayTest-x86_64-Test.dir/build' not remade because of errors.
gmake[2]: *** [CMakeFiles/Makefile2:33513: projects/compiler-rt/lib/xray/tests/unit/CMakeFiles/TXRayTest-x86_64-Test.dir/all] Error 2
gmake[2]: Target 'CMakeFiles/check-all.dir/all' not remade because of errors.
gmake[1]: *** [CMakeFiles/Makefile2:737: CMakeFiles/check-all.dir/rule] Error 2
gmake[1]: Target 'check-all' not remade because of errors.
gmake: *** [Makefile:277: check-all] Error 2
[Release Phase3] check-all failed

This is because the backtrace function requires -lexecinfo on BSD
platforms. To fix this, detect the execinfo library in
cmake/config-ix.cmake, and add it to the unit test link flags.

Additionally, since the code in sys::PrintStackTrace makes use of
itaniumDemangle, also add -lLLVMDemangle. (Note that this is more
of a general problem with libLLVMSupport, but I'm looking for a quick
fix now so it can be merged to the 8.0 branch.)

Diff Detail

Repository
rL LLVM

Event Timeline

dim created this revision.Jan 24 2019, 12:37 PM

NetBSD is affected in the same way.

dberris accepted this revision.Jan 24 2019, 4:56 PM

LGTM

This revision is now accepted and ready to land.Jan 24 2019, 4:56 PM
This revision was automatically updated to reflect the committed changes.