diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2008-10-02 01:21:33 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2008-10-02 01:21:33 +0000 |
| commit | d03c02873ad839f67896254851fcd9d64ed69b17 (patch) | |
| tree | 0b9410d9cbb7314cfbce60047dd852354f43795e /clang/Driver/clang.cpp | |
| parent | e52e6bfd299f9352803026bf5f67016ea8734488 (diff) | |
| download | bcm5719-llvm-d03c02873ad839f67896254851fcd9d64ed69b17.tar.gz bcm5719-llvm-d03c02873ad839f67896254851fcd9d64ed69b17.zip | |
(llvm up) If the target triple is unspecified, automatically set the
OS version part to that of the host on darwin.
llvm-svn: 56943
Diffstat (limited to 'clang/Driver/clang.cpp')
| -rw-r--r-- | clang/Driver/clang.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp index 3ca5493d2cb..1e26eaeac1f 100644 --- a/clang/Driver/clang.cpp +++ b/clang/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. |

