Bring in some patches from upstream..
Make sure PowerPC backend is in sync with the frontend and enable Secure PLT
support their too.
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.216
diff -u -p -u -p -r1.216 Makefile
--- Makefile 9 Mar 2019 06:18:11 -0000 1.216
+++ Makefile 10 Mar 2019 21:39:41 -0000
@@ -20,7 +20,7 @@ PKGSPEC-main = llvm-=${LLVM_V}
PKGNAME-main = llvm-${LLVM_V}
PKGNAME-python = py-llvm-${LLVM_V}
PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main = 9
+REVISION-main = 10
REVISION-lldb = 0
CATEGORIES = devel
DISTFILES = llvm-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
===================================================================
RCS file: patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
diff -N patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp 10 Mar 2019 22:12:43
-0000
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+Default to Secure PLT on PPC for NetBSD and OpenBSD.
+This matches the default settings of clang.
+
+Index: lib/Target/PowerPC/PPCSubtarget.cpp
+--- lib/Target/PowerPC/PPCSubtarget.cpp.orig
++++ lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -138,6 +138,9 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU
+ if (isDarwin())
+ HasLazyResolverStubs = true;
+
++ if (TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD())
++ SecurePlt = true;
++
+ if (HasSPE && IsPPC64)
+ report_fatal_error( "SPE is only supported for 32-bit targets.\n", false);
+ if (HasSPE && (HasAltivec || HasQPX || HasVSX || HasFPU))
Index: patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
===================================================================
RCS file: patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
diff -N patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp 10 Mar
2019 21:47:14 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Use Secure PLT as default on NetBSD/PowerPC.
+
+Index: tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+--- tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp.orig
++++ tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+@@ -116,7 +116,7 @@ ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Dr
+ const ArgList &Args) {
+ if (Args.getLastArg(options::OPT_msecure_plt))
+ return ppc::ReadGOTPtrMode::SecurePlt;
+- if (Triple.isOSOpenBSD())
++ if (Triple.isOSNetBSD() || Triple.isOSOpenBSD())
+ return ppc::ReadGOTPtrMode::SecurePlt;
+ else
+ return ppc::ReadGOTPtrMode::Bss;