[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