[llvm] [ORC] Add automatic shared library resolver for unresolved symbols. (PR #148410)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 17 10:46:08 PDT 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-latest-gcc` running on `linaro-flang-aarch64-latest-gcc` while building `llvm` at step 5 "build-unified-tree".

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

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

```
Step 5 (build-unified-tree) failure: build (failure)
...
156.926 [5598/12/2132] Building CXX object tools/clang/lib/Support/CMakeFiles/obj.clangSupport.dir/RISCVVIntrinsicUtils.cpp.o
156.929 [5598/11/2133] Generating ../../../../bin/scan-build
156.956 [5598/10/2134] Generating ../../../../libexec/c++-analyzer
157.080 [5597/10/2135] Generating ../../../../share/scan-build/scanview.css
157.084 [5597/9/2136] Generating ../../../../share/man/man1/scan-build.1
157.090 [5597/8/2137] Building Options.inc...
157.096 [5597/7/2138] Generating ../../../../share/scan-build/sorttable.js
157.108 [5589/14/2139] Generating ../../../../bin/analyze-build
157.109 [5589/13/2140] Linking CXX static library lib/libMLIRTableGen.a
157.137 [5589/12/2141] Linking CXX shared library lib/libLLVMOrcTargetProcess.so.22.0git
FAILED: lib/libLLVMOrcTargetProcess.so.22.0git 
: && /usr/local/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-dangling-reference -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libLLVMOrcTargetProcess.so.22.0git -o lib/libLLVMOrcTargetProcess.so.22.0git lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/ExecutorSharedMemoryMapperService.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/DefaultHostBootstrapValues.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/ExecutorResolver.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/JITLoaderGDB.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/JITLoaderPerf.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/JITLoaderVTune.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/OrcRTBootstrap.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/RegisterEHFrames.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/SimpleExecutorDylibManager.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/SimpleExecutorMemoryManager.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/SimpleRemoteEPCServer.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/TargetExecutionUtils.cpp.o lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/UnwindInfoManager.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/lib:"  -lrt  lib/libLLVMOrcShared.so.22.0git  lib/libLLVMTargetParser.so.22.0git  lib/libLLVMSupport.so.22.0git  -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/lib && :
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o: in function `llvm::orc::LibraryResolver::SymbolEnumerator::enumerateSymbols(llvm::StringRef, std::function<llvm::orc::LibraryResolver::SymbolEnumerator::EnumerateResult (llvm::StringRef)>, llvm::orc::SymbolEnumeratorOptions const&) [clone .localalias]':
LibraryResolver.cpp:(.text._ZN4llvm3orc15LibraryResolver16SymbolEnumerator16enumerateSymbolsENS_9StringRefESt8functionIFNS2_15EnumerateResultES3_EERKNS0_23SymbolEnumeratorOptionsE+0x4dc): undefined reference to `llvm::object::COFFObjectFile::export_directory_begin() const'
/usr/bin/ld: LibraryResolver.cpp:(.text._ZN4llvm3orc15LibraryResolver16SymbolEnumerator16enumerateSymbolsENS_9StringRefESt8functionIFNS2_15EnumerateResultES3_EERKNS0_23SymbolEnumeratorOptionsE+0x4f0): undefined reference to `llvm::object::COFFObjectFile::export_directory_end() const'
/usr/bin/ld: LibraryResolver.cpp:(.text._ZN4llvm3orc15LibraryResolver16SymbolEnumerator16enumerateSymbolsENS_9StringRefESt8functionIFNS2_15EnumerateResultES3_EERKNS0_23SymbolEnumeratorOptionsE+0x4fc): undefined reference to `llvm::object::ExportDirectoryEntryRef::operator==(llvm::object::ExportDirectoryEntryRef const&) const'
/usr/bin/ld: LibraryResolver.cpp:(.text._ZN4llvm3orc15LibraryResolver16SymbolEnumerator16enumerateSymbolsENS_9StringRefESt8functionIFNS2_15EnumerateResultES3_EERKNS0_23SymbolEnumeratorOptionsE+0x514): undefined reference to `llvm::object::ExportDirectoryEntryRef::getSymbolName(llvm::StringRef&) const'
/usr/bin/ld: LibraryResolver.cpp:(.text._ZN4llvm3orc15LibraryResolver16SymbolEnumerator16enumerateSymbolsENS_9StringRefESt8functionIFNS2_15EnumerateResultES3_EERKNS0_23SymbolEnumeratorOptionsE+0x6dc): undefined reference to `llvm::object::ExportDirectoryEntryRef::moveNext()'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::object::defaultWarningHandler(llvm::Twine const&)':
LibraryScanner.cpp:(.text._ZN4llvm6objectL21defaultWarningHandlerERKNS_5TwineE+0x24): undefined reference to `llvm::object::object_category()'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::orc::ObjectFileLoader::isArchitectureCompatible(llvm::object::ObjectFile const&) [clone .localalias]':
LibraryScanner.cpp:(.text._ZN4llvm3orc16ObjectFileLoader24isArchitectureCompatibleERKNS_6object10ObjectFileE+0x68): undefined reference to `llvm::object::ObjectFile::makeTriple() const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::orc::parseMachODeps(llvm::object::MachOObjectFile const&) [clone .localalias]':
LibraryScanner.cpp:(.text._ZN4llvm3orc14parseMachODepsERKNS_6object15MachOObjectFileE+0xbc): undefined reference to `llvm::object::MachOObjectFile::load_commands() const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc14parseMachODepsERKNS_6object15MachOObjectFileE+0x114): undefined reference to `llvm::object::MachOObjectFile::getRpathCommand(llvm::object::MachOObjectFile::LoadCommandInfo const&) const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc14parseMachODepsERKNS_6object15MachOObjectFileE+0x54c): undefined reference to `llvm::object::MachOObjectFile::getDylibIDLoadCommand(llvm::object::MachOObjectFile::LoadCommandInfo const&) const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::orc::ObjectFileLoader::loadObjectFileWithOwnership(llvm::StringRef) [clone .localalias]':
LibraryScanner.cpp:(.text._ZN4llvm3orc16ObjectFileLoader27loadObjectFileWithOwnershipENS_9StringRefE+0x60): undefined reference to `llvm::object::createBinary(llvm::StringRef, llvm::LLVMContext*, bool)'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc16ObjectFileLoader27loadObjectFileWithOwnershipENS_9StringRefE+0x3cc): undefined reference to `llvm::object::Binary::getMemoryBufferRef() const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc16ObjectFileLoader27loadObjectFileWithOwnershipENS_9StringRefE+0x3fc): undefined reference to `llvm::object::ObjectFile::createObjectFile(llvm::MemoryBufferRef, llvm::file_magic, bool)'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `bool llvm::orc::isELFSharedLibrary<llvm::object::ELFType<(llvm::endianness)1, false> >(llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> > const&)':
LibraryScanner.cpp:(.text._ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEEbRKNS2_7ELFFileIT_EE[_ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEEbRKNS2_7ELFFileIT_EE]+0x6c): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> >::program_headers() const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `bool llvm::orc::isELFSharedLibrary<llvm::object::ELFType<(llvm::endianness)1, true> >(llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, true> > const&)':
LibraryScanner.cpp:(.text._ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE1ELb1EEEEEbRKNS2_7ELFFileIT_EE[_ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE1ELb1EEEEEbRKNS2_7ELFFileIT_EE]+0x6c): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, true> >::program_headers() const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `bool llvm::orc::isELFSharedLibrary<llvm::object::ELFType<(llvm::endianness)0, false> >(llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)0, false> > const&)':
LibraryScanner.cpp:(.text._ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE0ELb0EEEEEbRKNS2_7ELFFileIT_EE[_ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE0ELb0EEEEEbRKNS2_7ELFFileIT_EE]+0x6c): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)0, false> >::program_headers() const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `bool llvm::orc::isELFSharedLibrary<llvm::object::ELFType<(llvm::endianness)0, true> >(llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)0, true> > const&)':
LibraryScanner.cpp:(.text._ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE0ELb1EEEEEbRKNS2_7ELFFileIT_EE[_ZN4llvm3orc18isELFSharedLibraryINS_6object7ELFTypeILNS_10endiannessE0ELb1EEEEEbRKNS2_7ELFFileIT_EE]+0x6c): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)0, true> >::program_headers() const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::orc::isSharedLibraryObject(llvm::object::ObjectFile&) [clone .localalias]':
LibraryScanner.cpp:(.text._ZN4llvm3orc21isSharedLibraryObjectERNS_6object10ObjectFileE+0x78): undefined reference to `llvm::object::MachOObjectFile::getHeader() const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc21isSharedLibraryObjectERNS_6object10ObjectFileE+0x11c): undefined reference to `llvm::object::MachOObjectFile::getHeader() const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc21isSharedLibraryObjectERNS_6object10ObjectFileE+0x144): undefined reference to `llvm::object::MachOObjectFile::getHeader() const'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::orc::DylibPathValidator::isSharedLibrary(llvm::StringRef) [clone .localalias]':
LibraryScanner.cpp:(.text._ZN4llvm3orc18DylibPathValidator15isSharedLibraryENS_9StringRefE+0x140): undefined reference to `llvm::identify_magic(llvm::Twine const&, llvm::file_magic&)'
/usr/bin/ld: lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o: in function `llvm::Expected<llvm::orc::LibraryScanner::LibraryDepsInfo> llvm::orc::parseELF<llvm::object::ELFType<(llvm::endianness)1, false> >(llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> > const&)':
LibraryScanner.cpp:(.text._ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE[_ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE]+0xb0): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> >::dynamicEntries() const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE[_ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE]+0x2f0): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> >::toMappedAddr(unsigned long, llvm::function_ref<llvm::Error (llvm::Twine const&)>) const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE[_ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE]+0x348): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> >::dynamicEntries() const'
/usr/bin/ld: LibraryScanner.cpp:(.text._ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE[_ZN4llvm3orc8parseELFINS_6object7ELFTypeILNS_10endiannessE1ELb0EEEEENS_8ExpectedINS0_14LibraryScanner15LibraryDepsInfoEEERKNS2_7ELFFileIT_EE]+0x588): undefined reference to `llvm::object::ELFFile<llvm::object::ELFType<(llvm::endianness)1, false> >::sections() const'

```

</details>

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


More information about the llvm-commits mailing list