[llvm] Arm windows wix (PR #216523)
Tom Stellard via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 22 23:36:10 PDT 2026
https://github.com/tstellar updated https://github.com/llvm/llvm-project/pull/216523
>From a27ef945111a3235d9841d3bd25ec13c5a587119 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 13 Aug 2026 15:06:25 -0700
Subject: [PATCH 01/55] workflows/release-binaries: Disable LTO and PGO for PR
testing on Windows ARM
Otherwise they will run into the 6 hour timeout and fail every time.
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 36c04523fda06..ee450cdf0498c 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -197,7 +197,7 @@ jobs:
# These runners cannot build the full release package faster than
# the 6 hours timeout limit, so we need to use a configuration
# that builds more quickly.
- macos-14)
+ macos-14 | windows-11-arm)
bootstrap_prefix="BOOTSTRAP"
target_cmake_flags="$target_cmake_flags -DLLVM_RELEASE_ENABLE_LTO=OFF -DLLVM_RELEASE_ENABLE_PGO=OFF"
;;
>From 9e263f9bbd1469fabb1a150c50e1bb5fdae3b17a Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 13 Aug 2026 15:10:51 -0700
Subject: [PATCH 02/55] Revert "workflows/release-binaries: Disable LTO and PGO
for PR testing on Windows ARM"
This reverts commit a27ef945111a3235d9841d3bd25ec13c5a587119.
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index ee450cdf0498c..36c04523fda06 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -197,7 +197,7 @@ jobs:
# These runners cannot build the full release package faster than
# the 6 hours timeout limit, so we need to use a configuration
# that builds more quickly.
- macos-14 | windows-11-arm)
+ macos-14)
bootstrap_prefix="BOOTSTRAP"
target_cmake_flags="$target_cmake_flags -DLLVM_RELEASE_ENABLE_LTO=OFF -DLLVM_RELEASE_ENABLE_PGO=OFF"
;;
>From 6538f7552413c1861a009748cb75ebb02f2e1ec3 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 12:05:54 -0700
Subject: [PATCH 03/55] Add --skip-pgo flag to build_llvm_release
---
.github/workflows/release-binaries.yml | 3 ++-
llvm/utils/release/build_llvm_release.bat | 7 +++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 36c04523fda06..df62f799f2380 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -289,10 +289,11 @@ jobs:
env:
INPUTS_RUNS_ON: ${{ inputs.runs-on }}
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
+ EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--disable-pgo', '') }}
run: |
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
- .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout
+ .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
if ($env:INPUTS_RUNS_ON -eq "windows-11-arm") {
$zstd = (Get-ChildItem -Recurse -Filter "zstd.exe" | Select-Object -First 1).fullName
mv $zstd $env:GITHUB_WORKSPACE
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index f15065970a167..2e11452619ea2 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -10,7 +10,7 @@ goto begin
echo Script for building the LLVM installer on Windows,
echo used for the releases at https://github.com/llvm/llvm-project/releases
echo.
-echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc]
+echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc] [--disable-pgo]
echo.
echo Options:
echo --version: [required] version to build
@@ -40,6 +40,7 @@ set arm64=
set skip-checkout=
set local-python=
set force-msvc=
+set disable-pgo=
call :parse_args %*
if "%help%" NEQ "" goto usage
@@ -353,7 +354,9 @@ set cmake_flags=%all_cmake_flags:\=/%
mkdir build_%arch%
cd build_%arch%
-call :do_generate_profile || exit /b 1
+if "%disable-pgo%" == "true" (
+ call :do_generate_profile || exit /b 1
+)
cmake -GNinja %cmake_flags% ^
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;flang;mlir" ^
%common_lldb_flags% ^
>From 169b295662dd3f566d7f3d80077b9d108d5d9760 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 12:09:27 -0700
Subject: [PATCH 04/55] Debug
---
.github/workflows/release-binaries-all.yml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.github/workflows/release-binaries-all.yml b/.github/workflows/release-binaries-all.yml
index 862300a8118e5..ccbb329966bc7 100644
--- a/.github/workflows/release-binaries-all.yml
+++ b/.github/workflows/release-binaries-all.yml
@@ -108,10 +108,6 @@ jobs:
# We use ubuntu-22.04 rather than the latest version to make the built
# binaries more portable (eg functional aginast older glibc).
runs-on:
- - ubuntu-22.04
- - ubuntu-22.04-arm
- - macos-14
- - windows-2022
- windows-11-arm
uses: ./.github/workflows/release-binaries.yml
>From d171528852f8a1b7e3c4d82726b388a51c11e785 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 12:20:00 -0700
Subject: [PATCH 05/55] Fix
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index df62f799f2380..2c9442f62ebde 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -293,7 +293,7 @@ jobs:
run: |
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
- .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
+ .\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
if ($env:INPUTS_RUNS_ON -eq "windows-11-arm") {
$zstd = (Get-ChildItem -Recurse -Filter "zstd.exe" | Select-Object -First 1).fullName
mv $zstd $env:GITHUB_WORKSPACE
>From 7291c0cae515e6dee098a26e3b2281e9ea07ab3f Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 15:09:43 -0700
Subject: [PATCH 06/55] Fix
---
llvm/utils/release/build_llvm_release.bat | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 2e11452619ea2..b1c21478f210e 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -354,7 +354,7 @@ set cmake_flags=%all_cmake_flags:\=/%
mkdir build_%arch%
cd build_%arch%
-if "%disable-pgo%" == "true" (
+if "%disable-pgo%" != "true" (
call :do_generate_profile || exit /b 1
)
cmake -GNinja %cmake_flags% ^
>From 4bbc89c2b8355da8d36433bd91269eb96b11fe21 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 17:19:20 -0700
Subject: [PATCH 07/55] INstall Wix
---
.github/workflows/release-binaries.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 2c9442f62ebde..2879ff55bb645 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -283,6 +283,10 @@ jobs:
release_dir=`find "$BUILD_PREFIX/build" -iname 'stage2-bins'`
mv "$release_dir/$RELEASE_BINARY_FILENAME" .
+ - name: Install Wix (Windows ARM64)
+ if: runner.os == 'Windows' && runner.arch == 'ARM64'
+ run: dotnet tool install --global wix
+
- name: Build Windows
id: build-windows
if: runner.os == 'Windows'
>From a62023c2a604563391b957524f62c9b7d85b7ac3 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 15 Aug 2026 20:26:40 -0700
Subject: [PATCH 08/55] Fix condition
---
llvm/utils/release/build_llvm_release.bat | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index b1c21478f210e..11ca0feab1349 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -354,7 +354,7 @@ set cmake_flags=%all_cmake_flags:\=/%
mkdir build_%arch%
cd build_%arch%
-if "%disable-pgo%" != "true" (
+if "%disable-pgo%" neq "true" (
call :do_generate_profile || exit /b 1
)
cmake -GNinja %cmake_flags% ^
>From 9e09c66f4f6557466d018326c050abe929f6f809 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Mon, 17 Aug 2026 12:26:38 -0700
Subject: [PATCH 09/55] Fast build
---
llvm/utils/release/build_llvm_release.bat | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 11ca0feab1349..0d44406fb444c 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -10,7 +10,7 @@ goto begin
echo Script for building the LLVM installer on Windows,
echo used for the releases at https://github.com/llvm/llvm-project/releases
echo.
-echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc] [--disable-pgo]
+echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc] [--fast-build]
echo.
echo Options:
echo --version: [required] version to build
@@ -40,7 +40,7 @@ set arm64=
set skip-checkout=
set local-python=
set force-msvc=
-set disable-pgo=
+set fast-build=
call :parse_args %*
if "%help%" NEQ "" goto usage
@@ -327,6 +327,7 @@ cmake -GNinja %cmake_flags% ^
-DLLVM_TARGETS_TO_BUILD=Native ^
%llvm_src%\llvm || exit /b 1
ninja || ninja || ninja || exit /b 1
+if "%fast-build%" neq "true" (
ninja check-llvm || ninja check-llvm || ninja check-llvm || exit /b 1
ninja check-clang || ninja check-clang || ninja check-clang || exit /b 1
ninja check-lld || ninja check-lld || ninja check-lld || exit /b 1
@@ -335,6 +336,7 @@ if "%arch%"=="amd64" (
)
ninja check-clang-tools || ninja check-clang-tools || ninja check-clang-tools || exit /b 1
ninja check-clangd || ninja check-clangd || ninja check-clangd || exit /b 1
+)
cd..
REM CMake expects the paths that specifies the compiler and linker to be
@@ -354,7 +356,7 @@ set cmake_flags=%all_cmake_flags:\=/%
mkdir build_%arch%
cd build_%arch%
-if "%disable-pgo%" neq "true" (
+if "%fast-build%" neq "true" (
call :do_generate_profile || exit /b 1
)
cmake -GNinja %cmake_flags% ^
>From ad7f393de7590b09fe21e1c1654350c677d3ff66 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Mon, 17 Aug 2026 14:02:57 -0700
Subject: [PATCH 10/55] Use --fast-build flag
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 2879ff55bb645..2db9371529a7e 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -293,7 +293,7 @@ jobs:
env:
INPUTS_RUNS_ON: ${{ inputs.runs-on }}
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
- EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--disable-pgo', '') }}
+ EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--fast-build', '') }}
run: |
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
>From 1c10e8b0744ed07114628dceaa545fe05a2c6fea Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Mon, 17 Aug 2026 21:12:16 -0700
Subject: [PATCH 11/55] Fix wix install
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 2db9371529a7e..cfc88be912d82 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -285,7 +285,7 @@ jobs:
- name: Install Wix (Windows ARM64)
if: runner.os == 'Windows' && runner.arch == 'ARM64'
- run: dotnet tool install --global wix
+ run: Install-ChocoPackage wixtoolset -ArgumentList "--force"
- name: Build Windows
id: build-windows
>From 42435b993ee94c58f8f61233eed7f1574ac548f1 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Tue, 18 Aug 2026 06:42:29 -0700
Subject: [PATCH 12/55] Fix Wix install
---
.github/workflows/release-binaries.yml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index cfc88be912d82..8a3b0297f6521 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -283,9 +283,16 @@ jobs:
release_dir=`find "$BUILD_PREFIX/build" -iname 'stage2-bins'`
mv "$release_dir/$RELEASE_BINARY_FILENAME" .
+ # This is copied from https://github.com/actions/runner-images/blob/main/images/windows/scripts/build/Install-Wix.ps1
- name: Install Wix (Windows ARM64)
if: runner.os == 'Windows' && runner.arch == 'ARM64'
- run: Install-ChocoPackage wixtoolset -ArgumentList "--force"
+ run: |
+ Install-ChocoPackage wixtoolset -ArgumentList "--force"
+ Update-Environment
+ $currentPath = [System.Environment]::GetEnvironmentVariable("PATH", "Machine")
+ $newPath = $currentPath + ";$(Join-Path -Path $env:WIX -ChildPath "bin")"
+ [Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
+ Update-Environment
- name: Build Windows
id: build-windows
>From 80390f51e3b5db22d24d14b5e6ede4883a040aea Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Tue, 18 Aug 2026 14:54:39 -0700
Subject: [PATCH 13/55] Debug
---
.github/workflows/release-binaries.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 8a3b0297f6521..a588f2df0b93d 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -293,6 +293,7 @@ jobs:
$newPath = $currentPath + ";$(Join-Path -Path $env:WIX -ChildPath "bin")"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
Update-Environment
+ Get-ChildItem -Path C:\ -Filter candle.exe -Recurse
- name: Build Windows
id: build-windows
>From 2e359e808a33c11454be1d44e8a1d16a9ea7d42b Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Tue, 18 Aug 2026 15:15:24 -0700
Subject: [PATCH 14/55] Debug
---
.github/workflows/release-binaries-all.yml | 1 +
.github/workflows/release-binaries.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/.github/workflows/release-binaries-all.yml b/.github/workflows/release-binaries-all.yml
index ccbb329966bc7..4a1e51d58a2b0 100644
--- a/.github/workflows/release-binaries-all.yml
+++ b/.github/workflows/release-binaries-all.yml
@@ -108,6 +108,7 @@ jobs:
# We use ubuntu-22.04 rather than the latest version to make the built
# binaries more portable (eg functional aginast older glibc).
runs-on:
+ - windows-2022
- windows-11-arm
uses: ./.github/workflows/release-binaries.yml
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index a588f2df0b93d..4d30a570d0b52 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -240,6 +240,7 @@ jobs:
if: runner.os == 'Windows'
run: |
git config --global core.autocrlf false
+ Get-ChildItem -Path C:\ -Filter candle.exe -Recurse
- name: Checkout LLVM
uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
>From c61cca1a2a7fbded80ac40108bc50fb72321cb99 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Tue, 18 Aug 2026 15:28:08 -0700
Subject: [PATCH 15/55] Debug
---
.github/workflows/release-binaries.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 4d30a570d0b52..8317781e74379 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -240,7 +240,7 @@ jobs:
if: runner.os == 'Windows'
run: |
git config --global core.autocrlf false
- Get-ChildItem -Path C:\ -Filter candle.exe -Recurse
+ Get-ChildItem -Path C:\ -Filter candle.exe -Recurse -ErrorAction SilentlyContinue
- name: Checkout LLVM
uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -294,7 +294,7 @@ jobs:
$newPath = $currentPath + ";$(Join-Path -Path $env:WIX -ChildPath "bin")"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
Update-Environment
- Get-ChildItem -Path C:\ -Filter candle.exe -Recurse
+ Get-ChildItem -Path C:\ -Filter candle.exe -Recurse -ErrorAction SilentlyContinue
- name: Build Windows
id: build-windows
>From 46e580903b15d6ee19e433a344279311856e64ae Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 06:25:22 -0700
Subject: [PATCH 16/55] Fix wix install
---
.github/workflows/release-binaries.yml | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 8317781e74379..9c789f449382c 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -284,16 +284,10 @@ jobs:
release_dir=`find "$BUILD_PREFIX/build" -iname 'stage2-bins'`
mv "$release_dir/$RELEASE_BINARY_FILENAME" .
- # This is copied from https://github.com/actions/runner-images/blob/main/images/windows/scripts/build/Install-Wix.ps1
- name: Install Wix (Windows ARM64)
if: runner.os == 'Windows' && runner.arch == 'ARM64'
run: |
- Install-ChocoPackage wixtoolset -ArgumentList "--force"
- Update-Environment
- $currentPath = [System.Environment]::GetEnvironmentVariable("PATH", "Machine")
- $newPath = $currentPath + ";$(Join-Path -Path $env:WIX -ChildPath "bin")"
- [Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
- Update-Environment
+ dotnet tool install --global wix
Get-ChildItem -Path C:\ -Filter candle.exe -Recurse -ErrorAction SilentlyContinue
- name: Build Windows
>From 4de68f8641bb6b21dd3d13ab1dc3ccabf8f972bb Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 07:44:11 -0700
Subject: [PATCH 17/55] Wix test
---
.github/workflows/CMakeLists.txt | 3 +++
.github/workflows/test.c | 1 +
.github/workflows/wix-test.yml | 14 ++++++++++++++
3 files changed, 18 insertions(+)
create mode 100644 .github/workflows/CMakeLists.txt
create mode 100644 .github/workflows/test.c
create mode 100644 .github/workflows/wix-test.yml
diff --git a/.github/workflows/CMakeLists.txt b/.github/workflows/CMakeLists.txt
new file mode 100644
index 0000000000000..88974a7897d83
--- /dev/null
+++ b/.github/workflows/CMakeLists.txt
@@ -0,0 +1,3 @@
+
+cmake_minimum_required(VERSION 3.20.0)
+add_executable(test test.c)
diff --git a/.github/workflows/test.c b/.github/workflows/test.c
new file mode 100644
index 0000000000000..705d16172d175
--- /dev/null
+++ b/.github/workflows/test.c
@@ -0,0 +1 @@
+int main(int argc, char **argv) { }
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
new file mode 100644
index 0000000000000..12ddf12d4584a
--- /dev/null
+++ b/.github/workflows/wix-test.yml
@@ -0,0 +1,14 @@
+on:
+ push:
+
+jobs:
+ wix-test:
+ runs-on: windows-11-arm
+ steps:
+ - shell: bash
+ run: |
+ dotnet tool install --global wix
+ cmake -G Ninja -S . -B build
+ ninja -C build package
+
+
>From ad1f13be240d00de18de82e3f686990e7f54dcc5 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 07:45:23 -0700
Subject: [PATCH 18/55] Fix
---
.github/workflows/wix-test.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 12ddf12d4584a..f0b7cae852a61 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -8,7 +8,7 @@ jobs:
- shell: bash
run: |
dotnet tool install --global wix
- cmake -G Ninja -S . -B build
+ cmake -G Ninja -S .github/workflows -B build
ninja -C build package
>From a73d8f4cade3478e231d55e12bea9d38d8f49e4c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 07:47:52 -0700
Subject: [PATCH 19/55] Fix
---
.github/workflows/wix-test.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index f0b7cae852a61..555e5944e10ac 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -8,7 +8,10 @@ jobs:
- shell: bash
run: |
dotnet tool install --global wix
- cmake -G Ninja -S .github/workflows -B build
+ echo "int main(int argc, char **argv) { }" > test.c
+ echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
+ echo "add_executable(test test.c)" >> CMakeLists.txt
+ cmake -G Ninja -S . -B build
ninja -C build package
>From 55b293d37d2931f23f2eca50f266104e9a0bb537 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:14:19 -0700
Subject: [PATCH 20/55] Fix
---
.github/workflows/wix-test.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 555e5944e10ac..64cafe89c4654 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -11,6 +11,7 @@ jobs:
echo "int main(int argc, char **argv) { }" > test.c
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
+ echo "include(CPack)" >> CMakeLists.txt
cmake -G Ninja -S . -B build
ninja -C build package
>From c6104dd866c1c6c0b8755280013bc2fd38e3a61c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:15:26 -0700
Subject: [PATCH 21/55] Fix
---
.github/workflows/wix-test.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 64cafe89c4654..5f2c028d2efbf 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -12,7 +12,7 @@ jobs:
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
echo "include(CPack)" >> CMakeLists.txt
- cmake -G Ninja -S . -B build
+ cmake -G Ninja -S . -B build -DCPACK_GENERATOR=WIX
ninja -C build package
>From 64929afea52694a7185fa0b6c215c34f960a63ef Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:17:44 -0700
Subject: [PATCH 22/55] Fix
---
.github/workflows/wix-test.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 5f2c028d2efbf..a0f5c9bd1264b 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -8,6 +8,7 @@ jobs:
- shell: bash
run: |
dotnet tool install --global wix
+ choco install wixtoolset
echo "int main(int argc, char **argv) { }" > test.c
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
>From 4d0ba4556966f2859e6a4c1751131c0228d92442 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:19:48 -0700
Subject: [PATCH 23/55] Fix
---
.github/workflows/wix-test.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index a0f5c9bd1264b..3b93d529d22e5 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -9,6 +9,7 @@ jobs:
run: |
dotnet tool install --global wix
choco install wixtoolset
+ gcm candle.exe
echo "int main(int argc, char **argv) { }" > test.c
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
>From 14b51e422409d8d66eabdd1cfa80af8f4004f916 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:22:12 -0700
Subject: [PATCH 24/55] Fix
---
.github/workflows/wix-test.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 3b93d529d22e5..f541dd1838ff4 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -9,7 +9,7 @@ jobs:
run: |
dotnet tool install --global wix
choco install wixtoolset
- gcm candle.exe
+ which candle.exe
echo "int main(int argc, char **argv) { }" > test.c
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
>From a923768ad392adea5bf6b8e08080911e28ff502e Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:24:41 -0700
Subject: [PATCH 25/55] Fix
---
.github/workflows/wix-test.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index f541dd1838ff4..2bbc6525cb866 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -9,7 +9,7 @@ jobs:
run: |
dotnet tool install --global wix
choco install wixtoolset
- which candle.exe
+ #which candle.exe
echo "int main(int argc, char **argv) { }" > test.c
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
@@ -17,4 +17,7 @@ jobs:
cmake -G Ninja -S . -B build -DCPACK_GENERATOR=WIX
ninja -C build package
+ - shell: bash
+ run: |
+ which candle.exe
>From 065e1109c8fc0408443d01b78eb085be2ce49524 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:26:48 -0700
Subject: [PATCH 26/55] Fix
---
.github/workflows/wix-test.yml | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 2bbc6525cb866..7a89f1d260b04 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -10,6 +10,12 @@ jobs:
dotnet tool install --global wix
choco install wixtoolset
#which candle.exe
+
+ - shell: bash
+ run: |
+ which candle.exe
+ - shell: bash
+ run: |
echo "int main(int argc, char **argv) { }" > test.c
echo "cmake_minimum_required(VERSION 3.20.0)" > CMakeLists.txt
echo "add_executable(test test.c)" >> CMakeLists.txt
@@ -17,7 +23,3 @@ jobs:
cmake -G Ninja -S . -B build -DCPACK_GENERATOR=WIX
ninja -C build package
- - shell: bash
- run: |
- which candle.exe
-
>From cb9166a15a1c18ea09b4274a734b3b337ef2df34 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 11:31:07 -0700
Subject: [PATCH 27/55] Fix
---
.github/workflows/wix-test.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 7a89f1d260b04..59a22fcbbb92b 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -10,7 +10,7 @@ jobs:
dotnet tool install --global wix
choco install wixtoolset
#which candle.exe
-
+ - run: echo "${env:WIX}bin" >> $env:GITHUB_PATH
- shell: bash
run: |
which candle.exe
>From 2518d5104e4a56e682abfc7a672ffa0f76051e51 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 15:15:29 -0700
Subject: [PATCH 28/55] Debug
---
.github/workflows/wix-test.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 59a22fcbbb92b..2b167bfdd68f2 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -10,6 +10,7 @@ jobs:
dotnet tool install --global wix
choco install wixtoolset
#which candle.exe
+ - run: echo "${env:WIX}bin"
- run: echo "${env:WIX}bin" >> $env:GITHUB_PATH
- shell: bash
run: |
>From 25395b1173f9ebf5a38bc6436a801036c56a4640 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 15:31:46 -0700
Subject: [PATCH 29/55] Fix
---
.github/workflows/wix-test.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 2b167bfdd68f2..84b94f8fa2d1b 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -11,6 +11,7 @@ jobs:
choco install wixtoolset
#which candle.exe
- run: echo "${env:WIX}bin"
+ - run: echo "C:\Program Files (x86)\WiX Toolset v3.14\bin" >> $env:GITHUB_PATH
- run: echo "${env:WIX}bin" >> $env:GITHUB_PATH
- shell: bash
run: |
>From d4bc3bb34bcdf800509cfccae2d5e4e347e44b44 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 16:22:00 -0700
Subject: [PATCH 30/55] Fix
---
.github/workflows/wix-test.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 84b94f8fa2d1b..2e8cf448cb6df 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -11,8 +11,9 @@ jobs:
choco install wixtoolset
#which candle.exe
- run: echo "${env:WIX}bin"
- - run: echo "C:\Program Files (x86)\WiX Toolset v3.14\bin" >> $env:GITHUB_PATH
+ #- run: echo "C:\Program Files (x86)\WiX Toolset v3.14\bin" >> $env:GITHUB_PATH
- run: echo "${env:WIX}bin" >> $env:GITHUB_PATH
+ - run: Split-Path (Get-Command candle.exe).Source >> $env:GITHUB_PATH
- shell: bash
run: |
which candle.exe
>From 0563ee45370d9d3bed502b784049177322b0a5cf Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 16:31:38 -0700
Subject: [PATCH 31/55] Fix
---
.github/workflows/wix-test.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/wix-test.yml b/.github/workflows/wix-test.yml
index 2e8cf448cb6df..7a9467ab52bde 100644
--- a/.github/workflows/wix-test.yml
+++ b/.github/workflows/wix-test.yml
@@ -13,7 +13,7 @@ jobs:
- run: echo "${env:WIX}bin"
#- run: echo "C:\Program Files (x86)\WiX Toolset v3.14\bin" >> $env:GITHUB_PATH
- run: echo "${env:WIX}bin" >> $env:GITHUB_PATH
- - run: Split-Path (Get-Command candle.exe).Source >> $env:GITHUB_PATH
+ - run: Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName >> $env:GITHUB_PATH
- shell: bash
run: |
which candle.exe
>From 7f3b997620095f29f71d0f3d690555d95e270559 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Wed, 19 Aug 2026 16:41:55 -0700
Subject: [PATCH 32/55] Fix
---
.github/workflows/release-binaries.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 9c789f449382c..ea9dc644f8b45 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -287,8 +287,8 @@ jobs:
- name: Install Wix (Windows ARM64)
if: runner.os == 'Windows' && runner.arch == 'ARM64'
run: |
- dotnet tool install --global wix
- Get-ChildItem -Path C:\ -Filter candle.exe -Recurse -ErrorAction SilentlyContinue
+ choco install wixtoolset
+ Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName >> $env:GITHUB_PATH
- name: Build Windows
id: build-windows
>From 10a45bc7c19abe6d79101933585870a46c4b1927 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 10:30:50 -0700
Subject: [PATCH 33/55] workflows/release-binaries: Install Wix on Windows
ARM64
Wix is used for generating the installer and is not installed by default
on Windows ARM64.
---
.github/workflows/release-binaries.yml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 6893a76541fd6..88dbf2c1c5392 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -291,6 +291,14 @@ jobs:
release_dir=`find "$BUILD_PREFIX/build" -iname 'stage2-bins'`
mv "$release_dir/$RELEASE_BINARY_FILENAME" .
+ # Wix is not installed by default on Windows ARM64
+ - name: Install Wix (Windows ARM64)
+ if: runner.os == 'Windows' && runner.arch == 'ARM64'
+ run: |
+ choco install wixtoolset
+ # Add wix install directory to PATH.
+ Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
+
- name: Build Windows
id: build-windows
if: runner.os == 'Windows'
>From 9625bc6e6705f9a96856dd28ece3a5fb98067004 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 11:00:43 -0700
Subject: [PATCH 34/55] Add fast cc test
---
.github/workflows/test-fast-cc.yml | 35 ++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
create mode 100644 .github/workflows/test-fast-cc.yml
diff --git a/.github/workflows/test-fast-cc.yml b/.github/workflows/test-fast-cc.yml
new file mode 100644
index 0000000000000..ca77e376787dd
--- /dev/null
+++ b/.github/workflows/test-fast-cc.yml
@@ -0,0 +1,35 @@
+on:
+ push:
+
+
+jobs:
+ test:
+ runs-on: windows-11-arm
+ env:
+ LLVM_VERSION: 22.1.8
+ steps:
+ - run: |
+ New-Item -Path "C:\temp-download" -ItemType "Directory" -Force ;
+ New-Item -Path "C:\clang" -ItemType "Directory" -Force ;
+ Invoke-WebRequest -Uri "http://github.com/llvm/llvm-project/releases/download/llvmorg-${env:LLVM_VERSION}/clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -OutFile "clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" ;
+ (Get-FileHash -Path "C:\temp-download\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -Algorithm MD5).Hash -eq '0ae1d3effd9ab9d323f7fa595777f0a2' ;
+ xz.exe -d -qq clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz ;
+ C:\Windows\System32\tar.exe -xf clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar -C C:\clang ;
+ Set-Location C:\clang ;
+ Rename-Item -Path "C:\clang\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc" -NewName "C:\clang\clang-msvc" ;
+ Set-Location C:\clang\clang-msvc ;
+ Remove-Item -Path C:\clang\clang-msvc\libexec -Recurse -Force ;
+ Remove-Item -Path C:\clang\clang-msvc\share -Recurse -Force ;
+ Rename-Item -Path "C:\clang\clang-msvc\bin" -NewName "C:\clang\clang-msvc\bin-full" ;
+ New-Item -Path "C:\clang\clang-msvc\bin" -ItemType Directory -Force ;
+ Set-Location C:\clang\clang-msvc\bin ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\*.dll -Destination C:\clang\clang-msvc\bin\. ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\clang-cl.exe -Destination C:\clang\clang-msvc\bin\. ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
+ Set-Location C:\clang\clang-msvc ;
+ Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
+
+ - run: |
+ clang --version
+
+
>From aa74fbe12eec9fb8c2e240043ddce9f274ed1c35 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 11:02:19 -0700
Subject: [PATCH 35/55] Fix
---
.github/workflows/test-fast-cc.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/test-fast-cc.yml b/.github/workflows/test-fast-cc.yml
index ca77e376787dd..8e414f716f258 100644
--- a/.github/workflows/test-fast-cc.yml
+++ b/.github/workflows/test-fast-cc.yml
@@ -5,9 +5,9 @@ on:
jobs:
test:
runs-on: windows-11-arm
- env:
- LLVM_VERSION: 22.1.8
- steps:
+ env:
+ LLVM_VERSION: 22.1.8
+ steps:
- run: |
New-Item -Path "C:\temp-download" -ItemType "Directory" -Force ;
New-Item -Path "C:\clang" -ItemType "Directory" -Force ;
>From b42d1a8aab8867b5535ad65edeff9f6ab23f6e54 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 11:07:59 -0700
Subject: [PATCH 36/55] Fix
---
.github/workflows/test-fast-cc.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/test-fast-cc.yml b/.github/workflows/test-fast-cc.yml
index 8e414f716f258..6837f9a63a982 100644
--- a/.github/workflows/test-fast-cc.yml
+++ b/.github/workflows/test-fast-cc.yml
@@ -11,6 +11,7 @@ jobs:
- run: |
New-Item -Path "C:\temp-download" -ItemType "Directory" -Force ;
New-Item -Path "C:\clang" -ItemType "Directory" -Force ;
+ Set-Location C:\temp-download ;
Invoke-WebRequest -Uri "http://github.com/llvm/llvm-project/releases/download/llvmorg-${env:LLVM_VERSION}/clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -OutFile "clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" ;
(Get-FileHash -Path "C:\temp-download\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -Algorithm MD5).Hash -eq '0ae1d3effd9ab9d323f7fa595777f0a2' ;
xz.exe -d -qq clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz ;
>From afd39b7e78b5dca17e1891eb3299fa63866dfc2f Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 11:10:20 -0700
Subject: [PATCH 37/55] Fix
---
.github/workflows/test-fast-cc.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/test-fast-cc.yml b/.github/workflows/test-fast-cc.yml
index 6837f9a63a982..6d85c8ba529d5 100644
--- a/.github/workflows/test-fast-cc.yml
+++ b/.github/workflows/test-fast-cc.yml
@@ -32,5 +32,6 @@ jobs:
- run: |
clang --version
+ clang-cl --version
>From 82ffe865e919e97dd7cf4345acb655ac2811e7fe Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 11:15:06 -0700
Subject: [PATCH 38/55] Fix
---
.github/workflows/test-fast-cc.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/test-fast-cc.yml b/.github/workflows/test-fast-cc.yml
index 6d85c8ba529d5..412dd8774afb1 100644
--- a/.github/workflows/test-fast-cc.yml
+++ b/.github/workflows/test-fast-cc.yml
@@ -29,6 +29,7 @@ jobs:
Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
Set-Location C:\clang\clang-msvc ;
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
+ echo "C:\clang\clang-msvc\bin-full" >> $env:GITHUB_PATH ;
- run: |
clang --version
>From c0c8389ee96ba8eeac005a983a4879065884cc46 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 11:21:23 -0700
Subject: [PATCH 39/55] Add fast clang
---
.github/workflows/release-binaries.yml | 30 ++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 036d52512257c..26c42d22e21d8 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -300,6 +300,36 @@ jobs:
# Add wix install directory to PATH.
Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
+ # For pull requests, install a fast version of clang so that we can finish the
+ # build under the 6 hour timeout limit.
+ - name: Install fast clang
+ if: runner.os == 'Windows' && runner.arch == 'ARM64' && github.event_name == 'pull_request'
+ env:
+ LLVM_VERSION: 22.1.8
+ run: |
+ New-Item -Path "C:\temp-download" -ItemType "Directory" -Force ;
+ New-Item -Path "C:\clang" -ItemType "Directory" -Force ;
+ Set-Location C:\temp-download ;
+ Invoke-WebRequest -Uri "http://github.com/llvm/llvm-project/releases/download/llvmorg-${env:LLVM_VERSION}/clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -OutFile "clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" ;
+ (Get-FileHash -Path "C:\temp-download\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -Algorithm MD5).Hash -eq '0ae1d3effd9ab9d323f7fa595777f0a2' ;
+ xz.exe -d -qq clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz ;
+ C:\Windows\System32\tar.exe -xf clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar -C C:\clang ;
+ Set-Location C:\clang ;
+ Rename-Item -Path "C:\clang\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc" -NewName "C:\clang\clang-msvc" ;
+ Set-Location C:\clang\clang-msvc ;
+ Remove-Item -Path C:\clang\clang-msvc\libexec -Recurse -Force ;
+ Remove-Item -Path C:\clang\clang-msvc\share -Recurse -Force ;
+ Rename-Item -Path "C:\clang\clang-msvc\bin" -NewName "C:\clang\clang-msvc\bin-full" ;
+ New-Item -Path "C:\clang\clang-msvc\bin" -ItemType Directory -Force ;
+ Set-Location C:\clang\clang-msvc\bin ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\*.dll -Destination C:\clang\clang-msvc\bin\. ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\clang-cl.exe -Destination C:\clang\clang-msvc\bin\. ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
+ Set-Location C:\clang\clang-msvc ;
+ Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
+ echo "C:\clang\clang-msvc\bin-full" >> $env:GITHUB_PATH ;
+
+
- name: Build Windows
id: build-windows
if: runner.os == 'Windows'
>From 86c7c4c656abf5c39f87825d372f4a03483bf8a6 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 19:37:41 -0700
Subject: [PATCH 40/55] Fix wix path
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 26c42d22e21d8..4e4138abab5f5 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -298,7 +298,7 @@ jobs:
run: |
choco install wixtoolset
# Add wix install directory to PATH.
- Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
+ Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName >> $env:GITHUB_PATH
# For pull requests, install a fast version of clang so that we can finish the
# build under the 6 hour timeout limit.
>From 0868d5bcf6a51a68292d471aa978f798e6532e4d Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 19:41:42 -0700
Subject: [PATCH 41/55] Fix compiler path
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 4e4138abab5f5..e20e80aa18ae1 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -327,7 +327,7 @@ jobs:
Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
Set-Location C:\clang\clang-msvc ;
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
- echo "C:\clang\clang-msvc\bin-full" >> $env:GITHUB_PATH ;
+ echo "PATH=C:\clang\clang-msvc\bin\full":$env:PATH" >> $env:GITHUB_ENV
- name: Build Windows
>From 18a100aeb64780001c153d10076a4e9ed04d7bdf Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Thu, 20 Aug 2026 19:58:55 -0700
Subject: [PATCH 42/55] Fix
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index e20e80aa18ae1..d2b38cfeabee6 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -327,7 +327,7 @@ jobs:
Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
Set-Location C:\clang\clang-msvc ;
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
- echo "PATH=C:\clang\clang-msvc\bin\full":$env:PATH" >> $env:GITHUB_ENV
+ echo "PATH=C:\clang\clang-msvc\bin\full;$env:PATH" >> $env:GITHUB_ENV
- name: Build Windows
>From 45c7075df20c65998f49bb9f9d83b61156d61d31 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 06:28:51 -0700
Subject: [PATCH 43/55] Fix typo
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index d2b38cfeabee6..7ba2c3f1a35b3 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -327,7 +327,7 @@ jobs:
Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
Set-Location C:\clang\clang-msvc ;
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
- echo "PATH=C:\clang\clang-msvc\bin\full;$env:PATH" >> $env:GITHUB_ENV
+ echo "PATH=C:\clang\clang-msvc\bin-full;$env:PATH" >> $env:GITHUB_ENV
- name: Build Windows
>From 06971f50612e676ea274b5c29653a9d3f3c187f4 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 13:32:19 -0700
Subject: [PATCH 44/55] Debug
---
.github/workflows/release-binaries.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 7ba2c3f1a35b3..f01cde2f73dd0 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -338,6 +338,8 @@ jobs:
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--fast-build', '') }}
run: |
+ SET
+ clang-cl.exe --version
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
.\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
>From 7d80112317ac8c5bea795d78fbd2bfb29011142c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 13:46:21 -0700
Subject: [PATCH 45/55] Debug
---
.github/workflows/release-binaries-all.yml | 1 -
.github/workflows/release-binaries.yml | 1 -
2 files changed, 2 deletions(-)
diff --git a/.github/workflows/release-binaries-all.yml b/.github/workflows/release-binaries-all.yml
index 4a1e51d58a2b0..ccbb329966bc7 100644
--- a/.github/workflows/release-binaries-all.yml
+++ b/.github/workflows/release-binaries-all.yml
@@ -108,7 +108,6 @@ jobs:
# We use ubuntu-22.04 rather than the latest version to make the built
# binaries more portable (eg functional aginast older glibc).
runs-on:
- - windows-2022
- windows-11-arm
uses: ./.github/workflows/release-binaries.yml
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index f01cde2f73dd0..d43692c278f22 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -248,7 +248,6 @@ jobs:
if: runner.os == 'Windows'
run: |
git config --global core.autocrlf false
- Get-ChildItem -Path C:\ -Filter candle.exe -Recurse -ErrorAction SilentlyContinue
- name: Checkout LLVM
uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
>From 31a0092df5c6607fad0de8c0e2e9f2048cc01f56 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 13:56:46 -0700
Subject: [PATCH 46/55] Debug
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index d43692c278f22..5d2f9d51b116f 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -337,7 +337,7 @@ jobs:
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--fast-build', '') }}
run: |
- SET
+ Get-ChildItem Env:
clang-cl.exe --version
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
>From 09da3f6fcbf8dd8edb223011039233a42a8c67b9 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 14:20:35 -0700
Subject: [PATCH 47/55] Fix
---
.github/workflows/release-binaries.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 5d2f9d51b116f..c36ae7c18f3d6 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -326,7 +326,7 @@ jobs:
Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
Set-Location C:\clang\clang-msvc ;
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
- echo "PATH=C:\clang\clang-msvc\bin-full;$env:PATH" >> $env:GITHUB_ENV
+ echo "C:\clang\clang-msvc\bin-full" >> $env:GITHUB_PATH ;
- name: Build Windows
@@ -337,7 +337,7 @@ jobs:
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--fast-build', '') }}
run: |
- Get-ChildItem Env:
+ echo $Env:PATH
clang-cl.exe --version
subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
>From 7812374ed113112d0fdadb7ca5025e6b5824ecc6 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 14:46:56 -0700
Subject: [PATCH 48/55] Fix path
---
.github/workflows/release-binaries.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index c36ae7c18f3d6..1c5e9c8bc14d8 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -326,7 +326,7 @@ jobs:
Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
Set-Location C:\clang\clang-msvc ;
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
- echo "C:\clang\clang-msvc\bin-full" >> $env:GITHUB_PATH ;
+ echo "C:\clang\clang-msvc\bin" >> $env:GITHUB_PATH ;
- name: Build Windows
>From 2770c448617a22de8ad9c3c448a57c3a30408dd0 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 20:46:57 -0700
Subject: [PATCH 49/55] Hack to get correct compiler
---
llvm/utils/release/build_llvm_release.bat | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 0d44406fb444c..1fce9c19980ea 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -297,7 +297,7 @@ set arch=%1
set python_dir=%2
call :set_environment %python_dir% || exit /b 1
-call "%vsdevcmd%" -arch=%arch% || exit /b 1
+REM call "%vsdevcmd%" -arch=%arch% || exit /b 1
@echo on
mkdir build_%arch%_stage0
cd build_%arch%_stage0
>From 6522d1e6777f50615c30fdc0b80ccfeb9fc980e4 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Fri, 21 Aug 2026 21:13:06 -0700
Subject: [PATCH 50/55] HACK
---
llvm/utils/release/build_llvm_release.bat | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 1fce9c19980ea..138c0fa6e54a7 100644
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -199,8 +199,8 @@ if "%force-msvc%" == "" (
set common_compiler_flags=%common_compiler_flags% -fuse-ld=lld
set common_cmake_flags=%common_cmake_flags%^
- -DCMAKE_C_COMPILER=clang-cl.exe ^
- -DCMAKE_CXX_COMPILER=clang-cl.exe ^
+ -DCMAKE_C_COMPILER=C:\clang\clang-msvc\bin\clang-cl.exe ^
+ -DCMAKE_CXX_COMPILER=C:\clang\clang-msvc\bin\clang-cl.exe ^
-DCMAKE_LINKER=lld-link.exe ^
-DLLVM_ENABLE_LLD=ON ^
-DCMAKE_C_FLAGS="%common_compiler_flags%" ^
@@ -297,7 +297,7 @@ set arch=%1
set python_dir=%2
call :set_environment %python_dir% || exit /b 1
-REM call "%vsdevcmd%" -arch=%arch% || exit /b 1
+call "%vsdevcmd%" -arch=%arch% || exit /b 1
@echo on
mkdir build_%arch%_stage0
cd build_%arch%_stage0
>From f935c5bbd6b58f3e81d2992e04000a1e2c598239 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 22 Aug 2026 22:40:59 -0700
Subject: [PATCH 51/55] release-binaries: Parallelize steps to reduce total run
time
We can run several of the initial setup steps in parallel and after the
build, we can also run the compression/upload steps in parallel with the
test step.
---
.github/workflows/release-binaries.yml | 109 +++++++++++++++----------
1 file changed, 68 insertions(+), 41 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index dce295770b84c..ff8b37757d87a 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -230,33 +230,17 @@ jobs:
digest: ${{ steps.digest.outputs.digest }}
artifact-id: ${{ steps.artifact-upload.outputs.artifact-id }}
steps:
- # We need to hard code the python library path for Windows, so in order
- # to do that we need to specify a specific python version. It's also
- # good practice to do this on other OSes so the version of python doesn't
- # get changed unexpectedly.
- - uses: actions/setup-python at ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
- with:
- python-version: '3.14.6'
-
- # For some reason this is needed on Windows or else the build system can't find python3.lib.
- - name: Setup Python library path
- if: runner.os == 'Windows'
- run: |
- echo "LIB=$env:LIB;C:\hostedtoolcache\windows\Python\3.14.6\$($env:RUNNER_ARCH.ToLower())\libs" >> $env:GITHUB_ENV
-
+ # Start of parallel block
+ # Wix is not installed by default on Windows ARM64
- name: Setup crlf
+ id: setup-crlf
+ background: true
if: runner.os == 'Windows'
run: |
git config --global core.autocrlf false
- - name: Checkout LLVM
- uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- with:
- persist-credentials: false
- ref: ${{ needs.prepare.outputs.ref }}
-
- name: Set Build Prefix
- id: setup-stage
+ background: true
shell: bash
run: |
build_prefix=`pwd`
@@ -266,6 +250,45 @@ jobs:
fi
echo "build-prefix=$build_prefix" >> $GITHUB_OUTPUT
+ - name: Install Wix (Windows ARM64)
+ background: true
+ if: runner.os == 'Windows' && runner.arch == 'ARM64'
+ run: |
+ choco install wixtoolset --version 3.14.1.20250415
+ # Add wix install directory to PATH.
+ Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
+
+ # We need to hard code the python library path for Windows, so in order
+ # to do that we need to specify a specific python version. It's also
+ # good practice to do this on other OSes so the version of python doesn't
+ # get changed unexpectedly.
+ - uses: actions/setup-python at ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
+ id: setup-python
+ background: true
+ with:
+ python-version: '3.14.6'
+
+ - wait: setup-crlf
+
+ - name: Checkout LLVM
+ background: true
+ uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ with:
+ persist-credentials: false
+ ref: ${{ needs.prepare.outputs.ref }}
+
+ - wait: setup-python
+
+ # For some reason this is needed on Windows or else the build system can't find python3.lib.
+ - name: Setup Python library path
+ background: true
+ if: runner.os == 'Windows'
+ run: |
+ echo "LIB=$env:LIB;C:\hostedtoolcache\windows\Python\3.14.6\$($env:RUNNER_ARCH.ToLower())\libs" >> $env:GITHUB_ENV
+
+ - wait-all:
+ # End of Parallel block.
+
- name: Configure Linux/MacOS
id: build
if: runner.os != 'Windows'
@@ -291,14 +314,6 @@ jobs:
release_dir=`find "$BUILD_PREFIX/build" -iname 'stage2-bins'`
mv "$release_dir/$RELEASE_BINARY_FILENAME" .
- # Wix is not installed by default on Windows ARM64
- - name: Install Wix (Windows ARM64)
- if: runner.os == 'Windows' && runner.arch == 'ARM64'
- run: |
- choco install wixtoolset --version 3.14.1.20250415
- # Add wix install directory to PATH.
- Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
-
- name: Build Windows
id: build-windows
if: runner.os == 'Windows'
@@ -329,6 +344,8 @@ jobs:
cat S:/llvm/utils/release/llvm_package_$($env:LLVM_VERSION)/build_$($env:BUILD_DIR_SUFFIX)/_CPack_Packages/win64/WIX/wix.log
- name: Create zstd compressed tarball
+ id: zstd
+ background: true
shell: bash
env:
RELEASE_BINARY_FILENAME: ${{ needs.prepare.outputs.release-binary-filename }}
@@ -337,8 +354,27 @@ jobs:
run: |
xz -dc "$RELEASE_BINARY_FILENAME" | "$ZSTD" --ultra -22 -T0 -o "$RELEASE_BINARY_FILENAME_ZSTD"
+ - name: Install LLDB test Python dependencies
+ id: lldb-deps
+ if: runner.os == 'Linux'
+ run: |
+ python -m pip install -r lldb/test/requirements.txt
+
+ - name: Run Tests
+ background: true
+ # These almost always fail so don't let them fail the build and prevent the uploads.
+ if : runner.os != 'Windows'
+ continue-on-error: true
+ env:
+ BUILD_PREFIX: ${{ steps.setup-stage.outputs.build-prefix }}
+ run: |
+ ninja -C "$BUILD_PREFIX/build" stage2-check-all
+
+ - wait: zstd
+
- name: Generate sha256 digest for binaries
id: digest
+ background: true
shell: bash
env:
RELEASE_BINARY_FILENAME: ${{ needs.prepare.outputs.release-binary-filename }}
@@ -354,13 +390,11 @@ jobs:
fi
echo "digest=$(cat $WINDOWS_INSTALLER_FILENAME $RELEASE_BINARY_FILENAME $RELEASE_BINARY_FILENAME_ZSTD | $sha256sum | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT
- - name: Install LLDB test Python dependencies
- if: runner.os == 'Linux'
- run: |
- python -m pip install -r lldb/test/requirements.txt
+ - wait: [zstd, digest]
- uses: actions/upload-artifact at 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
id: artifact-upload
+ background: true
with:
name: ${{ runner.os }}-${{ runner.arch }}-release-binary
# Due to path differences on Windows when running in bash vs running on node,
@@ -371,14 +405,7 @@ jobs:
${{ needs.prepare.outputs.release-binary-filename-zstd }}
${{ steps.build-windows.outputs.windows-installer-filename }}
- - name: Run Tests
- # These almost always fail so don't let them fail the build and prevent the uploads.
- if : runner.os != 'Windows'
- continue-on-error: true
- env:
- BUILD_PREFIX: ${{ steps.setup-stage.outputs.build-prefix }}
- run: |
- ninja -C "$BUILD_PREFIX/build" stage2-check-all
+ - wait-all:
upload-release-binaries:
name: "Upload Release Binaries"
>From 6fe37a094003f09bf6311a8a587a0854737ab2c0 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 22 Aug 2026 22:55:39 -0700
Subject: [PATCH 52/55] Fix
---
.github/workflows/release-binaries.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index ff8b37757d87a..87534c8f3422d 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -240,6 +240,7 @@ jobs:
git config --global core.autocrlf false
- name: Set Build Prefix
+ id: setup-stage
background: true
shell: bash
run: |
>From baa4d04c48e7e9c8016db34a928babaf40ad7925 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 22 Aug 2026 23:22:33 -0700
Subject: [PATCH 53/55] Fix up merge and remove old code
---
.github/workflows/release-binaries.yml | 41 --------------------------
1 file changed, 41 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index de4bedcd11c75..1c4eaed105064 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -315,44 +315,6 @@ jobs:
release_dir=`find "$BUILD_PREFIX/build" -iname 'stage2-bins'`
mv "$release_dir/$RELEASE_BINARY_FILENAME" .
- # Wix is not installed by default on Windows ARM64
- - name: Install Wix (Windows ARM64)
- if: runner.os == 'Windows' && runner.arch == 'ARM64'
- run: |
- choco install wixtoolset
- # Add wix install directory to PATH.
- Split-Path (Get-ChildItem -Path "C:\" -Filter candle.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName >> $env:GITHUB_PATH
-
- # For pull requests, install a fast version of clang so that we can finish the
- # build under the 6 hour timeout limit.
- - name: Install fast clang
- if: runner.os == 'Windows' && runner.arch == 'ARM64' && github.event_name == 'pull_request'
- env:
- LLVM_VERSION: 22.1.8
- run: |
- New-Item -Path "C:\temp-download" -ItemType "Directory" -Force ;
- New-Item -Path "C:\clang" -ItemType "Directory" -Force ;
- Set-Location C:\temp-download ;
- Invoke-WebRequest -Uri "http://github.com/llvm/llvm-project/releases/download/llvmorg-${env:LLVM_VERSION}/clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -OutFile "clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" ;
- (Get-FileHash -Path "C:\temp-download\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -Algorithm MD5).Hash -eq '0ae1d3effd9ab9d323f7fa595777f0a2' ;
- xz.exe -d -qq clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz ;
- C:\Windows\System32\tar.exe -xf clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar -C C:\clang ;
- Set-Location C:\clang ;
- Rename-Item -Path "C:\clang\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc" -NewName "C:\clang\clang-msvc" ;
- Set-Location C:\clang\clang-msvc ;
- Remove-Item -Path C:\clang\clang-msvc\libexec -Recurse -Force ;
- Remove-Item -Path C:\clang\clang-msvc\share -Recurse -Force ;
- Rename-Item -Path "C:\clang\clang-msvc\bin" -NewName "C:\clang\clang-msvc\bin-full" ;
- New-Item -Path "C:\clang\clang-msvc\bin" -ItemType Directory -Force ;
- Set-Location C:\clang\clang-msvc\bin ;
- Copy-Item -Path C:\clang\clang-msvc\bin-full\*.dll -Destination C:\clang\clang-msvc\bin\. ;
- Copy-Item -Path C:\clang\clang-msvc\bin-full\clang-cl.exe -Destination C:\clang\clang-msvc\bin\. ;
- Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
- Set-Location C:\clang\clang-msvc ;
- Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
- echo "C:\clang\clang-msvc\bin" >> $env:GITHUB_PATH ;
-
-
- name: Build Windows
id: build-windows
if: runner.os == 'Windows'
@@ -361,9 +323,6 @@ jobs:
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--fast-build', '') }}
run: |
- echo $Env:PATH
- clang-cl.exe --version
- subst S: ${{ github.workspace }}
cd S:\llvm\utils\release\
.\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
if ($env:INPUTS_RUNS_ON -eq "windows-11-arm") {
>From 9d0a03706d073495bca3fcd3d38f98618363354d Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 22 Aug 2026 23:29:11 -0700
Subject: [PATCH 54/55] Try again
---
.github/workflows/release-binaries.yml | 32 ++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 1c4eaed105064..0471ddf5862b9 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -290,6 +290,36 @@ jobs:
- wait-all:
# End of Parallel block.
+ # For pull requests, install a fast version of clang so that we can finish the
+ # build under the 6 hour timeout limit.
+ - name: Install fast clang
+ if: runner.os == 'Windows' && runner.arch == 'ARM64' && github.event_name == 'pull_request'
+ env:
+ LLVM_VERSION: 22.1.8
+ run: |
+ New-Item -Path "C:\temp-download" -ItemType "Directory" -Force ;
+ New-Item -Path "C:\clang" -ItemType "Directory" -Force ;
+ Set-Location C:\temp-download ;
+ Invoke-WebRequest -Uri "http://github.com/llvm/llvm-project/releases/download/llvmorg-${env:LLVM_VERSION}/clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -OutFile "clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" ;
+ (Get-FileHash -Path "C:\temp-download\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz" -Algorithm MD5).Hash -eq '0ae1d3effd9ab9d323f7fa595777f0a2' ;
+ xz.exe -d -qq clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz ;
+ C:\Windows\System32\tar.exe -xf clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc.tar -C C:\clang ;
+ Set-Location C:\clang ;
+ Rename-Item -Path "C:\clang\clang+llvm-${env:LLVM_VERSION}-x86_64-pc-windows-msvc" -NewName "C:\clang\clang-msvc" ;
+ Set-Location C:\clang\clang-msvc ;
+ Remove-Item -Path C:\clang\clang-msvc\libexec -Recurse -Force ;
+ Remove-Item -Path C:\clang\clang-msvc\share -Recurse -Force ;
+ Rename-Item -Path "C:\clang\clang-msvc\bin" -NewName "C:\clang\clang-msvc\bin-full" ;
+ New-Item -Path "C:\clang\clang-msvc\bin" -ItemType Directory -Force ;
+ Set-Location C:\clang\clang-msvc\bin ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\*.dll -Destination C:\clang\clang-msvc\bin\. ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\clang-cl.exe -Destination C:\clang\clang-msvc\bin\. ;
+ Copy-Item -Path C:\clang\clang-msvc\bin-full\lld-link.exe -Destination C:\clang\clang-msvc\bin\. ;
+ Set-Location C:\clang\clang-msvc ;
+ Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
+ echo "C:\clang\clang-msvc\bin" >> $env:GITHUB_PATH ;
+
+
- name: Configure Linux/MacOS
id: build
if: runner.os != 'Windows'
@@ -323,7 +353,9 @@ jobs:
LLVM_VERSION: ${{ needs.prepare.outputs.release-version }}
EXTRA_ARGS: ${{ case(needs.prepare.outputs.build-runs-on == 'windows-11-arm', '--fast-build', '') }}
run: |
+ subst S: ${{ github.workspace }
cd S:\llvm\utils\release\
+ C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat -arch=arm64 -host_arch=arm64
.\build_llvm_release.bat "--$($env:RUNNER_ARCH.ToLower())" --version $env:LLVM_VERSION --local-python --skip-checkout $env:EXTRA_ARGS
if ($env:INPUTS_RUNS_ON -eq "windows-11-arm") {
$zstd = (Get-ChildItem -Recurse -Filter "zstd.exe" | Select-Object -First 1).fullName
>From 58acdec821e712fb76a772087d6fc41e357c6e33 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar at redhat.com>
Date: Sat, 22 Aug 2026 23:35:21 -0700
Subject: [PATCH 55/55] Fix
---
.github/workflows/release-binaries.yml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml
index 0471ddf5862b9..22f60b3534005 100644
--- a/.github/workflows/release-binaries.yml
+++ b/.github/workflows/release-binaries.yml
@@ -287,12 +287,10 @@ jobs:
run: |
echo "LIB=$env:LIB;C:\hostedtoolcache\windows\Python\3.14.6\$($env:RUNNER_ARCH.ToLower())\libs" >> $env:GITHUB_ENV
- - wait-all:
- # End of Parallel block.
-
# For pull requests, install a fast version of clang so that we can finish the
# build under the 6 hour timeout limit.
- name: Install fast clang
+ background: true
if: runner.os == 'Windows' && runner.arch == 'ARM64' && github.event_name == 'pull_request'
env:
LLVM_VERSION: 22.1.8
@@ -319,6 +317,9 @@ jobs:
Remove-Item -Path C:\clang\clang-msvc\bin-full -Recurse -Force ;
echo "C:\clang\clang-msvc\bin" >> $env:GITHUB_PATH ;
+ - wait-all:
+ # End of Parallel block.
+
- name: Configure Linux/MacOS
id: build
More information about the llvm-commits
mailing list