]> granicus.if.org Git - clang/commitdiff
On PowerPC, Secure-PLT by default for FreeBSD 13 and higher
authorDimitry Andric <dimitry@andric.com>
Wed, 18 Sep 2019 20:58:03 +0000 (20:58 +0000)
committerDimitry Andric <dimitry@andric.com>
Wed, 18 Sep 2019 20:58:03 +0000 (20:58 +0000)
Summary:
In https://svnweb.freebsd.org/changeset/base/349351, FreeBSD 13 and
higher transitioned to Secure-PLT for PowerPC.  This part contains the
changes in clang's PPC architecture defaults.

Reviewers: emaste, jhibbits, hfinkel

Reviewed By: jhibbits

Subscribers: wuzish, nemanjai, krytarowski, kbarton, MaskRay, jsji, shchenz, steven.zhang, cfe-commits

Tags: #clang

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

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

lib/Driver/ToolChains/Arch/PPC.cpp

index 30f1a0d9022c2bc0166c317a83f07edd2affdce5..59ff7cbc787c7efb9c010481a23a329cc844f570 100644 (file)
@@ -115,7 +115,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.isOSNetBSD() || Triple.isOSOpenBSD() || Triple.isMusl())
+  if ((Triple.isOSFreeBSD() && Triple.getOSMajorVersion() >= 13) ||
+      Triple.isOSNetBSD() || Triple.isOSOpenBSD() || Triple.isMusl())
     return ppc::ReadGOTPtrMode::SecurePlt;
   else
     return ppc::ReadGOTPtrMode::Bss;