diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-08-23 20:58:52 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-08-23 20:58:52 +0000 |
commit | 09a4851eadf0122d540cb80a332227f34f514c0c (patch) | |
tree | ec72925e3dd9d3417cabd895a345c35456799436 | |
parent | 5d3b70a6fcdd0534950a98861e9aad7c40e376d0 (diff) | |
download | bcm5719-llvm-09a4851eadf0122d540cb80a332227f34f514c0c.tar.gz bcm5719-llvm-09a4851eadf0122d540cb80a332227f34f514c0c.zip |
Driver/Darwin: When using the simplified Clang toolchain, make sure to also pass
the arch specific gcc lib path.
llvm-svn: 111839
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 3d3c7cc0ff1..f1e0d4dfc78 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -263,7 +263,7 @@ void DarwinGCC::AddLinkSearchPathArgs(const ArgList &Args, CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/gcc/" + ToolChainDir + "/x86_64")); } - + CmdArgs.push_back(Args.MakeArgString("-L/usr/lib/" + ToolChainDir)); Tmp = getDriver().Dir + "/../lib/gcc/" + ToolChainDir; @@ -369,6 +369,32 @@ void DarwinClang::AddLinkSearchPathArgs(const ArgList &Args, break; } P.appendComponent("4.2.1"); + + // Determine the arch specific GCC subdirectory. + const char *ArchSpecificDir = 0; + switch (getTriple().getArch()) { + default: + break; + case llvm::Triple::arm: + case llvm::Triple::thumb: + // FIXME: Get the right subdirectory for ARM. + break; + case llvm::Triple::ppc64: + ArchSpecificDir = "ppc64"; + break; + case llvm::Triple::x86_64: + ArchSpecificDir = "x86_64"; + break; + } + + if (ArchSpecificDir) { + P.appendComponent(ArchSpecificDir); + llvm::errs() << P.str() << "\n"; + if (P.exists()) + CmdArgs.push_back(Args.MakeArgString("-L" + P.str())); + P.eraseComponent(); + } + if (P.exists()) CmdArgs.push_back(Args.MakeArgString("-L" + P.str())); } |