[libcxx-commits] [libcxx] [llvm] [libcxx][Github] Add generic-llvm-libc config to CI (PR #193822)
Aiden Grossman via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Apr 23 14:04:58 PDT 2026
https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/193822
>From f2715bba45ec790c2856e14eabd360d3176ed2ef Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 18:56:44 +0000
Subject: [PATCH 1/7] [libcxx][Github] Add generic-llvm-libc config to CI
Add the generic-llvm-libc config for CI so that we can ensure we do not
regress the config and easily test changes as we do more work.
Only run libcxx/libxxabi tests for now as libunwind fails to build due
to a missing dl_iterate_phdr implementation. It technically passes when
we enable the stub implementation, but we should have a reasonable
implementation before actually enabling.
---
.github/workflows/libcxx-build-and-test.yaml | 1 +
libcxx/utils/ci/run-buildbot | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 83f8f89ac5fe2..c5421addefa30 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -144,6 +144,7 @@ jobs:
'generic-hardening-mode-extensive-observe-semantic',
'generic-hardening-mode-fast',
'generic-hardening-mode-fast-with-abi-breaks',
+ 'generic-llvm-libc',
'generic-merged',
'generic-modules-cxx17-lsv',
'generic-no-exceptions',
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index cbb0846dfc7d1..44507f05011fa 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -466,7 +466,19 @@ generic-llvm-libc)
# Ensure we have the builtins archive built as we pass it in explicitly in
# the test config.
ninja -vC "${BUILD_DIR}" libclang_rt.builtins-x86_64.a
- check-runtimes
+
+ # Manually run only libcxx/libcxxabi tests as we currently cannot build
+ # libunwind due to a missing dl_iterate_phdr implementation.
+ # TODO(boomanaiden154): Remove this once we can build libunwind and pass
+ # the tests.
+ step "Building libc++ test dependencies"
+ ninja -vC "${BUILD_DIR}" cxx-test-depends
+
+ step "Running the libc++ tests"
+ ninja -vC "${BUILD_DIR}" check-cxx
+
+ step "Running the libc++abi tests"
+ ninja -vC "${BUILD_DIR}" check-cxxabi
;;
#
# Module builds
>From 8687e78f38eae31e6d65abbbde20595d855ba2de Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 20:21:11 +0000
Subject: [PATCH 2/7] fix
---
.github/workflows/libcxx-build-and-test.yaml | 3 ++-
libcxx/utils/ci/run-buildbot | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index c5421addefa30..a93f9b6d9f161 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -90,7 +90,8 @@ jobs:
'generic-cxx14',
'generic-cxx17',
'generic-cxx20',
- 'generic-cxx23'
+ 'generic-cxx23',
+ 'generic-llvm-libc',
]
cc: [ 'clang-23' ]
cxx: [ 'clang++-23' ]
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 44507f05011fa..59e4bfe5928b4 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -457,7 +457,7 @@ generic-llvm-libc)
mkdir -p "${BUILD_DIR}"
curl -L "https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-${LINUX_VERSION}.tar.xz" --output "${BUILD_DIR}/linux.tar.xz"
tar -xf "${BUILD_DIR}/linux.tar.xz" -C "${BUILD_DIR}"
- make LLVM=1 INSTALL_HDR_PATH="${BUILD_DIR}/linux-install" -C "${BUILD_DIR}/linux-${LINUX_VERSION}" headers_install
+ make INSTALL_HDR_PATH="${BUILD_DIR}/linux-install" -C "${BUILD_DIR}/linux-${LINUX_VERSION}" headers_install
generate-cmake-base -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-llvm-libc.cmake" \
-DLIBCXX_TEST_CONFIG="llvm-libc++-llvm-libc.cfg.in" \
>From bc2bc1c0757497f2b0df4ca0e5d5d8cf9635decd Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 20:22:21 +0000
Subject: [PATCH 3/7] fix2
---
.github/workflows/libcxx-build-and-test.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index a93f9b6d9f161..06f47261fdb19 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -45,7 +45,8 @@ jobs:
'frozen-cxx03-headers',
'generic-cxx03',
'generic-cxx26',
- 'generic-modules'
+ 'generic-modules',
+ 'generic-llvm-libc',
]
cc: [ 'clang-23' ]
cxx: [ 'clang++-23' ]
@@ -91,7 +92,6 @@ jobs:
'generic-cxx17',
'generic-cxx20',
'generic-cxx23',
- 'generic-llvm-libc',
]
cc: [ 'clang-23' ]
cxx: [ 'clang++-23' ]
>From 22cba8b1b7fbc4df6bff4faf75efb73ba7942d35 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 20:25:33 +0000
Subject: [PATCH 4/7] fix3
---
libcxx/utils/ci/run-buildbot | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 59e4bfe5928b4..69ce2a2450c84 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -451,6 +451,10 @@ generic-hardening-mode-debug)
generic-llvm-libc)
clean
+ # Install rsync, which is needed for installing the linux kernel headers.
+ apt-get update
+ apt-get install -y rsync
+
# Install kernel headers from a known-good Linux kernel version to ensure
# the test is hermetic.
export LINUX_VERSION=7.0.1
>From d69662056798f802e6c0053b4479adeaced50ccf Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 20:32:26 +0000
Subject: [PATCH 5/7] fix5
---
libcxx/utils/ci/run-buildbot | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 69ce2a2450c84..5a64315e56d09 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -452,8 +452,8 @@ generic-llvm-libc)
clean
# Install rsync, which is needed for installing the linux kernel headers.
- apt-get update
- apt-get install -y rsync
+ sudo apt-get update
+ sudo apt-get install -y rsync
# Install kernel headers from a known-good Linux kernel version to ensure
# the test is hermetic.
>From 84f6f14bffbc36d99ceade42974dd5ffab3ca6d2 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 20:42:05 +0000
Subject: [PATCH 6/7] fix6
---
libcxx/utils/ci/run-buildbot | 1 +
1 file changed, 1 insertion(+)
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 5a64315e56d09..24f27212b0dfe 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -454,6 +454,7 @@ generic-llvm-libc)
# Install rsync, which is needed for installing the linux kernel headers.
sudo apt-get update
sudo apt-get install -y rsync
+ pip3 install pyyaml==6.0.3
# Install kernel headers from a known-good Linux kernel version to ensure
# the test is hermetic.
>From 2940aa363513ef14302cf144a74a75948bc24c9f Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Thu, 23 Apr 2026 21:04:40 +0000
Subject: [PATCH 7/7] fix
---
libcxx/utils/ci/run-buildbot | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 24f27212b0dfe..7a8a4e6e5193d 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -451,10 +451,15 @@ generic-hardening-mode-debug)
generic-llvm-libc)
clean
- # Install rsync, which is needed for installing the linux kernel headers.
- sudo apt-get update
- sudo apt-get install -y rsync
- pip3 install pyyaml==6.0.3
+ # Install some dependencies that are needed for building the kernel headers
+ # and LLVM libc.
+ # TODO(boomanaiden154): Move these to being part of the base container
+ # image rather than something we install on every run.
+ if [[ -n "$GITHUB_ACTIONS" ]]; then
+ sudo apt-get update
+ sudo apt-get install -y rsync
+ pip3 install pyyaml==6.0.3
+ fi
# Install kernel headers from a known-good Linux kernel version to ensure
# the test is hermetic.
More information about the libcxx-commits
mailing list