[Python-checkins] cpython (3.3): Issue #19400: Prevent extension module build failures with Xcode 5 on OS X
ned.deily
python-checkins at python.org
Sat Oct 26 01:05:42 CEST 2013
http://hg.python.org/cpython/rev/e62a64507913
changeset: 86641:e62a64507913
branch: 3.3
parent: 86626:f575f6298eb1
user: Ned Deily <nad at acm.org>
date: Fri Oct 25 16:03:35 2013 -0700
summary:
Issue #19400: Prevent extension module build failures with Xcode 5 on OS X
10.8+ when using a universal Python that included a PPC architecture,
such as with a python.org 32-bit-only binary installer.
files:
Lib/_osx_support.py | 20 +++++++++++++-------
Misc/NEWS | 4 ++++
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/Lib/_osx_support.py b/Lib/_osx_support.py
--- a/Lib/_osx_support.py
+++ b/Lib/_osx_support.py
@@ -235,13 +235,19 @@
if re.search('-arch\s+ppc', _config_vars['CFLAGS']) is not None:
# NOTE: Cannot use subprocess here because of bootstrap
# issues when building Python itself
- status = os.system("'%s' -arch ppc -x c /dev/null 2>/dev/null"%(
- _config_vars['CC'].replace("'", "'\"'\"'"),))
- # The Apple compiler drivers return status 255 if no PPC
- if (status >> 8) == 255:
- # Compiler doesn't support PPC, remove the related
- # '-arch' flags if not explicitly overridden by an
- # environment variable
+ status = os.system(
+ """echo 'int main{};' | """
+ """'%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/null"""
+ %(_config_vars['CC'].replace("'", "'\"'\"'"),))
+ if status:
+ # The compile failed for some reason. Because of differences
+ # across Xcode and compiler versions, there is no reliable way
+ # to be sure why it failed. Assume here it was due to lack of
+ # PPC support and remove the related '-arch' flags from each
+ # config variables not explicitly overriden by an environment
+ # variable. If the error was for some other reason, we hope the
+ # failure will show up again when trying to compile an extension
+ # module.
for cv in _UNIVERSAL_CONFIG_VARS:
if cv in _config_vars and cv not in os.environ:
flags = _config_vars[cv]
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -411,6 +411,10 @@
existing directory caused mkstemp and related APIs to fail instead of
retrying. Report and fix by Vlad Shcherbina.
+- Issue #19400: Prevent extension module build failures with Xcode 5 on OS X
+ 10.8+ when using a universal Python that included a PPC architecture,
+ such as with a python.org 32-bit-only binary installer.
+
C API
-----
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list