diff options
author | 2019-09-28 22:34:04 +0000 | |
---|---|---|
committer | 2019-09-28 22:34:04 +0000 | |
commit | 6fa5adb2b628678ac733f1abb64262f2ded86284 (patch) | |
tree | 58ca061dbddb2f31cfeec90f6af22c305c6793bd | |
parent | sync (diff) | |
download | wireguard-openbsd-6fa5adb2b628678ac733f1abb64262f2ded86284.tar.xz wireguard-openbsd-6fa5adb2b628678ac733f1abb64262f2ded86284.zip |
Make clang emit the proper path to our libcompiler_rt.a when asked to.
Change of behaviour in latest clang upgrade noticed by jsing@ during
the Go port update, where --print-libgcc-file-name is being used which
prints the compiler-rt path.
ok kettenis@
-rw-r--r-- | gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp | 9 | ||||
-rw-r--r-- | gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp b/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp index 7615edaa78b..e9cb88e5ca0 100644 --- a/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp +++ b/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp @@ -17,6 +17,7 @@ #include "clang/Driver/Options.h" #include "clang/Driver/SanitizerArgs.h" #include "llvm/Option/ArgList.h" +#include "llvm/Support/Path.h" using namespace clang::driver; using namespace clang::driver::tools; @@ -318,3 +319,11 @@ void OpenBSD::AddCXXStdlibLibArgs(const ArgList &Args, break; } } + +std::string OpenBSD::getCompilerRT(const ArgList &Args, + StringRef Component, + bool Shared) const { + SmallString<128> P(getDriver().SysRoot); + llvm::sys::path::append(P, "/usr/lib/libcompiler_rt.a"); + return P.str(); +} diff --git a/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h b/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h index 295e2390e19..6d520d724f5 100644 --- a/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h +++ b/gnu/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h @@ -74,6 +74,9 @@ public: const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; + std::string getCompilerRT(const llvm::opt::ArgList &Args, StringRef Component, + bool Shared = false) const override; + unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override { return 2; } |