summaryrefslogtreecommitdiffstats
path: root/Lib/sysconfig/__init__.py
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-07-11 21:00:28 (GMT)
committerGitHub <noreply@github.com>2024-07-11 21:00:28 (GMT)
commit35f7155bc39b8e5212b90a2ee96cb107b51e0e83 (patch)
treef29a5ec83ce96d65bc770ade3fad467ca3f6bbeb /Lib/sysconfig/__init__.py
parentc6dbfbbe3c24cf2dd6a589904383f28cd1a1f4db (diff)
downloadcpython-35f7155bc39b8e5212b90a2ee96cb107b51e0e83.zip
cpython-35f7155bc39b8e5212b90a2ee96cb107b51e0e83.tar.gz
cpython-35f7155bc39b8e5212b90a2ee96cb107b51e0e83.tar.bz2
[3.13] gh-121103: Put free-threaded libraries in `lib/python3.14t` (GH-121293) (#121631)
On POSIX systems, excluding macOS framework installs, the lib directory for the free-threaded build now includes a "t" suffix to avoid conflicts with a co-located default build installation. (cherry picked from commit e8c91d90ba8fab410a27fad4f709cc73f6ffcbf4) Co-authored-by: Sam Gross <colesbury@gmail.com>
Diffstat (limited to 'Lib/sysconfig/__init__.py')
-rw-r--r--Lib/sysconfig/__init__.py33
1 files changed, 20 insertions, 13 deletions
diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py
index 98a14e5..83e057c 100644
--- a/Lib/sysconfig/__init__.py
+++ b/Lib/sysconfig/__init__.py
@@ -27,10 +27,10 @@ _ALWAYS_STR = {
_INSTALL_SCHEMES = {
'posix_prefix': {
- 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}',
- 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}',
- 'purelib': '{base}/lib/{implementation_lower}{py_version_short}/site-packages',
- 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}/site-packages',
+ 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}',
+ 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}',
+ 'purelib': '{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages',
+ 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages',
'include':
'{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}',
'platinclude':
@@ -77,10 +77,10 @@ _INSTALL_SCHEMES = {
# Downstream distributors who patch posix_prefix/nt scheme are encouraged to
# leave the following schemes unchanged
'posix_venv': {
- 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}',
- 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}',
- 'purelib': '{base}/lib/{implementation_lower}{py_version_short}/site-packages',
- 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}/site-packages',
+ 'stdlib': '{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}',
+ 'platstdlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}',
+ 'purelib': '{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages',
+ 'platlib': '{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packages',
'include':
'{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}',
'platinclude':
@@ -148,11 +148,11 @@ if _HAS_USER_BASE:
'data': '{userbase}',
},
'posix_user': {
- 'stdlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}',
- 'platstdlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}',
- 'purelib': '{userbase}/lib/{implementation_lower}{py_version_short}/site-packages',
- 'platlib': '{userbase}/lib/{implementation_lower}{py_version_short}/site-packages',
- 'include': '{userbase}/include/{implementation_lower}{py_version_short}',
+ 'stdlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}',
+ 'platstdlib': '{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}',
+ 'purelib': '{userbase}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages',
+ 'platlib': '{userbase}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packages',
+ 'include': '{userbase}/include/{implementation_lower}{py_version_short}{abi_thread}',
'scripts': '{userbase}/bin',
'data': '{userbase}',
},
@@ -487,6 +487,9 @@ def _init_config_vars():
# the init-function.
_CONFIG_VARS['userbase'] = _getuserbase()
+ # e.g., 't' for free-threaded or '' for default build
+ _CONFIG_VARS['abi_thread'] = 't' if _CONFIG_VARS.get('Py_GIL_DISABLED') else ''
+
# Always convert srcdir to an absolute path
srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE)
if os.name == 'posix':
@@ -655,6 +658,10 @@ def get_python_version():
return _PY_VERSION_SHORT
+def _get_python_version_abi():
+ return _PY_VERSION_SHORT + get_config_var("abi_thread")
+
+
def expand_makefile_vars(s, vars):
"""Expand Makefile-style variables -- "${foo}" or "$(foo)" -- in
'string' according to 'vars' (a dictionary mapping variable names to