Skip to content

3.14: Windows on Arm build fails since windows-11-arm migrated to windows-11-vs2026-arm #158244

Description

@chris-eibl

The Windows Arm64 jobs in the CI recently started failing on 3.14 (for example). Noted by @StanFromIreland in #158188 (comment): the _freeze_module

<FreezeProjects>
<Platform>$(PreferredToolArchitecture)</Platform>

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

- name: Build CPython
run: >-
.\\PCbuild\\build.bat

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?

Footnotes

  1. noticed already in https://github.com/python/cpython/issues/153668#issuecomment-5304195008 ↩

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.14bugs and security fixesOS-windowsbuildThe build process and cross-buildinfraCI, GitHub Actions, buildbots, Dependabot, etc.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions