From e553a726fa52ed2f9a6472ded5d9b602a7af5af1 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 2 Oct 2008 01:21:33 +0000 Subject: [PATCH] (llvm up) If the target triple is unspecified, automatically set the 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 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Driver/clang.cpp b/Driver/clang.cpp index 3ca5493d2c..1e26eaeac1 100644 --- a/Driver/clang.cpp +++ b/Driver/clang.cpp @@ -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. -- 2.40.0