void-packages/srcpkgs/llvm9/files/patches/llvm/llvm-003-secureplt.patch
2019-09-26 20:08:05 +02:00

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;
}