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 | afeb03b41deb1580cf87eea614ea4be4624b5cdc (patch) | |
tree | 8ce3927dbda4d2a623740c92580af40182fd08a9 /clang/lib/Driver/ToolChains.cpp | |
parent | dd84ef1e62fb1b732d8655da4d7e058f118c04d8 (diff) | |
download | bcm5719-llvm-afeb03b41deb1580cf87eea614ea4be4624b5cdc.tar.gz bcm5719-llvm-afeb03b41deb1580cf87eea614ea4be4624b5cdc.zip |
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
llvm-svn: 114193
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index dbb2a9f3d24..5b4c93bb5b8 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/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()); |