[clang] [llvm] [JITLink][RISCV] Implement eh_frame handling (PR #68253)

Ivan Kosarev via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 10 11:34:49 PST 2024


kosarev wrote:

It seems after this change we started to fail on `LLVM :: ExecutionEngine/JITLink/RISCV/ELF_ehframe.s` when using debug libgcxx.

Tagging #68594.

```
/usr/include/c++/11/bits/stl_algo.h:2217:
In function:
    std::pair<_FIter, _FIter> std::equal_range(_FIter, _FIter, const _Tp&, 
    _Compare) [with _FIter = gnu_debug::_Safe_iterator<gnu_cxx::
    normal_iterator<const llvm::jitlink::Edge*, std::
    vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge> > >, 
    std::debug::vector<llvm::jitlink::Edge>, 
    std::random_access_iterator_tag>; _Tp = long unsigned int; _Compare = 
    llvm::jitlink::getRISCVPCRelHi20(const llvm::jitlink::Edge&)::Comp]

Error: elements in iterator range [first, last) are not partitioned by the 
predicate __comp and value __val.

Objects involved in the operation:
    iterator "first" @ 0x7ffccd5f47b0 {
      state = dereferenceable (start-of-sequence);
      references sequence @ 0x55c7976a5718
    }
    iterator "last" @ 0x7ffccd5f47e0 {
      state = past-the-end;
      references sequence @ 0x55c7976a5718
    }
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /home/kosarev/labs/llvm-project/build/debug+expensive_checks/bin/llvm-jitlink -noexec -phony-externals -debug-only=jitlink /home/kosarev/labs/llvm-project/build/debug+expensive_checks/test/ExecutionEngine/JITLink/RISCV/Output/ELF_ehframe.s.tmp.32.o
 #0 0x00007f95fe6db674 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/kosarev/labs/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:22
 #1 0x00007f95fe6dba95 PrintStackTraceSignalHandler(void*) /home/kosarev/labs/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x00007f95fe6d8edd llvm::sys::RunSignalHandlers() /home/kosarev/labs/llvm-project/llvm/lib/Support/Signals.cpp:105:20
 #3 0x00007f95fe6daf0c SignalHandler(int) /home/kosarev/labs/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f95fdf5c520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f95fdfb09fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007f95fdfb09fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x00007f95fdfb09fc pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x00007f95fdf5c476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007f95fdf427f3 abort ./stdlib/abort.c:81:7
#10 0x00007f95fe1e71fb std::__throw_bad_exception() (/lib/x86_64-linux-gnu/libstdc++.so.6+0xa51fb)
#11 0x00007f95ff75fa4b std::pair<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<llvm::jitlink::Edge const*, std::__cxx1998::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>>, std::__debug::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<llvm::jitlink::Edge const*, std::__cxx1998::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>>, std::__debug::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>, std::random_access_iterator_tag>> std::equal_range<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<llvm::jitlink::Edge const*, std::__cxx1998::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>>, std::__debug::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>, std::random_access_iterator_tag>, unsigned long, llvm::jitlink::getRISCVPCRelHi20(llvm::jitlink::Edge const&)::Comp>(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<llvm::jitlink::Edge const*, std::__cxx1998::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>>, std::__debug::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<llvm::jitlink::Edge const*, std::__cxx1998::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>>, std::__debug::vector<llvm::jitlink::Edge, std::allocator<llvm::jitlink::Edge>>, std::random_access_iterator_tag>, unsigned long const&, llvm::jitlink::getRISCVPCRelHi20(llvm::jitlink::Edge const&)::Comp) /usr/include/c++/11/bits/stl_algo.h:2219:7
#12 0x00007f95ff75cf94 llvm::jitlink::getRISCVPCRelHi20(llvm::jitlink::Edge const&) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp:157:74
#13 0x00007f95ff766692 llvm::jitlink::ELFJITLinker_riscv::applyFixup(llvm::jitlink::LinkGraph&, llvm::jitlink::Block&, llvm::jitlink::Edge const&) const /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp:273:12
#14 0x00007f95ff770ce5 llvm::jitlink::JITLinker<llvm::jitlink::ELFJITLinker_riscv>::fixUpBlocks(llvm::jitlink::LinkGraph&) const /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:171:11
#15 0x00007f95ff67f0d7 llvm::jitlink::JITLinkerBase::linkPhase3(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>, llvm::Expected<llvm::DenseMap<llvm::StringRef, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::orc::ExecutorSymbolDef>>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:163:33
#16 0x00007f95ff67e586 llvm::jitlink::JITLinkerBase::linkPhase2(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>, llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)::'lambda'(llvm::Expected<llvm::DenseMap<llvm::StringRef, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::orc::ExecutorSymbolDef>>>)::operator()(llvm::Expected<llvm::DenseMap<llvm::StringRef, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::orc::ExecutorSymbolDef>>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:130:39
#17 0x00007f95ff680f39 std::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, std::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation>> llvm::jitlink::createLookupContinuation<llvm::jitlink::JITLinkerBase::linkPhase2(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>, llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)::'lambda'(llvm::Expected<llvm::DenseMap<llvm::StringRef, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::orc::ExecutorSymbolDef>>>)>(llvm::jitlink::JITLinkerBase::linkPhase2(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>, llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)::'lambda'(llvm::Expected<llvm::DenseMap<llvm::StringRef, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::orc::ExecutorSymbolDef>>>))::Impl::run(llvm::Expected<llvm::DenseMap<llvm::StringRef, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::orc::ExecutorSymbolDef>>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:1780:58
#18 0x00007f9601034f75 llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef, llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::jitlink::SymbolLookupFlags>> const&, std::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, std::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation>>)::'lambda0'(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>>>)::operator()(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>>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:215:32
#19 0x00007f9601043de2 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::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef, llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::jitlink::SymbolLookupFlags>> const&, std::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, std::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation>>)::'lambda0'(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>>>)>(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>>>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#20 0x00007f9600e04635 llvm::unique_function<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>>>)>::operator()(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>>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#21 0x00007f9600dd9518 llvm::orc::AsynchronousSymbolQuery::handleComplete(llvm::orc::ExecutionSession&)::RunQueryCompleteTask::run() /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:204:41
#22 0x00007f9600dfe129 llvm::orc::ExecutionSession::runOnCurrentThread(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1712:71
#23 0x00007f9600e30d4b void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>>::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#24 0x00007f9600e03a77 llvm::unique_function<void (std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>::operator()(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#25 0x00007f9600dfe02e llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1603:17
#26 0x00007f9600dd9649 llvm::orc::AsynchronousSymbolQuery::handleComplete(llvm::orc::ExecutionSession&) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:214:18
#27 0x00007f9600de0024 llvm::orc::JITDylib::resolve(llvm::orc::MaterializationResponsibility&, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>> const&) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1045:18
#28 0x00007f9600df11ff llvm::orc::ExecutionSession::OL_notifyResolved(llvm::orc::MaterializationResponsibility&, llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>> const&) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:3035:1
#29 0x00007f9600dfe2fe llvm::orc::MaterializationResponsibility::notifyResolved(llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::orc::ExecutorSymbolDef>> const&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1966:1
#30 0x00007f9600dd9cd6 llvm::orc::AbsoluteSymbolsMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:274:44
#31 0x00007f9600de78bc llvm::orc::MaterializationTask::run() /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1921:50
#32 0x00007f9600dfe129 llvm::orc::ExecutionSession::runOnCurrentThread(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1712:71
#33 0x00007f9600e30d4b void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>>::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#34 0x00007f9600e03a77 llvm::unique_function<void (std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>::operator()(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#35 0x00007f9600dfe02e llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1603:17
#36 0x00007f9600deb3e6 llvm::orc::ExecutionSession::dispatchOutstandingMUs() /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2309:17
#37 0x00007f9600df02be llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2920:1
#38 0x00007f9600dff33a llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:580:25
#39 0x00007f9600dee11d llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, llvm::Error) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2675:19
#40 0x00007f9600de9e8f llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::__debug::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<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>>>)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2147:22
#41 0x00007f9601035456 llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef, llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::jitlink::SymbolLookupFlags>> const&, std::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, std::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:225:14
#42 0x00007f95ff67ec06 llvm::jitlink::JITLinkerBase::linkPhase2(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>, llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:126:39
#43 0x00007f95ff67df11 llvm::jitlink::JITLinkerBase::linkPhase1(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>)::'lambda0'(llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)::operator()(llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:66:28
#44 0x00007f95ff681720 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>>::CallImpl<llvm::jitlink::JITLinkerBase::linkPhase1(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>)::'lambda0'(llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)>(void*, llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#45 0x00007f9600eb9721 llvm::unique_function<void (llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)>::operator()(llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#46 0x00007f9600ff2b33 llvm::orc::MapperJITLinkMemoryManager::allocate(llvm::jitlink::JITLinkDylib const*, llvm::jitlink::LinkGraph&, llvm::unique_function<void (llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)>)::'lambda'(llvm::Expected<llvm::orc::ExecutorAddrRange>)::operator()(llvm::Expected<llvm::orc::ExecutorAddrRange>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/MapperJITLinkMemoryManager.cpp:121:16
#47 0x00007f9600ff3ac7 void llvm::detail::UniqueFunctionBase<void, llvm::Expected<llvm::orc::ExecutorAddrRange>>::CallImpl<llvm::orc::MapperJITLinkMemoryManager::allocate(llvm::jitlink::JITLinkDylib const*, llvm::jitlink::LinkGraph&, llvm::unique_function<void (llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)>)::'lambda'(llvm::Expected<llvm::orc::ExecutorAddrRange>)>(void*, llvm::Expected<llvm::orc::ExecutorAddrRange>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#48 0x000055c795ec3daf llvm::unique_function<void (llvm::Expected<llvm::orc::ExecutorAddrRange>)>::operator()(llvm::Expected<llvm::orc::ExecutorAddrRange>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#49 0x000055c795eb5438 llvm::InProcessDeltaMapper::reserve(unsigned long, llvm::unique_function<void (llvm::Expected<llvm::orc::ExecutorAddrRange>)>)::'lambda'(llvm::Expected<llvm::orc::ExecutorAddrRange>)::operator()(llvm::Expected<llvm::orc::ExecutorAddrRange>) /home/kosarev/labs/llvm-project/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:501:21
#50 0x000055c795ef71ca void llvm::detail::UniqueFunctionBase<void, llvm::Expected<llvm::orc::ExecutorAddrRange>>::CallImpl<llvm::InProcessDeltaMapper::reserve(unsigned long, llvm::unique_function<void (llvm::Expected<llvm::orc::ExecutorAddrRange>)>)::'lambda'(llvm::Expected<llvm::orc::ExecutorAddrRange>)>(void*, llvm::Expected<llvm::orc::ExecutorAddrRange>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#51 0x00007f9601009533 llvm::unique_function<void (llvm::Expected<llvm::orc::ExecutorAddrRange>)>::operator()(llvm::Expected<llvm::orc::ExecutorAddrRange>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#52 0x00007f9601000a23 llvm::orc::InProcessMemoryMapper::reserve(unsigned long, llvm::unique_function<void (llvm::Expected<llvm::orc::ExecutorAddrRange>)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp:54:13
#53 0x000055c795eb5553 llvm::InProcessDeltaMapper::reserve(unsigned long, llvm::unique_function<void (llvm::Expected<llvm::orc::ExecutorAddrRange>)>) /home/kosarev/labs/llvm-project/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:489:35
#54 0x00007f9600ff302a llvm::orc::MapperJITLinkMemoryManager::allocate(llvm::jitlink::JITLinkDylib const*, llvm::jitlink::LinkGraph&, llvm::unique_function<void (llvm::Expected<std::unique_ptr<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc, std::default_delete<llvm::jitlink::JITLinkMemoryManager::InFlightAlloc>>>)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/MapperJITLinkMemoryManager.cpp:141:20
#55 0x00007f95ff67e4c6 llvm::jitlink::JITLinkerBase::linkPhase1(std::unique_ptr<llvm::jitlink::JITLinkerBase, std::default_delete<llvm::jitlink::JITLinkerBase>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:59:35
#56 0x00007f95ff768e19 void llvm::jitlink::JITLinker<llvm::jitlink::ELFJITLinker_riscv>::link<std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext>>, std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph>>, llvm::jitlink::PassConfiguration>(std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext>>&&, std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph>>&&, llvm::jitlink::PassConfiguration&&) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:124:20
#57 0x00007f95ff75f403 llvm::jitlink::link_ELF_riscv(std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph>>, std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp:989:1
#58 0x00007f95ff6f269a llvm::jitlink::link_ELF(std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph>>, std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/ELF.cpp:137:19
#59 0x00007f95ff65e11b llvm::jitlink::link(std::unique_ptr<llvm::jitlink::LinkGraph, std::default_delete<llvm::jitlink::LinkGraph>>, std::unique_ptr<llvm::jitlink::JITLinkContext, std::default_delete<llvm::jitlink::JITLinkContext>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:511:20
#60 0x00007f9601031157 llvm::orc::ObjectLinkingLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:678:9
#61 0x00007f9600f70683 llvm::orc::BasicObjectLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Layer.cpp:220:9
#62 0x00007f9600de78bc llvm::orc::MaterializationTask::run() /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:1921:50
#63 0x00007f9600dfe129 llvm::orc::ExecutionSession::runOnCurrentThread(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1712:71
#64 0x00007f9600e30d4b void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>>::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>&) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:220:16
#65 0x00007f9600e03a77 llvm::unique_function<void (std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>::operator()(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:382:62
#66 0x00007f9600dfe02e llvm::orc::ExecutionSession::dispatchTask(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>) /home/kosarev/labs/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1603:17
#67 0x00007f9600deb3e6 llvm::orc::ExecutionSession::dispatchOutstandingMUs() /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2309:17
#68 0x00007f9600df02be llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2920:1
#69 0x00007f9600dff33a llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:580:25
#70 0x00007f9600dee11d llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, llvm::Error) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2675:19
#71 0x00007f9600de9e8f llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::__debug::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<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>>>)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2147:22
#72 0x00007f9600dea144 llvm::orc::ExecutionSession::lookup(std::__debug::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::LookupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2184:9
#73 0x00007f9600dea3a6 llvm::orc::ExecutionSession::lookup(std::__debug::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolStringPtr, llvm::orc::SymbolState) /home/kosarev/labs/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2210:70
#74 0x000055c795e95a16 getMainEntryPoint(llvm::Session&) /home/kosarev/labs/llvm-project/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:2024:50
#75 0x000055c795e95be6 getEntryPoint(llvm::Session&) /home/kosarev/labs/llvm-project/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:2039:37
#76 0x000055c795e965e2 main /home/kosarev/labs/llvm-project/llvm/tools/llvm-jitlink/llvm-jitlink.cpp:2131:34
#77 0x00007f95fdf43d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#78 0x00007f95fdf43e40 call_init ./csu/../csu/libc-start.c:128:20
#79 0x00007f95fdf43e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#80 0x000055c795e86f75 _start (/home/kosarev/labs/llvm-project/build/debug+expensive_checks/bin/llvm-jitlink+0x17f75)
Aborted (core dumped)
```

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


More information about the cfe-commits mailing list