]> granicus.if.org Git - clang/commitdiff
Teach clang/NetBSD about additional dependencies for sanitizers
authorKamil Rytarowski <n54@gmx.com>
Tue, 19 Dec 2017 07:10:33 +0000 (07:10 +0000)
committerKamil Rytarowski <n54@gmx.com>
Tue, 19 Dec 2017 07:10:33 +0000 (07:10 +0000)
Summary:
Sanitizers on NetBSD require additional linkage:

 - libutil for forkpty(3)
 - libexecinfo for backtrace(3)

Sponsored by <The NetBSD Foundation>

Reviewers: joerg, eugenis, vitalybuka, kcc

Reviewed By: eugenis

Subscribers: #sanitizers, cfe-commits

Tags: #sanitizers

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

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

lib/Driver/ToolChains/CommonArgs.cpp

index ab51a8c3cc901cd311571b7f5a11c5af2c773fa5..60f96d03c9c8498fcedadf4b7f9f0ac800c2dbf8 100644 (file)
@@ -549,6 +549,12 @@ void tools::linkSanitizerRuntimeDeps(const ToolChain &TC,
       TC.getTriple().getOS() != llvm::Triple::NetBSD &&
       TC.getTriple().getOS() != llvm::Triple::RTEMS)
     CmdArgs.push_back("-ldl");
+  // Required for forkpty on some OSes
+  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
+    CmdArgs.push_back("-lutil");
+  // Required for backtrace on some OSes
+  if (TC.getTriple().getOS() == llvm::Triple::NetBSD)
+    CmdArgs.push_back("-lexecinfo");
 }
 
 static void