aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2019-06-25 02:35:22 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2019-06-25 02:35:22 +0000
commite861dab451869582008237a8c11e97348d2440ce (patch)
tree706a2849bdd52ce4bd941877d552b4aea3fcce3a /contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
parentf62da49b2f17f279ddba946bf4bc7ba7247273a5 (diff)
downloadsrc-e861dab451869582008237a8c11e97348d2440ce.tar.gz
src-e861dab451869582008237a8c11e97348d2440ce.zip
powerpc: Transition to Secure-PLT, like most other OSs (Toolchain part)
Summary: Toolchain follow-up to r349350. LLVM patches will be submitted upstream for 9.0 as well. The bsd.cpu.mk change is required because GNU ld assumes BSS-PLT if it cannot determine for certain that it needs Secure-PLT, and some binaries do not compile in such a way to make it know to use Secure-PLT. Reviewed By: nwhitehorn, bdragon, pfg Differential Revision: https://reviews.freebsd.org/D20598
Notes
Notes: svn path=/head/; revision=349351
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp')
-rw-r--r--contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp b/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
index 791f1206cf25..a85ff8d30a2e 100644
--- a/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+++ b/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
@@ -116,7 +116,8 @@ ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Driver &D, const llvm::Tripl
const ArgList &Args) {
if (Args.getLastArg(options::OPT_msecure_plt))
return ppc::ReadGOTPtrMode::SecurePlt;
- if (Triple.isOSOpenBSD())
+ if ((Triple.isOSFreeBSD() && Triple.getOSMajorVersion() >= 13) ||
+ Triple.isOSOpenBSD())
return ppc::ReadGOTPtrMode::SecurePlt;
else
return ppc::ReadGOTPtrMode::Bss;