[llvm] [libc][ci] Add qemu armhf overlay tests to precommit CI. (PR #203369)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 12:02:50 PDT 2026


https://github.com/lntue created https://github.com/llvm/llvm-project/pull/203369

None

>From 731a161b02a96e75696c369c3def8a2cd6d6a5af Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue at google.com>
Date: Thu, 11 Jun 2026 15:01:08 -0400
Subject: [PATCH] [libc][ci] Add qemu armhf overlay tests to precommit CI.

---
 .github/workflows/libc-overlay-tests.yml | 56 +++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/libc-overlay-tests.yml b/.github/workflows/libc-overlay-tests.yml
index 09fdfc29dc0e8..7899c4204bf78 100644
--- a/.github/workflows/libc-overlay-tests.yml
+++ b/.github/workflows/libc-overlay-tests.yml
@@ -9,8 +9,9 @@ on:
       - '.github/workflows/libc-overlay-tests.yml'
 
 jobs:
-  build:
+  native:
     if: github.repository_owner == 'llvm'
+    name: ${{ matrix.os }} - ${{ matrix.compiler.c_compiler }}
     timeout-minutes: 30
     runs-on: ${{ matrix.os }}
     container: ${{ matrix.container || null }}
@@ -21,7 +22,7 @@ jobs:
         include:
           # TODO: add linux gcc when it is fixed
           - os: ubuntu-24.04
-            container: 'ghcr.io/llvm/libc-ubuntu-24.04:latest at sha256:a902fb53bdad5e4a4bb6c11b6584e717a7b3d6e886f1ea58e11f95e46226249c'
+            container: 'ghcr.io/llvm/libc-ubuntu-24.04:latest at sha256:c6e2ee2a9bf5cebd51fd27dd8e85381c2f73d90e091c764082f8ad528ee18918'
             compiler:
               c_compiler: clang-23
               cpp_compiler: clang++-23
@@ -108,3 +109,54 @@ jobs:
         --build build 
         --parallel 
         --target check-libc
+
+  qemu-armhf:
+    if: github.repository_owner == 'llvm'
+    name: qemu - armhf - ${{ matrix.c_compiler }}
+    runs-on: ubuntu-24.04
+    timeout-minutes: 30
+    container: 'ghcr.io/llvm/libc-ubuntu-24.04:latest at sha256:c6e2ee2a9bf5cebd51fd27dd8e85381c2f73d90e091c764082f8ad528ee18918'
+    strategy:
+      # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations.
+      fail-fast: false
+      matrix:
+        include:
+          - c_compiler: clang-23
+            cxx_compiler: clang++-23
+          - c_compiler: arm-linux-gnueabihf-gcc-12
+            cxx_compiler: arm-linux-gnueabihf-g++-12
+    steps:
+      - name: Checkout LLVM
+        uses: actions/checkout at 8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
+        with:
+          persist-credentials: false
+
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action at 33522472633dbd32578e909b315f5ee43ba878ce # v1.2.22
+        with:
+          max-size: 1G
+          key: libc_qemu_overlay_armhf_${{ matrix.c_compiler }}
+          variant: sccache
+
+      - name: Create QEMU wrapper
+        run: |
+          mkdir build
+          cat << 'EOF' > /__w/llvm-project/llvm-project/build/qemu-wrapper.sh
+          #!/bin/bash
+          qemu-armhf-static -L /usr/arm-linux-gnueabihf "$@"
+          EOF
+          chmod +x /__w/llvm-project/llvm-project/build/qemu-wrapper.sh
+
+      - name: Configure CMake
+        run: |
+          cmake -B build -S runtimes -G Ninja \
+            -DLLVM_ENABLE_RUNTIMES=libc \
+            -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
+            -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} \
+            -DCMAKE_BUILD_TYPE=Release \
+            -DLIBC_TARGET_TRIPLE=arm-linux-gnueabihf \
+            -DCMAKE_CROSSCOMPILING_EMULATOR=/__w/llvm-project/llvm-project/build/qemu-wrapper.sh
+
+      - name: Build and Test
+        run: |
+          cmake --build build --target libc check-libc



More information about the llvm-commits mailing list