[libcxx-commits] [libcxx] [libc++] Enable compiler-rt when performing a bootstrapping build (PR #167065)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Nov 7 16:53:34 PST 2025
https://github.com/ldionne created https://github.com/llvm/llvm-project/pull/167065
Otherwise, we end up using whatever system-provided compiler runtime is available, which doesn't work on macOS since compiler-rt is located inside the toolchain path, which can't be found by default.
However, disable the tests for compiler-rt since those are linking against the system C++ standard library while using the just-built libc++ headers, which is non-sensical and leads to undefined references on macOS.
>From 96435afcb85f632980bed64f721034680ab51c20 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Fri, 7 Nov 2025 14:37:18 -1000
Subject: [PATCH] [libc++] Enable compiler-rt when performing a bootstrapping
build
Otherwise, we end up using whatever system-provided compiler runtime
is available, which doesn't work on macOS since compiler-rt is located
inside the toolchain path, which can't be found by default.
However, disable the tests for compiler-rt since those are linking against
the system C++ standard library while using the just-built libc++ headers,
which is non-sensical and leads to undefined references on macOS.
---
libcxx/docs/VendorDocumentation.rst | 14 ++++++++------
libcxx/utils/ci/run-buildbot | 3 ++-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/libcxx/docs/VendorDocumentation.rst b/libcxx/docs/VendorDocumentation.rst
index 7eba598909a74..babd22ff00ead 100644
--- a/libcxx/docs/VendorDocumentation.rst
+++ b/libcxx/docs/VendorDocumentation.rst
@@ -81,12 +81,14 @@ CMake invocation at ``<monorepo>/llvm``:
.. code-block:: bash
$ mkdir build
- $ cmake -G Ninja -S llvm -B build -DLLVM_ENABLE_PROJECTS="clang" \ # Configure
- -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
- -DLLVM_RUNTIME_TARGETS="<target-triple>"
- $ ninja -C build runtimes # Build
- $ ninja -C build check-runtimes # Test
- $ ninja -C build install-runtimes # Install
+ $ cmake -G Ninja -S llvm -B build \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DLLVM_ENABLE_PROJECTS="clang" \ # Configure
+ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;compiler-rt" \
+ -DLLVM_RUNTIME_TARGETS="<target-triple>"
+ $ ninja -C build runtimes # Build
+ $ ninja -C build check-runtimes # Test
+ $ ninja -C build install-runtimes # Install
.. note::
- This type of build is also commonly called a "Runtimes build", but we would like to move
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 57ecf1e49dbf2..15dbd8eb31729 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -391,11 +391,12 @@ bootstrapping-build)
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
-DLLVM_ENABLE_PROJECTS="clang;lldb" \
- -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
+ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;compiler-rt" \
-DLLVM_RUNTIME_TARGETS="$(${CXX} --print-target-triple)" \
-DLLVM_HOST_TRIPLE="$(${CXX} --print-target-triple)" \
-DLLVM_TARGETS_TO_BUILD="host" \
-DRUNTIMES_BUILD_ALLOW_DARWIN=ON \
+ -DCOMPILER_RT_INCLUDE_TESTS=OFF \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
More information about the libcxx-commits
mailing list