https://github.com/python/cpython/commit/0e4b1ba55dee1da7bc19d370e784483cd64b12e7
commit: 0e4b1ba55dee1da7bc19d370e784483cd64b12e7
branch: main
author: Chris Eibl <[email protected]>
committer: zooba <[email protected]>
date: 2026-02-23T22:53:56Z
summary:

gh-145110: Fix cleaning of PGO builds in Windows build.bat script (GH-145111)

files:
A Misc/NEWS.d/next/Build/2026-02-22-13-35-20.gh-issue-145110.KgWofW.rst
M PCbuild/build.bat

diff --git 
a/Misc/NEWS.d/next/Build/2026-02-22-13-35-20.gh-issue-145110.KgWofW.rst 
b/Misc/NEWS.d/next/Build/2026-02-22-13-35-20.gh-issue-145110.KgWofW.rst
new file mode 100644
index 00000000000000..035d0c141d36ed
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2026-02-22-13-35-20.gh-issue-145110.KgWofW.rst
@@ -0,0 +1,2 @@
+Fix targets "Clean" and "CLeanAll" in case of PGO builds on Windows. Patch by
+Chris Eibl.
diff --git a/PCbuild/build.bat b/PCbuild/build.bat
index 8c24309be262ba..8fb2f096c93c0e 100644
--- a/PCbuild/build.bat
+++ b/PCbuild/build.bat
@@ -66,6 +66,7 @@ setlocal
 set platf=x64
 set conf=Release
 set target=Build
+set clean=false
 set dir=%~dp0
 set parallel=/m
 set verbose=/nologo /v:m /clp:summary
@@ -119,6 +120,9 @@ if "%UseJIT%" NEQ "true" set IncludeLLVM=false
 
 if "%IncludeExternals%"=="true" call "%dir%get_externals.bat"
 
+if /I "%target%"=="Clean" set clean=true
+if /I "%target%"=="CleanAll" set clean=true
+
 if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" (
     if "%PROCESSOR_ARCHITEW6432%" NEQ "AMD64" if "%PROCESSOR_ARCHITECTURE%" 
NEQ "AMD64" (
         echo.ERROR: Cannot cross-compile with PGO 
@@ -159,15 +163,20 @@ if "%do_pgo%"=="true" (
 rem %VARS% are evaluated eagerly, which would lose the ERRORLEVEL
 rem value if we didn't split it out here.
 if "%do_pgo%"=="true" if ERRORLEVEL 1 exit /B %ERRORLEVEL%
+
+rem In case of a PGO build, we switch the conf here to PGUpdate
+rem to get it cleaned or built as well.
 if "%do_pgo%"=="true" (
     del /s "%dir%\*.pgc"
     del /s "%dir%\..\Lib\*.pyc"
-    echo on
-    call "%dir%\..\python.bat" %pgo_job%
-    @echo off
-    call :Kill
     set conf=PGUpdate
-    set target=Build
+    if "%clean%"=="false" (
+        echo on
+        call "%dir%\..\python.bat" %pgo_job%
+        @echo off
+        call :Kill
+        set target=Build
+    )
 )
 goto :Build
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to