diff options
author | Shantonu Sen <ssen@apple.com> | 2010-09-17 18:39:08 +0000 |
---|---|---|
committer | Shantonu Sen <ssen@apple.com> | 2010-09-17 18:39:08 +0000 |
commit | 7433fedce98a58341d0f30c2e12e8d53f3bba575 (patch) | |
tree | b1a382bba20482b5de15c7352950c4c427a9214f /lib/Driver/ToolChains.cpp | |
parent | 7f18e67e1b577a50402e8b43508ab2311a5c45b5 (diff) |
Driver: implement driver automagic support for -lcc_kext
Rewrite linker arguments to use libclang_rt.cc_kext.a
instead of gcc-specific libcc_kext.a
Resolves Radar 7808495
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114193 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ToolChains.cpp')
-rw-r--r-- | lib/Driver/ToolChains.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index dbb2a9f3d2..5b4c93bb5b 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -644,6 +644,27 @@ void DarwinClang::AddCXXStdlibLibArgs(const ArgList &Args, } } +void DarwinClang::AddCCKextLibArgs(const ArgList &Args, + ArgStringList &CmdArgs) const { + + // For Darwin platforms, use the compiler-rt-based support library + // instead of the gcc-provided one (which is also incidentally + // only present in the gcc lib dir, which makes it hard to find). + + llvm::sys::Path P(getDriver().ResourceDir); + P.appendComponent("lib"); + P.appendComponent("darwin"); + P.appendComponent("libclang_rt.cc_kext.a"); + + // For now, allow missing resource libraries to support developers who may + // not have compiler-rt checked out or integrated into their build. + if (!P.exists()) + getDriver().Diag(clang::diag::warn_drv_missing_resource_library) + << P.str(); + else + CmdArgs.push_back(Args.MakeArgString(P.str())); +} + DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args, const char *BoundArch) const { DerivedArgList *DAL = new DerivedArgList(Args.getBaseArgs()); |