From 17a58ee0a95ac6b15cec3731f93262a6378e7d6a Mon Sep 17 00:00:00 2001
From: Ben Boeckel <ben.boeckel@kitware.com>
Date: Mon, 26 Oct 2015 18:31:25 -0400
Subject: [PATCH] architecture: use uname if available

---
 lib/spack/spack/architecture.py | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index 0c4b605e91..e0d42c2077 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -24,6 +24,7 @@
 ##############################################################################
 import os
 import platform as py_platform
+import subprocess
 
 from llnl.util.lang import memoized
 
@@ -69,12 +70,24 @@ def get_mac_sys_type():
         Version(mac_ver).up_to(2), py_platform.machine())
 
 
+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
+
+
 @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_mac_sys_type,
+               get_sys_type_from_uname]
 
     # search for a method that doesn't return None
     sys_type = None
-- 
GitLab