3.14: Windows on Arm build fails since windows-11-arm migrated to windows-11-vs2026-arm
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- github-actions, python
- Domain
- build-system, ci-cd
Research direction
Start with .github/workflows/reusable-windows.yml and inspect how the arm64 job selects MSBuild; then review build.bat and PCbuild/pcbuild.proj for the PreferredToolArchitecture and PlatformToolset interaction. Run the affected Windows Arm64 CI build and confirm that _freeze_module compiles successfully with the native toolchain.
Written by the indexing model from the issue text.
Description
The Windows Arm64 jobs in the CI recently started failing on 3.14 (for example). Noted by @StanFromIreland in https://github.com/python/cpython/pull/158188#issuecomment-5837953982: the _freeze_module
https://github.com/python/cpython/blob/9def455ebd4017dfbfcf1377137bb949ff2e29c1/PCbuild/pcbuild.proj#L20-L21
can no longer be compiled for PreferredToolArchitecture=x86 and PlatformToolset=v143:
The build tools for Visual Studio 2022 (Platform Toolset = 'v143') cannot be found.
PreferredToolArchitecture=x86 is chosen, because we use the x86 version of msbuild in CI:
"C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\msbuild.exe"
which is chosen by build.bat if no MSBUILD environment variable is set and msbuild is not in the path. [^1]
Compiling the _freeze_module for arm64 on an arm64 host by just using the arm64 version of msbuild would solve this, by e.g. just adding
env:
MSBUILD: ${{ inputs.arch == 'arm64' && 'C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\arm64\msbuild.exe' || '' }}
to
https://github.com/python/cpython/blob/e16b12bb982bc916664850da1d0a78109b2145b8/.github/workflows/reusable-windows.yml#L38-L40
because then PreferredToolArchitecture=arm64 and also the arm64 version of the compiler is chosen.
I think running the _freeze_module natively on an arm64 host is anyway the better fit?
[^1]: noticed already in https://github.com/python/cpython/issues/153668#issuecomment-5304195008
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 36k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 576
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from python/cpython
-
extension-modules topic-socket type-bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
python/cpython#158285 · 4 comments ·
Maintainers usually reply within 1 day
-
stdlib type-bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
docs pending
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
python/cpython#157339 · 10 comments ·
Maintainers usually reply within 1 day
-
stdlib type-feature
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
python/cpython#155601 · 2 comments ·
Maintainers usually reply within 1 day
-
stdlib type-feature
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
python/cpython#153771 · 5 comments ·
Maintainers usually reply within 1 day
Similar issues
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
workflow: a tick's dispatch counts as 'only this step', and no review self-grants a round unattendedOpenworkflow
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
kristofdegrave/homeassistant-smart-charging#1505 ·
Maintainers usually reply within 1 day
-
metadata submission
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
canonical/content-cache-operator#163 · 1 comment ·
Maintainers usually reply within 1 day
-
[submission]Opensubmission
Difficulty 1/5 Under an hour Newbie friendliness 65/100
leanprover/lean-eval-submissions#1852 ·
Maintainers usually reply within 1 day