[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 05:47:51 PDT 2025
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `polly-x86_64-linux-shared-plugin` running on `polly-x86_64-gce2` while building `llvm` at step 5 "build".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/118/builds/8554
<details>
<summary>Here is the relevant piece of the build log for the reference</summary>
```
Step 5 (build) failure: 'ninja' (failure)
...
[2035/4538] Building CXX object lib/TextAPI/CMakeFiles/LLVMTextAPI.dir/ArchitectureSet.cpp.o
[2036/4538] Building CXX object lib/TextAPI/CMakeFiles/LLVMTextAPI.dir/InterfaceFile.cpp.o
[2037/4538] Linking CXX shared library lib/libLLVMTargetParser.so.22.0git
[2038/4538] Creating library symlink lib/libLLVMTargetParser.so
[2039/4538] Linking CXX shared library lib/libLLVMFuzzerCLI.so.22.0git
[2040/4538] Creating library symlink lib/libLLVMFuzzerCLI.so
[2041/4538] Building CXX object lib/TextAPI/CMakeFiles/LLVMTextAPI.dir/TextStubV5.cpp.o
[2042/4538] Linking CXX shared library lib/libLLVMBinaryFormat.so.22.0git
[2043/4538] Creating library symlink lib/libLLVMBinaryFormat.so
[2044/4538] Linking CXX shared library lib/libLLVMOrcTargetProcess.so.22.0git
FAILED: lib/libLLVMOrcTargetProcess.so.22.0git
: && /usr/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-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 -fuse-ld=lld -Wl,--color-diagnostics -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/worker/buildbot-workers/polly-x86_64-gce2/rundir/llvm.obj/lib:" -lrt lib/libLLVMOrcShared.so.22.0git lib/libLLVMTargetParser.so.22.0git lib/libLLVMSupport.so.22.0git -Wl,-rpath-link,/home/worker/buildbot-workers/polly-x86_64-gce2/rundir/llvm.obj/lib && :
ld.lld: error: undefined symbol: llvm::object::COFFObjectFile::export_directory_begin() const
>>> referenced by LibraryResolver.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o:(llvm::orc::LibraryResolver::SymbolEnumerator::enumerateSymbols(llvm::StringRef, std::function<llvm::orc::LibraryResolver::SymbolEnumerator::EnumerateResult (llvm::StringRef)>, llvm::orc::SymbolEnumeratorOptions const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::COFFObjectFile::export_directory_end() const
>>> referenced by LibraryResolver.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o:(llvm::orc::LibraryResolver::SymbolEnumerator::enumerateSymbols(llvm::StringRef, std::function<llvm::orc::LibraryResolver::SymbolEnumerator::EnumerateResult (llvm::StringRef)>, llvm::orc::SymbolEnumeratorOptions const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::ExportDirectoryEntryRef::operator==(llvm::object::ExportDirectoryEntryRef const&) const
>>> referenced by LibraryResolver.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o:(llvm::orc::LibraryResolver::SymbolEnumerator::enumerateSymbols(llvm::StringRef, std::function<llvm::orc::LibraryResolver::SymbolEnumerator::EnumerateResult (llvm::StringRef)>, llvm::orc::SymbolEnumeratorOptions const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::ExportDirectoryEntryRef::getSymbolName(llvm::StringRef&) const
>>> referenced by LibraryResolver.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o:(llvm::orc::LibraryResolver::SymbolEnumerator::enumerateSymbols(llvm::StringRef, std::function<llvm::orc::LibraryResolver::SymbolEnumerator::EnumerateResult (llvm::StringRef)>, llvm::orc::SymbolEnumeratorOptions const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::ExportDirectoryEntryRef::moveNext()
>>> referenced by LibraryResolver.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryResolver.cpp.o:(llvm::orc::LibraryResolver::SymbolEnumerator::enumerateSymbols(llvm::StringRef, std::function<llvm::orc::LibraryResolver::SymbolEnumerator::EnumerateResult (llvm::StringRef)>, llvm::orc::SymbolEnumeratorOptions const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::object_category()
>>> referenced by LibraryScanner.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o:(llvm::object::defaultWarningHandler(llvm::Twine const&))
ld.lld: error: undefined symbol: llvm::object::ObjectFile::makeTriple() const
>>> referenced by LibraryScanner.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o:(llvm::orc::ObjectFileLoader::isArchitectureCompatible(llvm::object::ObjectFile const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::MachOObjectFile::load_commands() const
>>> referenced by LibraryScanner.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o:(llvm::orc::parseMachODeps(llvm::object::MachOObjectFile const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::MachOObjectFile::getRpathCommand(llvm::object::MachOObjectFile::LoadCommandInfo const&) const
>>> referenced by LibraryScanner.cpp
>>> lib/ExecutionEngine/Orc/TargetProcess/CMakeFiles/LLVMOrcTargetProcess.dir/LibraryScanner.cpp.o:(llvm::orc::parseMachODeps(llvm::object::MachOObjectFile const&) (.localalias))
ld.lld: error: undefined symbol: llvm::object::MachOObjectFile::getDylibIDLoadCommand(llvm::object::MachOObjectFile::LoadCommandInfo const&) const
```
</details>
https://github.com/llvm/llvm-project/pull/148410
More information about the llvm-commits
mailing list