summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/command
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-04-25 18:13:10 (GMT)
committerGitHub <noreply@github.com>2019-04-25 18:13:10 (GMT)
commit8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b (patch)
treedec5a169a27fde398d57e508f0eb383f1975e418 /Lib/distutils/command
parentd7befad328ad1a6d1f812be2bf154c1cd1e01fbc (diff)
downloadcpython-8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b.zip
cpython-8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b.tar.gz
cpython-8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b.tar.bz2
bpo-21536: C extensions are no longer linked to libpython (GH-12946)
On Unix, C extensions are no longer linked to libpython. It is now possible to load a C extension built using a shared library Python with a statically linked Python. When Python is embedded, libpython must not be loaded with RTLD_LOCAL, but RTLD_GLOBAL instead. Previously, using RTLD_LOCAL, it was already not possible to load C extensions which were not linked to libpython, like C extensions of the standard library built by the "*shared*" section of Modules/Setup. distutils, python-config and python-config.py have been modified.
Diffstat (limited to 'Lib/distutils/command')
-rw-r--r--Lib/distutils/command/build_ext.py19
1 files changed, 2 insertions, 17 deletions
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index 0428466..1672d02 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -714,20 +714,5 @@ class build_ext(Command):
# don't extend ext.libraries, it may be shared with other
# extensions, it is a reference to the original list
return ext.libraries + [pythonlib]
- else:
- return ext.libraries
- elif sys.platform == 'darwin':
- # Don't use the default code below
- return ext.libraries
- elif sys.platform[:3] == 'aix':
- # Don't use the default code below
- return ext.libraries
- else:
- from distutils import sysconfig
- if sysconfig.get_config_var('Py_ENABLE_SHARED'):
- pythonlib = 'python{}.{}{}'.format(
- sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff,
- sysconfig.get_config_var('ABIFLAGS'))
- return ext.libraries + [pythonlib]
- else:
- return ext.libraries
+
+ return ext.libraries