]> granicus.if.org Git - clang/commitdiff
OpenBSD driver needs ld.lld in sanitizer context
authorDavid Carlier <devnexen@gmail.com>
Thu, 28 Jun 2018 13:49:41 +0000 (13:49 +0000)
committerDavid Carlier <devnexen@gmail.com>
Thu, 28 Jun 2018 13:49:41 +0000 (13:49 +0000)
Base GNU ld is pretty ancient and does not support --dynamic-list flag.
For conveniency, we can it automatically when compile with ubsan sanitizer flag.

Reviewers: dberris

Reviewed by: dberris

Differential Revision: https://reviews.llvm.org/D48574

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@335856 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains/OpenBSD.cpp

index 3a2a00430698536911ac12c8100211214af9f562..7b98cd62bbfcf8f8c40175339746a40005e6c545 100644 (file)
@@ -230,7 +230,9 @@ void openbsd::Linker::ConstructJob(Compilation &C, const JobAction &JA,
           Args.MakeArgString(getToolChain().GetFilePath("crtendS.o")));
   }
 
-  const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());
+  const char *Exec = Args.MakeArgString(
+      !NeedsSanitizerDeps ? getToolChain().GetLinkerPath()
+                          : getToolChain().GetProgramPath("ld.lld"));
   C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
 }