summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-10-29 00:01:30 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2015-10-29 00:01:30 -0700
commitfec6674597dfc4c48b489b484e281582c5b881fb (patch)
treeaa5fb835633e6b877b55d8ead61953336c4c7296
parentdab230845d976ea048a02f27b06f2a791e911bac (diff)
parent6c9b10f73dc2c5bf2281d6434d3aaa5cf2ded056 (diff)
downloadspack-fec6674597dfc4c48b489b484e281582c5b881fb.tar.gz
spack-fec6674597dfc4c48b489b484e281582c5b881fb.tar.bz2
spack-fec6674597dfc4c48b489b484e281582c5b881fb.tar.xz
spack-fec6674597dfc4c48b489b484e281582c5b881fb.zip
Merge pull request #139 from mathstuf/use-uname-for-arch
architecture: use uname if available
-rw-r--r--lib/spack/spack/architecture.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index 0c4b605e91..05ac5d6f35 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -23,13 +23,12 @@
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import os
-import platform as py_platform
+import subprocess
from llnl.util.lang import memoized
import spack
import spack.error as serr
-from spack.version import Version
class InvalidSysTypeError(serr.SpackError):
@@ -59,22 +58,23 @@ def get_sys_type_from_environment():
return os.environ.get('SYS_TYPE')
-def get_mac_sys_type():
- """Return a Mac OS SYS_TYPE or None if this isn't a mac."""
- mac_ver = py_platform.mac_ver()[0]
- if not mac_ver:
+def get_sys_type_from_uname():
+ """Return the architecture from uname."""
+ try:
+ arch_proc = subprocess.Popen(['uname', '-i'],
+ stdout=subprocess.PIPE)
+ arch, _ = arch_proc.communicate()
+ return arch.strip()
+ except:
return None
- return "macosx_%s_%s" % (
- Version(mac_ver).up_to(2), py_platform.machine())
-
@memoized
def sys_type():
"""Returns a SysType for the current machine."""
methods = [get_sys_type_from_spack_globals,
get_sys_type_from_environment,
- get_mac_sys_type]
+ get_sys_type_from_uname]
# search for a method that doesn't return None
sys_type = None