[compiler-rt] [llvm] [ORC] Introduce LazyReexportsManager, JITLinkTrampolines, ORC-RT base… (PR #118923)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Sat Dec 7 03:37:31 PST 2024


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `clang-aarch64-sve-vls` running on `linaro-g3-03` while building `compiler-rt,llvm` at step 7 "ninja check 1".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/143/builds/3963

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 7 (ninja check 1) failure: stage 1 checked (failure)
******************** TEST 'ORC-aarch64-linux :: TestCases/Generic/lazy-link.ll' FAILED ********************
Exit Code: 2

Command Output (stderr):
--
RUN: at line 6: rm -rf /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp && mkdir -p /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp
+ rm -rf /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp
+ mkdir -p /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp
RUN: at line 7: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/clang    -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -c -o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/foo.o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/Inputs/foo-ret-42.ll
+ /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/clang -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -c -o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/foo.o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/Inputs/foo-ret-42.ll
warning: overriding the module target triple with aarch64-unknown-linux-gnu [-Woverride-module]
1 warning generated.
RUN: at line 8: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/clang    -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -c -o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/x.o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/Inputs/var-x-42.ll
+ /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/clang -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -c -o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/x.o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/Inputs/var-x-42.ll
warning: overriding the module target triple with aarch64-unknown-linux-gnu [-Woverride-module]
1 warning generated.
RUN: at line 9: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/clang    -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta   -c -o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/main.o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/lazy-link.ll
+ /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/clang -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -c -o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/main.o /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/lazy-link.ll
warning: overriding the module target triple with aarch64-unknown-linux-gnu [-Woverride-module]
1 warning generated.
RUN: at line 10: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink -orc-runtime=/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./lib/../lib/clang/20/lib/aarch64-unknown-linux-gnu/liborc_rt.a -noexec -show-linked-files /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/main.o -lazy /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/foo.o      -lazy /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/x.o | FileCheck /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/lazy-link.ll
+ /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink -orc-runtime=/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./lib/../lib/clang/20/lib/aarch64-unknown-linux-gnu/liborc_rt.a -noexec -show-linked-files /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/main.o -lazy /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/foo.o -lazy /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/x.o
+ FileCheck /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/llvm/compiler-rt/test/orc/TestCases/Generic/lazy-link.ll
llvm-jitlink error: Symbols not found: [ __orc_rt_reentry ]
llvm-jitlink: ../llvm/llvm/lib/ExecutionEngine/Orc/Core.cpp:1480: void llvm::orc::JITDylib::detachQueryHelper(AsynchronousSymbolQuery &, const SymbolNameSet &): Assertion `MaterializingInfos.count(QuerySymbol) && "QuerySymbol does not have MaterializingInfo"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink -orc-runtime=/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./lib/../lib/clang/20/lib/aarch64-unknown-linux-gnu/liborc_rt.a -noexec -show-linked-files /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/main.o -lazy /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/foo.o -lazy /home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/runtimes/runtimes-bins/compiler-rt/test/orc/AARCH64LinuxConfig/TestCases/Generic/Output/lazy-link.ll.tmp/x.o
 #0 0x0000aaaaca1684d0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x29d84d0)
 #1 0x0000aaaaca1664cc llvm::sys::RunSignalHandlers() (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x29d64cc)
 #2 0x0000aaaaca168ba4 SignalHandler(int) Signals.cpp:0:0
 #3 0x0000ffffa79579d0 (linux-vdso.so.1+0x9d0)
 #4 0x0000ffffa74bf200 __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x0000ffffa747a67c gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #6 0x0000ffffa7467130 abort ./stdlib/abort.c:81:7
 #7 0x0000ffffa7473fd0 __assert_fail_base ./assert/assert.c:89:7
 #8 0x0000ffffa7474040 __assert_perror_fail ./assert/assert-perr.c:31:1
 #9 0x0000aaaac9f57398 llvm::orc::JITDylib::detachQueryHelper(llvm::orc::AsynchronousSymbolQuery&, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>> const&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x27c7398)
#10 0x0000aaaac9f56fc8 llvm::orc::AsynchronousSymbolQuery::detach() (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x27c6fc8)
#11 0x0000aaaac9f7f3c0 llvm::orc::ExecutionSession::IL_failSymbols(llvm::orc::JITDylib&, std::vector<llvm::orc::SymbolStringPtr, std::allocator<llvm::orc::SymbolStringPtr>> const&)::$_0::operator()(llvm::orc::JITDylib::MaterializingInfo&) const Core.cpp:0:0
#12 0x0000aaaac9f6471c llvm::orc::ExecutionSession::IL_failSymbols(llvm::orc::JITDylib&, std::vector<llvm::orc::SymbolStringPtr, std::allocator<llvm::orc::SymbolStringPtr>> const&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x27d471c)
#13 0x0000aaaac9f7f88c llvm::orc::ExecutionSession::OL_notifyFailed(llvm::orc::MaterializationResponsibility&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x27ef88c)
#14 0x0000aaaac9fd94e0 llvm::orc::LazyReexportsManager::emitRedirectableSymbols(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::SymbolAliasMapEntry, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::SymbolAliasMapEntry>>, llvm::Expected<std::vector<llvm::orc::ExecutorSymbolDef, std::allocator<llvm::orc::ExecutorSymbolDef>>>) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x28494e0)
#15 0x0000aaaac9fde5f4 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<std::vector<llvm::orc::ExecutorSymbolDef, std::allocator<llvm::orc::ExecutorSymbolDef>>>>::CallImpl<llvm::orc::LazyReexportsManager::emitReentryTrampolines(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::SymbolAliasMapEntry, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::SymbolAliasMapEntry>>)::$_0>(void*, llvm::Expected<std::vector<llvm::orc::ExecutorSymbolDef, std::allocator<llvm::orc::ExecutorSymbolDef>>>&) LazyReexports.cpp:0:0
#16 0x0000aaaac9fd3268 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>>::CallImpl<llvm::orc::JITLinkReentryTrampolines::emit(llvm::IntrusiveRefCntPtr<llvm::orc::ResourceTracker>, unsigned long, llvm::unique_function<void (llvm::Expected<std::vector<llvm::orc::ExecutorSymbolDef, std::allocator<llvm::orc::ExecutorSymbolDef>>>)>)::$_0>(void*, llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>>>&) JITLinkReentryTrampolines.cpp:0:0
#17 0x0000aaaac9f5679c llvm::orc::AsynchronousSymbolQuery::handleFailed(llvm::Error) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x27c679c)
#18 0x0000aaaac9f7fa94 llvm::orc::ExecutionSession::OL_notifyFailed(llvm::orc::MaterializationResponsibility&) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x27efa94)
#19 0x0000aaaaca01d184 llvm::orc::ObjectLinkingLayerJITLinkContext::notifyFailed(llvm::Error) ObjectLinkingLayer.cpp:0:0
#20 0x0000aaaac9d2a3b8 void llvm::detail::UniqueFunctionBase<void, llvm::Error>::CallImpl<llvm::jitlink::JITLinkerBase::abandonAllocAndBailOut(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>, llvm::Error)::$_0>(void*, llvm::Error&) JITLinkGeneric.cpp:0:0
#21 0x0000aaaaca006bbc llvm::orc::InProcessMemoryMapper::release(llvm::ArrayRef<llvm::orc::ExecutorAddr>, llvm::unique_function<void (llvm::Error)>) (/home/tcwg-buildbot/worker/clang-aarch64-sve-vls/stage1/./bin/llvm-jitlink+0x2876bbc)
...

```

</details>

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


More information about the llvm-commits mailing list