]> granicus.if.org Git - clang/commitdiff
(LLVM up) Update to use llvm::sys::getHostTriple().
authorDaniel Dunbar <daniel@zuster.org>
Tue, 31 Mar 2009 17:35:15 +0000 (17:35 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 31 Mar 2009 17:35:15 +0000 (17:35 +0000)
 - Always pass -triple to clang-cc (-arch will be removed).

 - clang-cc doesn't play guess work with the target triple anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68119 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/Driver/clang-translation.c
tools/clang-cc/clang.cpp
tools/driver/driver.cpp

index e315a2f20ecd4ff2dc37881c5efbf13f7cad1204..cae07668737a4002c0b136ccad446b13866faf1e 100644 (file)
@@ -39,6 +39,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
                          const char *LinkingOutput) const {
   ArgStringList CmdArgs;
 
+  CmdArgs.push_back("-triple");
+  const char *TripleStr = 
+    Args.MakeArgString(getToolChain().getTripleString().c_str());
+  CmdArgs.push_back(TripleStr);
+
   if (isa<AnalyzeJobAction>(JA)) {
     assert(JA.getType() == types::TY_Plist && "Invalid output type.");
     CmdArgs.push_back("-analyze");
@@ -371,11 +376,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
 
   Args.AddAllArgValues(CmdArgs, options::OPT_Xclang);
 
-  // FIXME: Always pass the full triple once we aren't concerned with
-  // ccc compat.
-  CmdArgs.push_back("-arch");
-  CmdArgs.push_back(getToolChain().getArchName().c_str());
-
   if (Output.getType() == types::TY_Dependencies) {
     // Handled with other dependency code.
   } else if (Output.isPipe()) {
index b63a4379da197a87befa6fbd3567a164d5c74cf7..2421bd1f3acdea746a44c4641ed169ae69c72c5c 100644 (file)
@@ -1,4 +1,5 @@
 // RUN: clang -ccc-host-triple i386-unknown-unknown -### -S -O0 -Os %s -o %t.s -fverbose-asm 2> %t.log
+// RUN: grep '"-triple" "i386-unknown-unknown"' %t.log &&
 // RUN: grep '"-S"' %t.log &&
 // RUN: grep '"-disable-free"' %t.log &&
 // RUN: grep '"--relocation-model" "static"' %t.log &&
@@ -6,7 +7,6 @@
 // RUN: grep '"--unwind-tables=0"' %t.log &&
 // RUN: grep '"--fmath-errno=1"' %t.log &&
 // RUN: grep '"-Os"' %t.log &&
-// RUN: grep '"-arch" "i386"' %t.log &&
 // RUN: grep '"-o" .*clang-translation\.c\.out\.tmp\.s' %t.log &&
 // RUN: grep '"--asm-verbose"' %t.log &&
 // RUN: true
index 7541f80883fd9e801a61d3cc6ff7b12ea98cf50b..bd6456b960e550e3868fc54a9d4824566cc28b6f 100644 (file)
@@ -764,7 +764,7 @@ static void HandleMacOSVersionMin(std::string &Triple) {
   
   if (MacOSVersionMinIsInvalid) {
     fprintf(stderr, 
-        "-mmacosx-version-min=%s is invalid, expected something like '10.4'.\n", 
+        "-mmacosx-version-min=%s is invalid, expected something like '10.4'.\n",
             MacOSVersionMin.c_str());
     exit(1);
   }
@@ -776,25 +776,8 @@ static std::string CreateTargetTriple() {
   // Initialize base triple.  If a -triple option has been specified, use
   // that triple.  Otherwise, default to the host triple.
   std::string Triple = TargetTriple;
-  if (Triple.empty()) {
-    Triple = LLVM_HOSTTRIPLE;
-
-    // Force i<N>86 to i386 when using LLVM_HOSTTRIPLE.
-    if (Triple[0] == 'i' && isdigit(Triple[1]) && 
-        Triple[2] == '8' && Triple[3] == '6')
-      Triple[1] = '3';
-
-    // On darwin, we want to update the version to match that of the
-    // host.    
-    std::string::size_type DarwinDashIdx = Triple.find("-darwin");
-    if (DarwinDashIdx != std::string::npos) {
-      Triple.resize(DarwinDashIdx + strlen("-darwin"));
-
-      // Only add the major part of the os version.
-      std::string Version = llvm::sys::getOSVersion();
-      Triple += Version.substr(0, Version.find('.'));
-    }
-  }
+  if (Triple.empty())
+    Triple = llvm::sys::getHostTriple();
   
   // If -arch foo was specified, remove the architecture from the triple we have
   // so far and replace it with the specified one.
index d968cc879f0290d42afe4018073cb5b77d1df590..880a26acf7019a28392b7485dd9715f1ab4343a3 100644 (file)
@@ -23,6 +23,7 @@
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/raw_ostream.h"
+#include "llvm/System/Host.h"
 #include "llvm/System/Path.h"
 #include "llvm/System/Signals.h"
 using namespace clang;
@@ -77,13 +78,10 @@ int main(int argc, const char **argv) {
 
   Diagnostic Diags(DiagClient.get());
 
-  // FIXME: Use the triple of the host, not the triple that we were
-  // compiled on.
-  llvm::OwningPtr<Driver> TheDriver(new Driver(Path.getBasename().c_str(),
-                                               Path.getDirname().c_str(),
-                                               LLVM_HOSTTRIPLE,
-                                               "a.out",
-                                               Diags));
+  llvm::OwningPtr<Driver> 
+    TheDriver(new Driver(Path.getBasename().c_str(), Path.getDirname().c_str(),
+                         llvm::sys::getHostTriple().c_str(),
+                         "a.out", Diags));
                                                
   llvm::OwningPtr<Compilation> C(TheDriver->BuildCompilation(argc, argv));