aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2016-09-09 18:20:49 +0000
committerDouglas Katzman <dougk@google.com>2016-09-09 18:20:49 +0000
commit3972f9e6df4ef35bd00df04efbed6806a9964cd6 (patch)
tree4859181eeb81defc5f5fb4bb9f8e1f4281aa5733 /clang/lib/Driver/Tools.cpp
parent72c5b6451f469077934e755a42e4e72bedbb00f1 (diff)
downloadllvm-3972f9e6df4ef35bd00df04efbed6806a9964cd6.zip
llvm-3972f9e6df4ef35bd00df04efbed6806a9964cd6.tar.gz
llvm-3972f9e6df4ef35bd00df04efbed6806a9964cd6.tar.bz2
Myriad: nominally "support" ASAN.
Doesn't work, but needs to be enabled in order to get there. llvm-svn: 281071
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 8cd8643..8a77fab 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -3081,11 +3081,15 @@ static void linkSanitizerRuntimeDeps(const ToolChain &TC,
// Force linking against the system libraries sanitizers depends on
// (see PR15823 why this is necessary).
CmdArgs.push_back("--no-as-needed");
- CmdArgs.push_back("-lpthread");
- CmdArgs.push_back("-lrt");
+ // There's no libpthread or librt on RTEMS.
+ if (TC.getTriple().getOS() != llvm::Triple::RTEMS) {
+ CmdArgs.push_back("-lpthread");
+ CmdArgs.push_back("-lrt");
+ }
CmdArgs.push_back("-lm");
- // There's no libdl on FreeBSD.
- if (TC.getTriple().getOS() != llvm::Triple::FreeBSD)
+ // There's no libdl on FreeBSD or RTEMS.
+ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD &&
+ TC.getTriple().getOS() != llvm::Triple::RTEMS)
CmdArgs.push_back("-ldl");
}
@@ -11055,9 +11059,12 @@ void tools::Myriad::Linker::ConstructJob(Compilation &C, const JobAction &JA,
TC.AddFilePathLibArgs(Args, CmdArgs);
+ bool NeedsSanitizerDeps = addSanitizerRuntimes(TC, Args, CmdArgs);
AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs);
if (UseDefaultLibs) {
+ if (NeedsSanitizerDeps)
+ linkSanitizerRuntimeDeps(TC, CmdArgs);
if (C.getDriver().CCCIsCXX())
CmdArgs.push_back("-lstdc++");
if (T.getOS() == llvm::Triple::RTEMS) {