[flang-commits] [flang] Backtrace support for flang (PR #118179)

Brad Smith via flang-commits flang-commits at lists.llvm.org
Fri Jan 31 02:44:07 PST 2025


brad0 wrote:

It looks like the runtime should link against libexecinfo on *BSD's. Backtrace_LIBRARY is filed in. I am not sure of how to go about linking with the runtime in runtime/CMakeLists.txt

```
FAILED: tools/flang/unittests/Runtime/FlangRuntimeTests
: && /usr/bin/c++ -pipe  -fno-ret-protector -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-ctad-maybe-unsupported -Wno-unused-command-line-argument -Wstring-conversion           -Wcovered-switch-default -Wno-nested-anon-types -O2 -Wl,--color-diagnostics    -Wl,--gc-sections  -Xlinker --dependency-file=tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/link.d tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/AccessTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Allocatable.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/ArrayConstructor.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/BufferTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/CharacterTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/CommandTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Complex.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/CrashHandlerFixture.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Derived.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/ExternalIOTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Format.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Inquiry.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/ListInputTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/LogicalFormatTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Matmul.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/MatmulTranspose.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/MiscIntrinsic.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Namelist.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Numeric.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/NumericalFormatTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Pointer.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Ragged.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Random.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Reduction.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/RuntimeCrashTest.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Stop.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Support.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Time.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/TemporaryStack.cpp.o tools/flang/unittests/Runtime/CMakeFiles/FlangRuntimeTests.dir/Transformational.cpp.o -o tools/flang/unittests/Runtime/FlangRuntimeTests  -Wl,-z,origin,-rpath,/home/brad/tmp/llvm-build/lib  lib/libllvm_gtest_main.a  lib/libllvm_gtest.a  -lpthread  lib/libFortranRuntime.a  -lpthread  lib/libFortranDecimal.a  lib/libclang-cpp.so.21.0git  lib/libLLVM.so.21.0git  -Wl,-rpath-link,/usr/X11R6/lib:/usr/local/lib && :
ld: error: undefined symbol: backtrace
>>> referenced by stop.cpp
>>>               stop.cpp.o:(PrintBacktrace()) in archive lib/libFortranRuntime.a
>>> did you mean: backtrace_
>>> defined in: lib/libFortranRuntime.a(stop.cpp.o)

ld: error: undefined symbol: backtrace_symbols
>>> referenced by stop.cpp
>>>               stop.cpp.o:(PrintBacktrace()) in archive lib/libFortranRuntime.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
```

https://github.com/llvm/llvm-project/pull/118179


More information about the flang-commits mailing list