ci: skip libunwind runtime in LLVM build
What changed, and why it matters
This is a Bitcoin Core continuous integration (CI) build script change. It removes the libunwind runtime from an LLVM/Clang library build used for sanitizer testing and adds a comment explaining why. There is no user-facing code change, no wallet or consensus change, and no security fix or vulnerability introduced.
No security action required. Treat as a normal CI maintenance commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit modifies ci/test/01_base_install.sh. When USE_INSTRUMENTED_LIBCPP is set, the script clones llvm-project and builds libcxx/libcxxabi (and previously libunwind) runtimes. The patch drops libunwind from LLVM_ENABLE_RUNTIMES and adds a comment that libunwind does not handle exceptions correctly under MemorySanitizer (MSAN), citing llvm/llvm-project issue #84348. This is a CI infrastructure/configuration correctness tweak, not a code change in Bitcoin Core itself.
Changed components
ci/test/01_base_install.shInspect captured patch +4 / −1
diff --git a/ci/test/01_base_install.sh b/ci/test/01_base_install.sh
index 7f6554ea..8b10ba10 100755
--- a/ci/test/01_base_install.sh
+++ b/ci/test/01_base_install.sh
@@ -64,8 +64,11 @@ fi
if [[ -n "${USE_INSTRUMENTED_LIBCPP}" ]]; then
${CI_RETRY_EXE} git clone --depth=1 https://github.com/llvm/llvm-project -b "llvmorg-22.1.7" /llvm-project
+# LLVM is configured with LIBCXXABI_USE_LLVM_UNWINDER=OFF,
+# because libunwind doesn't handle exceptions under MSAN.
+# https://github.com/llvm/llvm-project/issues/84348
cmake -G Ninja -B /cxx_build/ \
- -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
+ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_USE_SANITIZER="${USE_INSTRUMENTED_LIBCPP}" \
-DCMAKE_C_COMPILER=clang \
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.