Mailing List Archive

[3.9] bpo-45881: Use CC from env first for cross building (GH-29752) (GH-29754)
https://github.com/python/cpython/commit/cd6d2577fadc4cc0275017f27f46b0a628216353
commit: cd6d2577fadc4cc0275017f27f46b0a628216353
branch: 3.9
author: Christian Heimes <christian@python.org>
committer: tiran <christian@python.org>
date: 2021-11-25T20:53:14+01:00
summary:

[3.9] bpo-45881: Use CC from env first for cross building (GH-29752) (GH-29754)

Co-authored-by: Christian Heimes <christian@python.org>.
Co-authored-by: Christian Heimes <christian@python.org>

files:
A Misc/NEWS.d/next/Build/2021-11-24-17-14-06.bpo-45881.GTXXLk.rst
M setup.py

diff --git a/Misc/NEWS.d/next/Build/2021-11-24-17-14-06.bpo-45881.GTXXLk.rst b/Misc/NEWS.d/next/Build/2021-11-24-17-14-06.bpo-45881.GTXXLk.rst
new file mode 100644
index 0000000000000..b697658cf3aaa
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-11-24-17-14-06.bpo-45881.GTXXLk.rst
@@ -0,0 +1,2 @@
+``setup.py`` now uses ``CC`` from environment first to discover multiarch
+and cross compile paths.
diff --git a/setup.py b/setup.py
index 9a5887b59ffc4..c6023e1ab6353 100644
--- a/setup.py
+++ b/setup.py
@@ -65,6 +65,9 @@ def get_platform():
MACOS = (HOST_PLATFORM == 'darwin')
AIX = (HOST_PLATFORM.startswith('aix'))
VXWORKS = ('vxworks' in HOST_PLATFORM)
+CC = os.environ.get("CC")
+if not CC:
+ CC = sysconfig.get_config_var("CC")


SUMMARY = """
@@ -443,6 +446,9 @@ def set_compiler_executables(self):

def build_extensions(self):
self.set_srcdir()
+ self.set_compiler_executables()
+ self.configure_compiler()
+ self.init_inc_lib_dirs()

# Detect which modules should be compiled
self.detect_modules()
@@ -451,7 +457,6 @@ def build_extensions(self):

self.update_sources_depends()
mods_built, mods_disabled = self.remove_configured_extensions()
- self.set_compiler_executables()

build_ext.build_extensions(self)

@@ -631,12 +636,11 @@ def check_extension_import(self, ext):
def add_multiarch_paths(self):
# Debian/Ubuntu multiarch support.
# https://wiki.ubuntu.com/MultiarchSpec
- cc = sysconfig.get_config_var('CC')
tmpfile = os.path.join(self.build_temp, 'multiarch')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
ret = run_command(
- '%s -print-multiarch > %s 2> /dev/null' % (cc, tmpfile))
+ '%s -print-multiarch > %s 2> /dev/null' % (CC, tmpfile))
multiarch_path_component = ''
try:
if ret == 0:
@@ -675,11 +679,10 @@ def add_multiarch_paths(self):
os.unlink(tmpfile)

def add_cross_compiling_paths(self):
- cc = sysconfig.get_config_var('CC')
tmpfile = os.path.join(self.build_temp, 'ccpaths')
if not os.path.exists(self.build_temp):
os.makedirs(self.build_temp)
- ret = run_command('%s -E -v - </dev/null 2>%s 1>/dev/null' % (cc, tmpfile))
+ ret = run_command('%s -E -v - </dev/null 2>%s 1>/dev/null' % (CC, tmpfile))
is_gcc = False
is_clang = False
in_incdirs = False
@@ -1783,9 +1786,6 @@ def detect_uuid(self):
self.missing.append('_uuid')

def detect_modules(self):
- self.configure_compiler()
- self.init_inc_lib_dirs()
-
self.detect_simple_extensions()
if TEST_EXTENSIONS:
self.detect_test_extensions()

_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins