mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
- Issue #16754: Fix the incorrect shared library extension on linux. Introduce
two makefile macros SHLIB_SUFFIX and EXT_SUFFIX. SO now has the value of SHLIB_SUFFIX again (as in 2.x and 3.1). The SO macro is removed in 3.4.
This commit is contained in:
commit
6d3d0fe0b2
12 changed files with 87 additions and 101 deletions
13
setup.py
13
setup.py
|
@ -169,13 +169,7 @@ class PyBuildExt(build_ext):
|
|||
def build_extensions(self):
|
||||
|
||||
# Detect which modules should be compiled
|
||||
old_so = self.compiler.shared_lib_extension
|
||||
# Workaround PEP 3149 stuff
|
||||
self.compiler.shared_lib_extension = os.environ.get("SO", ".so")
|
||||
try:
|
||||
missing = self.detect_modules()
|
||||
finally:
|
||||
self.compiler.shared_lib_extension = old_so
|
||||
missing = self.detect_modules()
|
||||
|
||||
# Remove modules that are present on the disabled list
|
||||
extensions = [ext for ext in self.extensions
|
||||
|
@ -2066,7 +2060,8 @@ class PyBuildInstallLib(install_lib):
|
|||
# mode 644 unless they are a shared library in which case they will get
|
||||
# mode 755. All installed directories will get mode 755.
|
||||
|
||||
so_ext = sysconfig.get_config_var("SO")
|
||||
# this is works for EXT_SUFFIX too, which ends with SHLIB_SUFFIX
|
||||
shlib_suffix = sysconfig.get_config_var("SHLIB_SUFFIX")
|
||||
|
||||
def install(self):
|
||||
outfiles = install_lib.install(self)
|
||||
|
@ -2081,7 +2076,7 @@ class PyBuildInstallLib(install_lib):
|
|||
for filename in files:
|
||||
if os.path.islink(filename): continue
|
||||
mode = defaultMode
|
||||
if filename.endswith(self.so_ext): mode = sharedLibMode
|
||||
if filename.endswith(self.shlib_suffix): mode = sharedLibMode
|
||||
log.info("changing mode of %s to %o", filename, mode)
|
||||
if not self.dry_run: os.chmod(filename, mode)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue