Skip to content

Include "t" in ABI tag for --disable-gil builds #109740

Description

@colesbury

Feature or enhancement

Context:

The --disable-gil builds will have a different version specific ABI from the default CPython 3.13 builds due to reference counting differences and other changes. This should be indicated by a "t" (for "threading") in the ABI tag.

On POSIX, this is achieved by setting the ABIFLAGS variable, which feeds into the sysconfig EXT_SUFFIX and SOABI variables. The version specific shared libraries would look like:

  • package.cpython-313t-darwin.so

On Windows, this is achieved by setting PYD_TAGGED_SUFFIX, which feeds into the sysconfig EXT_SUFFIX. The shared libraries using the version specific ABI would look like:

  • _package.cp313t-win_amd64.pyd

Note that this does not address and is independent of the stable ABI. There's ongoing discussion about how best to support the stable ABI in --disable-gil builds.

cc @gpshead @brettcannon @vstinner

Linked PRs

Activity

  1. vstinner commented on Sep 22, 2023

    @vstinner
    Member

    Yep, I'm fine with "t" tag. Try to write a test to ensure that if Python is built with NoGIL, the tag is present. Maybe added it in test_sys which can check sys.abiflags.

  2. self-assigned this
    on Sep 22, 2023
  3. added 2 commits that reference this issue on Sep 26, 2023
  4. added a commit that references this issue on Sep 27, 2023
  5. added a commit that references this issue on Sep 28, 2023
  6. colesbury commented on Oct 6, 2023

    @colesbury
    ContributorAuthor

    This is implemented, although there are still some follow-up tasks.

  7. added a commit that references this issue on Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

3.13only security fixesbuildThe build process and cross-buildtype-featureA feature request or enhancement

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions