]> granicus.if.org Git - clang/commitdiff
(llvm up) If the target triple is unspecified, automatically set the
authorDaniel Dunbar <daniel@zuster.org>
Thu, 2 Oct 2008 01:21:33 +0000 (01:21 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Thu, 2 Oct 2008 01:21:33 +0000 (01:21 +0000)
OS version part to that of the host on darwin.

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

Driver/clang.cpp

index 3ca5493d2cbd84df823c2919463f0845fb4569f3..1e26eaeac1f14290024242d00302dd1de18efec6 100644 (file)
@@ -45,6 +45,7 @@
 #include "llvm/Config/config.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/System/Host.h"
 #include "llvm/System/Path.h"
 #include "llvm/System/Signals.h"
 using namespace clang;
@@ -672,7 +673,18 @@ 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;
+  if (Triple.empty()) {
+    Triple = LLVM_HOSTTRIPLE;
+
+    // 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"));
+
+      Triple += llvm::sys::osVersion();
+    }
+  }
   
   // If -arch foo was specified, remove the architecture from the triple we have
   // so far and replace it with the specified one.