-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[libcxx] Run tests on Windows/arm64 too #161906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Github Actions has got free runners with Windows on ARM64 these days, which can be used for running CI, just as well as the other existing cases. This qualifies this configuration as a supported target platform, thus add it to the docs in the listing of supported platforms.
@llvm/pr-subscribers-github-workflow Author: Martin Storsjö (mstorsjo) ChangesGithub Actions has got free runners with Windows on ARM64 these days, which can be used for running CI, just as well as the other existing cases. This qualifies this configuration as a supported target platform, thus add it to the docs in the listing of supported platforms. Full diff: https://github.com/llvm/llvm-project/pull/161906.diff 3 Files Affected:
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 77f79a85a0a2f..b322c96d63416 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -236,7 +236,6 @@ jobs:
**/crash_diagnostics/*
windows:
- runs-on: windows-2022
needs: [ stage2 ]
strategy:
fail-fast: false
@@ -251,6 +250,8 @@ jobs:
- { config: mingw-static, mingw: true }
- { config: mingw-dll-i686, mingw: true }
- { config: mingw-incomplete-sysroot, mingw: true }
+ - { config: mingw-static-aarch64, mingw: true, runner: windows-11-arm }
+ runs-on: ${{ matrix.runner != '' && matrix.runner || 'windows-latest' }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install dependencies
@@ -264,7 +265,7 @@ jobs:
- name: Install llvm-mingw
if: ${{ matrix.mingw == true }}
run: |
- curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-ucrt-x86_64.zip
+ curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-ucrt-${{ matrix.runner == 'windows-11-arm' && 'aarch64' || 'x86_64' }}.zip
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
del llvm-mingw*.zip
mv llvm-mingw* c:\llvm-mingw
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 4d5064bfd7f3b..495ccceb31cef 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -147,7 +147,7 @@ macOS 10.13+ i386, x86_64, arm64
FreeBSD 12+ i386, x86_64, arm
Linux i386, x86_64, arm, arm64 Only glibc-2.24 and later and no other libc is officially supported
Android 5.0+ i386, x86_64, arm, arm64
-Windows i386, x86_64 Both MSVC and MinGW style environments, ABI in MSVC environments is :doc:`unstable <DesignDocs/ABIVersioning>`
+Windows i386, x86_64, arm64 Both MSVC and MinGW style environments, ABI in MSVC environments is :doc:`unstable <DesignDocs/ABIVersioning>`
AIX 7.2TL5+ powerpc, powerpc64
Embedded (picolibc) arm
===================== ========================= ============================
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 57ecf1e49dbf2..b3dc428724c58 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -706,7 +706,7 @@ mingw-dll)
-C "${MONOREPO_ROOT}/libcxx/cmake/caches/MinGW.cmake"
check-runtimes
;;
-mingw-static)
+mingw-static|mingw-static-aarch64)
clean
generate-cmake \
-C "${MONOREPO_ROOT}/libcxx/cmake/caches/MinGW.cmake" \
|
@llvm/pr-subscribers-libcxx Author: Martin Storsjö (mstorsjo) ChangesGithub Actions has got free runners with Windows on ARM64 these days, which can be used for running CI, just as well as the other existing cases. This qualifies this configuration as a supported target platform, thus add it to the docs in the listing of supported platforms. Full diff: https://github.com/llvm/llvm-project/pull/161906.diff 3 Files Affected:
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 77f79a85a0a2f..b322c96d63416 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -236,7 +236,6 @@ jobs:
**/crash_diagnostics/*
windows:
- runs-on: windows-2022
needs: [ stage2 ]
strategy:
fail-fast: false
@@ -251,6 +250,8 @@ jobs:
- { config: mingw-static, mingw: true }
- { config: mingw-dll-i686, mingw: true }
- { config: mingw-incomplete-sysroot, mingw: true }
+ - { config: mingw-static-aarch64, mingw: true, runner: windows-11-arm }
+ runs-on: ${{ matrix.runner != '' && matrix.runner || 'windows-latest' }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install dependencies
@@ -264,7 +265,7 @@ jobs:
- name: Install llvm-mingw
if: ${{ matrix.mingw == true }}
run: |
- curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-ucrt-x86_64.zip
+ curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20250709/llvm-mingw-20250709-ucrt-${{ matrix.runner == 'windows-11-arm' && 'aarch64' || 'x86_64' }}.zip
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
del llvm-mingw*.zip
mv llvm-mingw* c:\llvm-mingw
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 4d5064bfd7f3b..495ccceb31cef 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -147,7 +147,7 @@ macOS 10.13+ i386, x86_64, arm64
FreeBSD 12+ i386, x86_64, arm
Linux i386, x86_64, arm, arm64 Only glibc-2.24 and later and no other libc is officially supported
Android 5.0+ i386, x86_64, arm, arm64
-Windows i386, x86_64 Both MSVC and MinGW style environments, ABI in MSVC environments is :doc:`unstable <DesignDocs/ABIVersioning>`
+Windows i386, x86_64, arm64 Both MSVC and MinGW style environments, ABI in MSVC environments is :doc:`unstable <DesignDocs/ABIVersioning>`
AIX 7.2TL5+ powerpc, powerpc64
Embedded (picolibc) arm
===================== ========================= ============================
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 57ecf1e49dbf2..b3dc428724c58 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -706,7 +706,7 @@ mingw-dll)
-C "${MONOREPO_ROOT}/libcxx/cmake/caches/MinGW.cmake"
check-runtimes
;;
-mingw-static)
+mingw-static|mingw-static-aarch64)
clean
generate-cmake \
-C "${MONOREPO_ROOT}/libcxx/cmake/caches/MinGW.cmake" \
|
libcxx/utils/ci/run-buildbot
Outdated
check-runtimes | ||
;; | ||
mingw-static) | ||
mingw-static|mingw-static-aarch64) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need a new configuration name if it is identical?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right - as we don't need any differences here I guess we could just reuse the same config name here as well. I'll update the PR accordingly.
In general I'm happy with this, but I don't really know the GH CI stuff. Maybe @boomanaiden154 could take a look at that. |
Also fix the default runner image name, don't use "windows-latest" but keep using "windows-2022" like we did before.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The libc++ side LGTM, but I'd like someone who knows the GH CI stuff to review.
It's a bit annoying that there are no supported Windows Server SKUs on ARM to keep everything consistent, but that seems to mostly involve waiting on Microsoft to release one. |
Github Actions has got free runners with Windows on ARM64 these days, which can be used for running CI, just as well as the other existing cases.
This qualifies this configuration as a supported target platform, thus add it to the docs in the listing of supported platforms.