From: Ali Saidi Date: Thu, 8 Nov 2007 22:45:58 +0000 (-0500) Subject: Compiling: If possible compile a 64 bit binary on Mac OS X. X-Git-Tag: m5_2.0_beta5~84^2~23 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c01421a82dcbb6b26540461c88a7cae06e38c9c2;p=gem5.git Compiling: If possible compile a 64 bit binary on Mac OS X. --HG-- extra : convert_revision : 23d7c3744bfb20adaa31c999e0478e9055b4f657 --- diff --git a/SConstruct b/SConstruct index 4bd787b1d..c87ac50f5 100644 --- a/SConstruct +++ b/SConstruct @@ -65,7 +65,6 @@ import sys import os -import subprocess from os.path import isdir, join as joinpath @@ -77,6 +76,10 @@ from os.path import isdir, join as joinpath # scons script, e.g., "/usr/local/bin/python2.4 `which scons` [args]". EnsurePythonVersion(2,4) +# Import subprocess after we check the version since it doesn't exist in +# Python < 2.4. +import subprocess + # Ironically, SCons 0.96 dies if you give EnsureSconsVersion a # 3-element version number. min_scons_version = (0,96,91) @@ -329,6 +332,21 @@ conf = Configure(env, conf_dir = joinpath(build_root, '.scons_config'), log_file = joinpath(build_root, 'scons_config.log')) +# Check if we should compile a 64 bit binary on Mac OS X/Darwin +try: + import platform + uname = platform.uname() + if uname[0] == 'Darwin' and compare_versions(uname[2], '9.0.0') >= 0: + if int(subprocess.Popen('sysctl -n hw.cpu64bit_capable', shell=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, + close_fds=True).communicate()[0][0]): + env.Append(CCFLAGS='-arch x86_64') + env.Append(CFLAGS='-arch x86_64') + env.Append(LINKFLAGS='-arch x86_64') + env.Append(ASFLAGS='-arch x86_64') +except: + pass + # Recent versions of scons substitute a "Null" object for Configure() # when configuration isn't necessary, e.g., if the "--help" option is # present. Unfortuantely this Null object always returns false,