[llvm-commits] [llvm] r142046 - /llvm/trunk/lib/Support/Windows/Host.inc
Chad Rosier
mcrosier at apple.com
Fri Oct 14 19:10:06 PDT 2011
Author: mcrosier
Date: Fri Oct 14 21:10:06 2011
New Revision: 142046
URL: http://llvm.org/viewvc/llvm-project?rev=142046&view=rev
Log:
Fix for llvm::sys::getHostTriple on Windows. Instead of relying on the triple
from config.h, it discovers the triple based on the execution environment.
Patch by Aaron Ballman <aaron at aaronballman.com>
Modified:
llvm/trunk/lib/Support/Windows/Host.inc
Modified: llvm/trunk/lib/Support/Windows/Host.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Host.inc?rev=142046&r1=142045&r2=142046&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Host.inc (original)
+++ llvm/trunk/lib/Support/Windows/Host.inc Fri Oct 14 21:10:06 2011
@@ -12,12 +12,44 @@
//===----------------------------------------------------------------------===//
#include "Windows.h"
-#include <cstdio>
-#include <string>
+#include "llvm/ADT/Twine.h"
using namespace llvm;
std::string sys::getHostTriple() {
- // FIXME: Adapt to running version.
- return LLVM_HOSTTRIPLE;
+ // Get the execution environment, not the native environment.
+ SYSTEM_INFO info;
+ ::GetSystemInfo(&info);
+
+ Twine ret;
+ switch (info.wProcessorArchitecture) {
+ // If we don't know what the processor architecture is, or it is not one
+ // we currently support, then we should fall back on something reasonable.
+ case PROCESSOR_ARCHITECTURE_IA64:
+ default: return LLVM_HOSTTRIPLE;
+
+ case PROCESSOR_ARCHITECTURE_INTEL:
+ // We need to figure out what kind of x86 it is (possible values are
+ // i386 through i986).
+ ret = Twine("i").concat(Twine(info.wProcessorLevel)).concat("86");
+ break;
+ case PROCESSOR_ARCHITECTURE_AMD64:
+ ret = "amd64";
+ break;
+ case PROCESSOR_ARCHITECTURE_MIPS:
+ ret = "mips";
+ break;
+ case PROCESSOR_ARCHITECTURE_ARM:
+ ret = "arm";
+ break;
+ case PROCESSOR_ARCHITECTURE_PPC:
+ ret = "ppc";
+ break;
+ case PROCESSOR_ARCHITECTURE_ALPHA:
+ ret = "alpha";
+ break;
+ }
+
+ // Since we're on Windows, we're always on pc-win32.
+ return ret.concat("-pc-win32").str();
}
More information about the llvm-commits
mailing list