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 | eab3bc4f0b51b6558c85eb6a8079f327573790ba (patch) | |
tree | cb9e844ee095f23fa79238e25390fce56c8a4633 /lib | |
parent | c4ab3493bb3048014895cf577a8f27505a83603d (diff) |
Driver/Darwin: When using the simplified Clang toolchain, make sure to also pass
the arch specific gcc lib path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111839 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Driver/ToolChains.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 3d3c7cc0ff..f1e0d4dfc7 100644 --- a/lib/Driver/ToolChains.cpp +++ b/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())); } |