diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-06-30 23:56:13 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-06-30 23:56:13 +0000 |
commit | 9dcde4bdec98ae6a0a84afaa00e81edf71e67d77 (patch) | |
tree | d26952e2a56127bf192859c2ea8260c4ada618e3 /clang/lib | |
parent | 35f3dd20a60576037535abd541abf9689565371d (diff) | |
download | bcm5719-llvm-9dcde4bdec98ae6a0a84afaa00e81edf71e67d77.tar.gz bcm5719-llvm-9dcde4bdec98ae6a0a84afaa00e81edf71e67d77.zip |
Driver/Darwin: Add one -L for the DarwinClang toolchain to point into the gcc
library directory, as we still rely on a few libraries that are hiding there (in
particular libstdc++.dylib).
llvm-svn: 107353
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index a31978c0bcc..b071864e217 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -325,6 +325,33 @@ DarwinClang::DarwinClang(const HostInfo &Host, const llvm::Triple& Triple, void DarwinClang::AddLinkSearchPathArgs(const ArgList &Args, ArgStringList &CmdArgs) const { // The Clang toolchain uses explicit paths for internal libraries. + + // Unfortunately, we still might depend on a few of the libraries that are + // only available in the gcc library directory (in particular + // libstdc++.dylib). For now, hardcode the path to the known install location. + llvm::sys::Path P(getDriver().Dir); + P.eraseComponent(); // .../usr/bin -> ../usr + P.appendComponent("lib"); + P.appendComponent("gcc"); + switch (getTriple().getArch()) { + default: + assert(0 && "Invalid Darwin arch!"); + case llvm::Triple::x86: + case llvm::Triple::x86_64: + P.appendComponent("i686-apple-darwin10"); + break; + case llvm::Triple::arm: + case llvm::Triple::thumb: + P.appendComponent("arm-apple-darwin10"); + break; + case llvm::Triple::ppc: + case llvm::Triple::ppc64: + P.appendComponent("powerpc-apple-darwin10"); + break; + } + P.appendComponent("4.2.1"); + if (P.exists()) + CmdArgs.push_back(Args.MakeArgString("-L" + P.str())); } void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args, |