2014-04-23		Magnus Granberg		<zorry@gentoo.org>

		* gcc/config/gnu-user.h			If ENABLE_CRTBEGINP, -static and -pie use crtbegineP.o.
		* gcc/config/rs6000/sysv4.h		If ENABLE_CRTBEGINP, -static and -pie use crtbegineP.o.

--- a/gcc/config/gnu-user.h	2014-01-02 23:23:26.000000000 +0100
+++ b/gcc/config/gnu-user.h	2014-04-23 00:55:06.390265454 +0200
@@ -40,7 +40,15 @@ see the files COPYING3 and COPYING.RUNTI
    provides part of the support for getting C++ file-scope static
    object constructed before entering `main'.  */
 
-#if defined HAVE_LD_PIE
+#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINP)
+#define GNU_USER_TARGET_STARTFILE_SPEC \
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{static:%{pie:crtbeginP.o%s;:crtbeginT.o%s}; \
+   shared|pie:crtbeginS.o%s;:crtbegin.o%s} \
+   %{fvtable-verify=none:%s; \
+     fvtable-verify=preinit:vtv_start_preinit.o%s; \
+     fvtable-verify=std:vtv_start.o%s}"
+#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINP)
 #define GNU_USER_TARGET_STARTFILE_SPEC \
   "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \
--- a/gcc/config/rs6000/sysv4.h	2009-04-10 01:23:07.000000000 +0200
+++ b/gcc/config/rs6000/sysv4.h	2009-09-08 04:41:50.000000000 +0200
@@ -883,7 +883,12 @@
 %{!mnewlib: %{pthread:-lpthread} %{shared:-lc} \
 %{!shared: %{profile:-lc_p} %{!profile:-lc}}}"
 
-#ifdef HAVE_LD_PIE
+#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINP)
+#define STARTFILE_LINUX_SPEC "\
+%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+%{mnewlib:ecrti.o%s;:crti.o%s} \
+%{static:%{pie:crtbeginP.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
+#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINP)
 #define	STARTFILE_LINUX_SPEC "\
 %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
 %{mnewlib:ecrti.o%s;:crti.o%s} \
