Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Tracked by #108219
colesbury opened this issue Sep 22, 2023 · 2 comments
Closed
Tracked by #108219

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

colesbury opened this issue Sep 22, 2023 · 2 comments
Assignees
Labels
3.13 bugs and security fixes build The build process and cross-build type-feature A feature request or enhancement

Comments

@colesbury
Copy link
Contributor

colesbury commented Sep 22, 2023

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

@colesbury colesbury added type-feature A feature request or enhancement 3.13 bugs and security fixes labels Sep 22, 2023
@vstinner
Copy link
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.

@colesbury colesbury self-assigned this Sep 22, 2023
@AA-Turner AA-Turner added the build The build process and cross-build label Sep 22, 2023
colesbury added a commit to colesbury/cpython that referenced this issue Sep 26, 2023
Shared libraries for CPython 3.13 are now marked with a 't' for
threading. For example, `binascii.cpython-313t-darwin.so`.
colesbury added a commit to colesbury/cpython that referenced this issue Sep 26, 2023
Shared libraries for CPython 3.13 are now marked with a 't' for
threading. For example, `binascii.cpython-313t-darwin.so`.
vstinner pushed a commit that referenced this issue Sep 27, 2023
Shared libraries for CPython 3.13 are now marked with a 't' for
threading. For example, `binascii.cpython-313t-darwin.so`.
csm10495 pushed a commit to csm10495/cpython that referenced this issue Sep 28, 2023
Shared libraries for CPython 3.13 are now marked with a 't' for
threading. For example, `binascii.cpython-313t-darwin.so`.
@colesbury
Copy link
Contributor Author

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

Glyphack pushed a commit to Glyphack/cpython that referenced this issue Sep 2, 2024
Shared libraries for CPython 3.13 are now marked with a 't' for
threading. For example, `binascii.cpython-313t-darwin.so`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.13 bugs and security fixes build The build process and cross-build type-feature A feature request or enhancement
Projects
None yet
Development

No branches or pull requests

3 participants