25 lines
909 B
Diff
25 lines
909 B
Diff
--- a/lib/Target/PowerPC/PPCSubtarget.cpp
|
|
+++ b/lib/Target/PowerPC/PPCSubtarget.cpp
|
|
@@ -145,8 +145,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
|
|
if (isDarwin())
|
|
HasLazyResolverStubs = true;
|
|
|
|
- if (TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
|
|
- TargetTriple.isMusl())
|
|
+ if (TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() || isTargetLinux())
|
|
SecurePlt = true;
|
|
|
|
if (HasSPE && IsPPC64)
|
|
--- a/lib/Target/PowerPC/PPCTargetMachine.cpp
|
|
+++ b/lib/Target/PowerPC/PPCTargetMachine.cpp
|
|
@@ -234,6 +234,10 @@ static Reloc::Model getEffectiveRelocModel(const Triple &TT,
|
|
if (TT.getArch() == Triple::ppc64)
|
|
return Reloc::PIC_;
|
|
|
|
+ // We force SecurePlt on 32-bit ppc linux which requires PIC
|
|
+ if (TT.isOSLinux() && (TT.getArch() == Triple::ppc))
|
|
+ return Reloc::PIC_;
|
|
+
|
|
// Rest are static by default.
|
|
return Reloc::Static;
|
|
}
|