Driver: honour the clang-cl behaviour on ARM as well
authorSaleem Abdulrasool <compnerd@compnerd.org>
Fri, 2 Jan 2015 21:47:33 +0000 (21:47 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Fri, 2 Jan 2015 21:47:33 +0000 (21:47 +0000)
Unfortunately, MSVC does not indicate to the driver what target is being used.
This means that we cannot correctly select the target architecture for the
clang_rt component.  This breaks down when targeting windows with the clang
driver as opposed to the clang-cl driver.  This should fix the native ARM
buildbot tests.

llvm-svn: 225089

clang/lib/Driver/Tools.cpp

index ecca1a4..90d1acc 100644 (file)
@@ -2103,11 +2103,12 @@ static void CollectArgsForIntegratedAssembler(Compilation &C,
 
 // Until ARM libraries are build separately, we have them all in one library
 static StringRef getArchNameForCompilerRTLib(const ToolChain &TC) {
-  if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb)
-    return "arm";
   // FIXME: handle 64-bit
-  if (TC.getTriple().isOSWindows())
+  if (TC.getTriple().isOSWindows() &&
+      !TC.getTriple().isWindowsItaniumEnvironment())
     return "i386";
+  if (TC.getArch() == llvm::Triple::arm || TC.getArch() == llvm::Triple::armeb)
+    return "arm";
   return TC.getArchName();
 }