[llvm] Arm windows wix (PR #216523)

Tom Stellard via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 21 20:47:49 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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/49] 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



More information about the llvm-commits mailing list