On OSX the output of "uname -m" always reflects the 32-bit architecture

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.
This commit is contained in:
Ronald Oussoren 2009-12-24 13:06:39 +00:00
parent 9c236bfb9f
commit 728cc6110f
1 changed files with 10 additions and 0 deletions

View 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)