Index: llvm/utils/release/build_llvm_release.bat =================================================================== --- llvm/utils/release/build_llvm_release.bat +++ llvm/utils/release/build_llvm_release.bat @@ -16,6 +16,30 @@ :begin +REM Note: +REM 7zip versions 21.x and higher will try to extract the symlinks in +REM llvm's git archive, which requires running as administrator. + +REM Unique temporal filename to use by the 'mklink' command. +set "link_name=%temp%\%username%_%random%_%random%.tmp" + +REM Check for correct 7-zip version and/or administrator permissions. +for /f "delims=" %%i in ('7z.exe ^| findstr /r "2[1-9].[0-9][0-9]"') do set version=%%i +if not "%version%"=="" ( + REM As the 'mklink' requires elevated permissions, the symbolic link + REM creation will fail if the script is not running as administrator. + mklink /d "%link_name%" . 1>nul 2>nul + if errorlevel 1 ( + echo. + echo Script requires administrator permissions, or a 7-zip version 20.x or older. + echo Current version is "%version%" + exit /b + ) else ( + REM Remove the temporal symbolic link. + rd "%link_name%" + ) +) + REM Prerequisites: REM REM Visual Studio 2019, CMake, Ninja, GNUWin32, SWIG, Python 3,