Skip to content

Build changes for Windows free-threaded builds #112984

Closed
@zooba

Description

@zooba

We should use a different $(IntDir) and $(OutDir) for free threaded builds so that it's faster to switch between them and so they can be built in parallel.

The output filename should be python{major}.{minor}t.exe and python{major}{minor}t.dll. Debug builds are python{major}.{minor}t_d.exe and python{major}{minor}t_d.dll.

The ABI tag becomes .cp{major}{minor}t-{plat}

All stdlib .pyd files get an ABI tag.

The python.bat is updated as normal (overwriting the last yesgil build).

The installer should not include a python.exe, to avoid causing PATH conflicts, but Nuget, embeddable and Store packages should include a copy/alias.

PEP 514 registration (a.k.a. sys.winver) should use {major}.{minor}t-{plat}.

Tests that rely on the executable name should use sys.executable wherever possible, and hopefully there's a support variable already for the rest.

All of these only take effect when $(DisableGil) == 'true' (which is set by build.bat --disable-gil, but the build variable is canonical).

Linked PRs

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions