Update the fix for issue4064 to deal correctly with all three variants of
universal builds that are presented by the configure script.
diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index a932fbd..65f175f 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -1107,6 +1107,7 @@
For universal binary builds on MacOS X the architecture value reflects
the univeral binary status instead of the architecture of the current
processor. For 32-bit universal binaries the architecture is ``fat``,
+ for 64-bit universal binaries the architecture is ``fat64``, and
for 4-way universal binaries the architecture is ``universal``.
Examples of returned values on MacOS X:
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index 48cc17f..e9d29ff 100644
--- a/Lib/distutils/util.py
+++ b/Lib/distutils/util.py
@@ -140,9 +140,13 @@
# 'universal' instead of 'fat'.
machine = 'fat'
+ cflags = get_config_vars().get('CFLAGS')
- if '-arch x86_64' in get_config_vars().get('CFLAGS'):
- machine = 'universal'
+ if '-arch x86_64' in cflags:
+ if '-arch i386' in cflags:
+ machine = 'universal'
+ else:
+ machine = 'fat64'
elif machine in ('PowerPC', 'Power_Macintosh'):
# Pick a sane name for the PPC architecture.