diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-07-10 23:24:36 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-07-10 23:24:36 +0000 |
| commit | 37bf71828b572d551e1a892beb2afc6db0d51b37 (patch) | |
| tree | 9f71e7d20db2c280e90a9575e0a29879f87cb3f7 /clang/lib/Driver | |
| parent | e87ad547efec70e15a727d3e8d3d7df6e14e5c99 (diff) | |
| download | bcm5719-llvm-37bf71828b572d551e1a892beb2afc6db0d51b37.tar.gz bcm5719-llvm-37bf71828b572d551e1a892beb2afc6db0d51b37.zip | |
Reapply SVN r274797.
Original Commit Message
Driver: Stop linking to C++ when using sanitizers on Darwin
Sanitizers on Darwin are built as dynamic libraries, not static libraries.
Sanitizers will have their C++ dependency satisfied internally (LC_LOAD_DYLIB)
in the libclang_rt dylib. As long as the sanitizers stay dynamic and not static,
linking against C++ when enabling a sanitizer becomes over linkage.
Patch by Dave Lee!
llvm-svn: 275032
Diffstat (limited to 'clang/lib/Driver')
| -rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 89e973a1209..4ecbf2bac3c 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -392,24 +392,12 @@ void Darwin::addProfileRTLibs(const ArgList &Args, void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args, ArgStringList &CmdArgs, StringRef Sanitizer) const { - if (!Args.hasArg(options::OPT_dynamiclib) && - !Args.hasArg(options::OPT_bundle)) { - // Sanitizer runtime libraries requires C++. - AddCXXStdlibLibArgs(Args, CmdArgs); - } - AddLinkRuntimeLib( Args, CmdArgs, (Twine("libclang_rt.") + Sanitizer + "_" + getOSLibraryNameSuffix() + "_dynamic.dylib").str(), /*AlwaysLink*/ true, /*IsEmbedded*/ false, /*AddRPath*/ true); - - if (GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) { - // Add explicit dependcy on -lc++abi, as -lc++ doesn't re-export - // all RTTI-related symbols that UBSan uses. - CmdArgs.push_back("-lc++abi"); - } } void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args, |

