]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-146210: Fix building the jit stencils on Windows when the interpreter is built...
authorChris Eibl <138194463+chris-eibl@users.noreply.github.com>
Fri, 3 Apr 2026 19:42:13 +0000 (21:42 +0200)
committerGitHub <noreply@github.com>
Fri, 3 Apr 2026 19:42:13 +0000 (12:42 -0700)
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Misc/NEWS.d/next/Build/2026-03-23-20-06-35.gh-issue-146210.C01Rmq.rst [new file with mode: 0644]
Tools/jit/_llvm.py

diff --git a/Misc/NEWS.d/next/Build/2026-03-23-20-06-35.gh-issue-146210.C01Rmq.rst b/Misc/NEWS.d/next/Build/2026-03-23-20-06-35.gh-issue-146210.C01Rmq.rst
new file mode 100644 (file)
index 0000000..ce59a9a
--- /dev/null
@@ -0,0 +1,2 @@
+Fix building the jit stencils on Windows when the interpreter is built with
+a different clang version. Patch by Chris Eibl.
index 8b68c1e8636af7cebaa9dfa9a9ef8ecfb19433c7..a4aaacdf41249ddcc24f8f4baa26f9d228e3c90b 100644 (file)
@@ -42,9 +42,19 @@ async def _run(tool: str, args: typing.Iterable[str], echo: bool = False) -> str
     async with _CORES:
         if echo:
             print(shlex.join(command))
+
+        if os.name == "nt":
+            # When building with /p:PlatformToolset=ClangCL, the VS build
+            # system puts that clang's include path into INCLUDE. The JIT's
+            # clang may be a different version, and mismatched headers cause
+            # build errors. See https://github.com/python/cpython/issues/146210.
+            env = os.environ.copy()
+            env.pop("INCLUDE", None)
+        else:
+            env = None
         try:
             process = await asyncio.create_subprocess_exec(
-                *command, stdout=subprocess.PIPE
+                *command, stdout=subprocess.PIPE, env=env
             )
         except FileNotFoundError:
             return None