diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-03-31 17:35:15 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-31 17:35:15 +0000 |
commit | af07f936b698575f2c91f1c1134c116f1ef0dedd (patch) | |
tree | 93ff0ae134f546b8956c671d54ad9a61a56243f7 | |
parent | cfdee929290b73ae1c4e5896d5cba120bc677661 (diff) |
(LLVM up) Update to use llvm::sys::getHostTriple().
- 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
-rw-r--r-- | lib/Driver/Tools.cpp | 10 | ||||
-rw-r--r-- | test/Driver/clang-translation.c | 2 | ||||
-rw-r--r-- | tools/clang-cc/clang.cpp | 23 | ||||
-rw-r--r-- | tools/driver/driver.cpp | 12 |
4 files changed, 14 insertions, 33 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e315a2f20e..cae0766873 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -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()) { diff --git a/test/Driver/clang-translation.c b/test/Driver/clang-translation.c index b63a4379da..2421bd1f3a 100644 --- a/test/Driver/clang-translation.c +++ b/test/Driver/clang-translation.c @@ -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 diff --git a/tools/clang-cc/clang.cpp b/tools/clang-cc/clang.cpp index 7541f80883..bd6456b960 100644 --- a/tools/clang-cc/clang.cpp +++ b/tools/clang-cc/clang.cpp @@ -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. diff --git a/tools/driver/driver.cpp b/tools/driver/driver.cpp index d968cc879f..880a26acf7 100644 --- a/tools/driver/driver.cpp +++ b/tools/driver/driver.cpp @@ -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)); |