Issue |
125343
|
Summary |
[LLD] Linker errors: Undefined symbols in `libclang-cpp` during `clang-21` build (ProcessWarningOptions, DiagnosticBuilder, EmitDiagnostic, createDiagnostics)
|
Labels |
lld
|
Assignees |
|
Reporter |
ms178
|
Steps to reproduce:
1) Get three build scripts from:
https://github.com/ms178/archpkgbuilds/tree/main/toolchain-experimental/llvm-bolt-scripts-master
- https://github.com/ms178/archpkgbuilds/blob/main/toolchain-experimental/llvm-bolt-scripts-master/setup_llvm_repo.bash
- https://github.com/ms178/archpkgbuilds/blob/main/toolchain-experimental/llvm-bolt-scripts-master/build_stage1.bash
- https://github.com/ms178/archpkgbuilds/blob/main/toolchain-experimental/llvm-bolt-scripts-master/build_stage2-prof-generate.bash
2) Make them executable and run them in the given order.
CPU: Intel Raptor Lake
OS: CachyOS
The used script used to work fine until it broke some months ago.
```
[3543/3736] Linking CXX executable bin/clang-21
FAILED: bin/clang-21
: && /home/marcus/toolchain/llvm/llvm-bolt/bin/clang++ -O2 -g3 -march=native -mtune=native -falign-functions=32 -fno-semantic-interposition -fno-omit-frame-pointer -fcf-protection=none -mharden-sls=none -flto=thin -fwhole-program-vtables -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -w -fdiagnostics-color -ffunction-sections -fdata-sections -fprofile-generate="/home/marcus/toolchain/llvm/stage2-prof-gen/profiles" -Xclang -mllvm -Xclang -vp-counters-per-site=6 -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -Wl,--lto-CGO3 -Wl,--gc-sections -Wl,--icf=all -Wl,--lto-O2,-O2,-Bsymbolic-functions,--as-needed -fuse-ld=lld -flto=thin -fwhole-program-vtables -Wl,--push-state -Wl,-whole-archive -lmimalloc -Wl,--pop-state -lpthread -lstdc++ -lm -ldl -fuse-ld=/home/marcus/toolchain/llvm/llvm-bolt/bin/ld.lld -Wl,--color-diagnostics -fprofile-generate="/home/marcus/toolchain/llvm/stage2-prof-gen/profiles" -Wl,--gc-sections -Xlinker --dependency-file=tools/clang/tools/driver/CMakeFiles/clang.dir/link.d tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1gen_reproducer_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/clang-driver.cpp.o -o bin/clang-21 -Wl,-rpath,"\$ORIGIN/../lib:/home/marcus/toolchain/llvm/stage2-prof-gen/lib:" lib/libLLVM.so.21.0git -lclang-cpp && :
ld.lld: error: undefined symbol: clang::ProcessWarningOptions(clang::DiagnosticsEngine&, clang::DiagnosticOptions const&, llvm::vfs::FileSystem&, bool)
>>> referenced by driver.cpp:339 (/home/marcus/toolchain/llvm/llvm-project/clang/tools/driver/driver.cpp:339)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.driver.cpp.o:(clang_main(int, char**, llvm::ToolContext const&))
>>> referenced by cc1gen_reproducer_main.cpp:125 (/home/marcus/toolchain/llvm/llvm-project/clang/tools/driver/cc1gen_reproducer_main.cpp:125)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.cc1gen_reproducer_main.cpp.o:(cc1gen_reproducer_main(llvm::ArrayRef<char const*>, char const*, void*, llvm::ToolContext const&))
ld.lld: error: undefined symbol: clang::DiagnosticBuilder::DiagnosticBuilder(clang::DiagnosticsEngine*, clang::SourceLocation, unsigned int)
>>> referenced by Diagnostic.h:1499 (/home/marcus/toolchain/llvm/llvm-project/clang/include/clang/Basic/Diagnostic.h:1499)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.driver.cpp.o:(clang_main(int, char**, llvm::ToolContext const&))
>>> referenced by Diagnostic.h:1499 (/home/marcus/toolchain/llvm/llvm-project/clang/include/clang/Basic/Diagnostic.h:1499)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.driver.cpp.o:(clang_main(int, char**, llvm::ToolContext const&))
>>> referenced by Diagnostic.h:1499 (/home/marcus/toolchain/llvm/llvm-project/clang/include/clang/Basic/Diagnostic.h:1499)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.driver.cpp.o:(clang_main(int, char**, llvm::ToolContext const&))
>>> referenced 12 more times
ld.lld: error: undefined symbol: clang::DiagnosticsEngine::EmitDiagnostic(clang::DiagnosticBuilder const&, bool)
>>> referenced by Diagnostic.h:1281 (/home/marcus/toolchain/llvm/llvm-project/clang/include/clang/Basic/Diagnostic.h:1281)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.driver.cpp.o:(clang::DiagnosticBuilder::~DiagnosticBuilder())
ld.lld: error: undefined symbol: clang::CompilerInstance::createDiagnostics(llvm::vfs::FileSystem&, clang::DiagnosticConsumer*, bool)
>>> referenced by cc1_main.cpp:268 (/home/marcus/toolchain/llvm/llvm-project/clang/tools/driver/cc1_main.cpp:268)
>>> tools/clang/tools/driver/CMakeFiles/clang.dir/clang-21.lto.cc1_main.cpp.o:(cc1_main(llvm::ArrayRef<char const*>, char const*, void*))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs