diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-04-25 18:13:10 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-25 18:13:10 (GMT) |
commit | 8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b (patch) | |
tree | dec5a169a27fde398d57e508f0eb383f1975e418 /Lib/distutils | |
parent | d7befad328ad1a6d1f812be2bf154c1cd1e01fbc (diff) | |
download | cpython-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')
-rw-r--r-- | Lib/distutils/command/build_ext.py | 19 |
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 |