[llvm] [LLVM][CMake][NFC] Use generator expression to separate CXXFLAGS (PR #173869)
Krasimir Georgiev via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 31 02:20:27 PST 2025
krasimirgg wrote:
We have a bot to build the rust compiler with LLVM close to HEAD.
Looks like starting from this commit, we're seeing some new linker errors like:
```
librustc_driver-c05f028e6e8d2de9.so: undefined reference to `typeinfo for llvm::AssemblyAnnotationWriter'
```
* https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/42504#019b6e7c-9018-48e5-9a64-91adc023c53f/L625
Some sort of RTTI mismatch between how we build LLVM and the rust llvm-wrapper.
The builder uses this configuration:
```
cmake "${BUILD_DIR}/src/llvm-project/llvm" -G Ninja \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_TARGETS_TO_BUILD='AArch64;ARM;Hexagon;LoongArch;MSP430;Mips;NVPTX;PowerPC;RISCV;Sparc;SystemZ;WebAssembly;X86' \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='Xtensa' \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_INCLUDE_DOCS=OFF \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
-DLLVM_ENABLE_LIBEDIT=OFF \
-DLLVM_ENABLE_BINDINGS=OFF \
-DLLVM_ENABLE_Z3_SOLVER=OFF \
-DLLVM_PARALLEL_COMPILE_JOBS=72 \
-DLLVM_TARGET_ARCH=x86_64 \
-DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-unknown-linux-gnu \
-DLLVM_ENABLE_ZLIB=ON \
-DLLVM_ENABLE_LIBXML2=OFF \
-DLLVM_VERSION_SUFFIX=-rust-dev \
-DLLVM_CCACHE_BUILD=ON \
-DCMAKE_INSTALL_MESSAGE=LAZY \
-DCMAKE_C_COMPILER=/usr/bin/clang-21 \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++-21 \
-DCMAKE_ASM_COMPILER=/usr/bin/clang-21 \
-DCMAKE_C_FLAGS='-ffunction-sections -fdata-sections -fPIC --target=x86_64-unknown-linux-gnu' \
-DCMAKE_CXX_FLAGS='-ffunction-sections -fdata-sections -fPIC --target=x86_64-unknown-linux-gnu -stdlib=libc++' \
-DCMAKE_AR=/usr/bin/ar \
-DCMAKE_INSTALL_PREFIX="${BUILD_DIR}/llvm-installed" \
-DCMAKE_ASM_FLAGS=' -ffunction-sections -fdata-sections -fPIC --target=x86_64-unknown-linux-gnu' \
-DCMAKE_BUILD_TYPE=Release \
-DLIBUNWIND_ENABLE_SHARED=false \
-DLLVM_INSTALL_UTILS=true
```
Adding `-DLLVM_ENABLE_RTTI=ON` fixes the build; but I'm not sure if it's expected that for rustc, the underlying LLVM really needs to be built with RTTI. cc @nikic
https://github.com/llvm/llvm-project/pull/173869
More information about the llvm-commits
mailing list