diff options
-rw-r--r-- | lldb/source/Host/common/Host.cpp | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/lldb/source/Host/common/Host.cpp b/lldb/source/Host/common/Host.cpp index 98e5b95cce4..cb6a3cf97f1 100644 --- a/lldb/source/Host/common/Host.cpp +++ b/lldb/source/Host/common/Host.cpp @@ -18,6 +18,8 @@ #include "lldb/Host/Endian.h" #include "lldb/Host/Mutex.h" +#include "llvm/Support/Host.h" + #include <dlfcn.h> #include <errno.h> @@ -288,34 +290,31 @@ Host::GetArchitecture (SystemDefaultArchitecture arch_kind) } #else // #if defined (__APPLE__) - + if (g_supports_32 == false && g_supports_64 == false) { -#if defined (__x86_64__) - - g_host_arch_64.SetTriple ("x86_64"); - -#elif defined (__i386__) - - g_host_arch_32.SetTriple ("i386"); - -#elif defined (__arm__) - - g_host_arch_32.SetTriple ("arm"); - -#elif defined (__ppc64__) + llvm::Triple triple(llvm::sys::getHostTriple()); - g_host_arch_64.SetTriple ("ppc64"); + g_host_arch_32.Clear(); + g_host_arch_64.Clear(); -#elif defined (__powerpc__) || defined (__ppc__) - - g_host_arch_32.SetTriple ("ppc"); - -#else - -#error undefined architecture, define your architecture here - -#endif + switch (triple.getArch()) + { + default: + g_host_arch_32.SetTriple(triple); + g_supports_32 = true; + break; + + case llvm::Triple::alpha: + case llvm::Triple::x86_64: + case llvm::Triple::sparcv9: + case llvm::Triple::ppc64: + case llvm::Triple::systemz: + case llvm::Triple::cellspu: + g_host_arch_64.SetTriple(triple); + g_supports_64 = true; + break; + } g_supports_32 = g_host_arch_32.IsValid(); g_supports_64 = g_host_arch_64.IsValid(); |