summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp
diff options
context:
space:
mode:
authormortimer <mortimer@openbsd.org>2020-10-12 14:52:08 +0000
committermortimer <mortimer@openbsd.org>2020-10-12 14:52:08 +0000
commite836804d54a63f0716bc1d6fcada314151129a64 (patch)
treebd1ee249ed1bb97b006689a9b0219eb78db72f10 /gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp
parentAccommodate POSIX basename(3) that takes a non-const parameter and (diff)
downloadwireguard-openbsd-e836804d54a63f0716bc1d6fcada314151129a64.tar.xz
wireguard-openbsd-e836804d54a63f0716bc1d6fcada314151129a64.zip
Add RETGUARD implementation for powerpc and powerpc64.
ok deraadt@ kettenis@
Diffstat (limited to 'gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp')
-rw-r--r--gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp b/gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp
index 41d486c7046..c8e4003875a 100644
--- a/gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/gnu/llvm/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5213,10 +5213,14 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
else if (A->getOption().matches(options::OPT_fret_protector))
RetProtector = 1;
}
+
if (RetProtector &&
((getToolChain().getArch() == llvm::Triple::x86_64) ||
(getToolChain().getArch() == llvm::Triple::mips64) ||
(getToolChain().getArch() == llvm::Triple::mips64el) ||
+ (getToolChain().getArch() == llvm::Triple::ppc) ||
+ (getToolChain().getArch() == llvm::Triple::ppc64) ||
+ (getToolChain().getArch() == llvm::Triple::ppc64le) ||
(getToolChain().getArch() == llvm::Triple::aarch64)) &&
!Args.hasArg(options::OPT_fno_stack_protector) &&
!Args.hasArg(options::OPT_pg)) {