]> granicus.if.org Git - python/commitdiff
On OSX the output of "uname -m" always reflects the 32-bit architecture
authorRonald Oussoren <ronaldoussoren@mac.com>
Thu, 24 Dec 2009 13:06:39 +0000 (13:06 +0000)
committerRonald Oussoren <ronaldoussoren@mac.com>
Thu, 24 Dec 2009 13:06:39 +0000 (13:06 +0000)
for the machine ("i386" or "ppc"), even if the executable is
64-bit.

This patchs ensures that the distutils platform architecture
represents the architecture for the executable when running a
64-bit only executable on OSX.

Lib/distutils/util.py

index b8e4952fee1e96d7fe3d9396c62b64fe868e321b..f4bb0633c5ff0080e001a9a2bb9d3eac0b270cd9 100644 (file)
@@ -165,11 +165,21 @@ def get_platform():
                     raise ValueError(
                        "Don't know machine value for archs=%r"%(archs,))
 
+            elif machine == 'i386':
+                # On OSX the machine type returned by uname is always the
+                # 32-bit variant, even if the executable architecture is
+                # the 64-bit variant
+                if sys.maxint >= 2**32:
+                    machine = 'x86_64'
 
             elif machine in ('PowerPC', 'Power_Macintosh'):
                 # Pick a sane name for the PPC architecture.
                 machine = 'ppc'
 
+                # See 'i386' case
+                if sys.maxint >= 2**32:
+                    machine = 'ppc64'
+
     return "%s-%s-%s" % (osname, release, machine)