[llvm] [llvm] Build Windows release package with clang-cl if possible (PR #135446)

Alexandre Ganea via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 11 15:22:38 PDT 2025


https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/135446

>From 8759d5f5a38eab51f9e95f904fd525eb425777b1 Mon Sep 17 00:00:00 2001
From: Alexandre Ganea <alex_toresh at yahoo.fr>
Date: Fri, 11 Apr 2025 17:52:32 -0400
Subject: [PATCH 1/2] [llvm] Build Windows release package with clang-cl

---
 llvm/utils/release/build_llvm_release.bat | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 588d7201fcb92..22770890e29f3 100755
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -7,7 +7,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]
+echo Usage: build_llvm_release.bat --version ^<version^> [--x86,--x64, --arm64] [--skip-checkout] [--local-python] [--force-msvc]
 echo.
 echo Options:
 echo --version: [required] version to build
@@ -17,6 +17,7 @@ echo --x64: build and test x64 variant
 echo --arm64: build and test arm64 variant
 echo --skip-checkout: use local git checkout instead of downloading src.zip
 echo --local-python: use installed Python and does not try to use a specific version (3.10)
+echo --force-msvc: use MSVC compiler for stage0, even if clang-cl is present
 echo.
 echo Note: At least one variant to build is required.
 echo.
@@ -34,6 +35,7 @@ set x64=
 set arm64=
 set skip-checkout=
 set local-python=
+set force-msvc=
 call :parse_args %*
 
 if "%help%" NEQ "" goto usage
@@ -165,6 +167,24 @@ set common_cmake_flags=^
   -DLLVM_ENABLE_RPMALLOC=ON ^
   -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;compiler-rt;lldb;openmp"
 
+if "%force-msvc%" == "" (
+  where /q clang-cl
+  if errorlevel 0 (
+    where /q lld-link
+    if errorlevel 0 (
+	  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_LINKER=lld-link.exe ^
+		-DLLVM_ENABLE_LLD=ON ^
+        -DCMAKE_C_FLAGS="%common_compiler_flags%" ^
+        -DCMAKE_CXX_FLAGS="%common_compiler_flags%"
+	)
+  )
+)
+
 set cmake_profile_flags=""
 
 REM Preserve original path

>From 1fc8ba8cb643f3aec165b58b119619470de9a5b5 Mon Sep 17 00:00:00 2001
From: Alexandre Ganea <alex_toresh at yahoo.fr>
Date: Fri, 11 Apr 2025 18:21:33 -0400
Subject: [PATCH 2/2] Fix tabs

---
 llvm/utils/release/build_llvm_release.bat | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index 22770890e29f3..3042fc2d77dd1 100755
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -172,16 +172,16 @@ if "%force-msvc%" == "" (
   if errorlevel 0 (
     where /q lld-link
     if errorlevel 0 (
-	  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_LINKER=lld-link.exe ^
-		-DLLVM_ENABLE_LLD=ON ^
+      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_LINKER=lld-link.exe ^
+        -DLLVM_ENABLE_LLD=ON ^
         -DCMAKE_C_FLAGS="%common_compiler_flags%" ^
         -DCMAKE_CXX_FLAGS="%common_compiler_flags%"
-	)
+    )
   )
 )
 



More information about the llvm-commits mailing list