From fa98c15d7fc1f4e7d9dba0f56f832e30d79ac1dc Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sun, 3 Jul 2011 20:43:40 +0000 Subject: [PATCH] adjustments for gcc 4.6.1/dkppc r24 --- .../{gcc-4.5.2.patch => gcc-4.6.1.patch} | 95 +++++++------------ dkppc/scripts/build-gcc.sh | 6 +- 2 files changed, 38 insertions(+), 63 deletions(-) rename dkppc/patches/{gcc-4.5.2.patch => gcc-4.6.1.patch} (74%) diff --git a/dkppc/patches/gcc-4.5.2.patch b/dkppc/patches/gcc-4.6.1.patch similarity index 74% rename from dkppc/patches/gcc-4.5.2.patch rename to dkppc/patches/gcc-4.6.1.patch index 57d1f0a..0841f32 100644 --- a/dkppc/patches/gcc-4.5.2.patch +++ b/dkppc/patches/gcc-4.6.1.patch @@ -1,7 +1,7 @@ -diff -Nbaur gcc-4.5.2/gcc/config/rs6000/rs6000.h gcc-4.5.2-ppc/gcc/config/rs6000/rs6000.h ---- gcc-4.5.2/gcc/config/rs6000/rs6000.h 2009-12-07 15:34:21.000000000 +0000 -+++ gcc-4.5.2-ppc/gcc/config/rs6000/rs6000.h 2011-02-05 20:20:21.000000000 +0000 -@@ -190,6 +190,7 @@ +diff -Nbaur gcc-4.6.0/gcc/config/rs6000/rs6000.h gcc-4.6.0-ppc/gcc/config/rs6000/rs6000.h +--- gcc-4.6.0/gcc/config/rs6000/rs6000.h 2011-03-07 19:27:09.000000000 +0000 ++++ gcc-4.6.0-ppc/gcc/config/rs6000/rs6000.h 2011-04-14 04:02:56.000000000 +0100 +@@ -200,6 +200,7 @@ { "asm_cpu_476", ASM_CPU_476_SPEC }, \ SUBTARGET_EXTRA_SPECS @@ -9,7 +9,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/rs6000.h gcc-4.5.2-ppc/gcc/config/rs6000 /* -mcpu=native handling only makes sense with compiler running on an PowerPC chip. If changing this condition, also change the condition in driver-rs6000.c. */ -@@ -204,6 +205,8 @@ +@@ -214,6 +215,8 @@ #else #define ASM_CPU_NATIVE_SPEC "%(asm_default)" #endif @@ -18,10 +18,10 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/rs6000.h gcc-4.5.2-ppc/gcc/config/rs6000 #ifndef CC1_CPU_SPEC #ifdef HAVE_LOCAL_CPU_DETECT -diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/sysv4.h ---- gcc-4.5.2/gcc/config/rs6000/sysv4.h 2010-11-03 13:55:26.000000000 +0000 -+++ gcc-4.5.2-ppc/gcc/config/rs6000/sysv4.h 2011-02-08 13:18:04.000000000 +0000 -@@ -662,7 +662,11 @@ +diff -Nbaur gcc-4.6.0/gcc/config/rs6000/sysv4.h gcc-4.6.0-ppc/gcc/config/rs6000/sysv4.h +--- gcc-4.6.0/gcc/config/rs6000/sysv4.h 2011-03-07 07:50:23.000000000 +0000 ++++ gcc-4.6.0-ppc/gcc/config/rs6000/sysv4.h 2011-04-14 04:12:48.000000000 +0100 +@@ -603,7 +603,11 @@ /* Default starting address if specified. */ #define LINK_START_SPEC "\ @@ -34,7 +34,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ myellowknife : %(link_start_yellowknife) ; \ mmvme : %(link_start_mvme) ; \ msim : %(link_start_sim) ; \ -@@ -719,7 +723,8 @@ +@@ -641,7 +645,8 @@ /* Any specific OS flags. */ #define LINK_OS_SPEC "\ @@ -44,7 +44,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ myellowknife : %(link_os_yellowknife) ; \ mmvme : %(link_os_mvme) ; \ msim : %(link_os_sim) ; \ -@@ -738,7 +743,10 @@ +@@ -660,7 +665,10 @@ /* Override rs6000.h definition. */ #undef CPP_SPEC #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} \ @@ -56,8 +56,8 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ myellowknife : %(cpp_os_yellowknife) ; \ mmvme : %(cpp_os_mvme) ; \ msim : %(cpp_os_sim) ; \ -@@ -754,7 +762,10 @@ - /* Override svr4.h definition. */ +@@ -675,7 +683,10 @@ + #undef STARTFILE_SPEC #define STARTFILE_SPEC "\ -%{mads : %(startfile_ads) ; \ @@ -68,14 +68,13 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ myellowknife : %(startfile_yellowknife) ; \ mmvme : %(startfile_mvme) ; \ msim : %(startfile_sim) ; \ -@@ -765,12 +776,13 @@ +@@ -686,11 +697,12 @@ mcall-openbsd: %(startfile_openbsd) ; \ : %(startfile_default) }" -#define STARTFILE_DEFAULT_SPEC "ecrti.o%s crtbegin.o%s" +#define STARTFILE_DEFAULT_SPEC "crt0.o%s ecrti.o%s crtbegin.o%s" - /* Override svr4.h definition. */ #undef LIB_SPEC #define LIB_SPEC "\ -%{mads : %(lib_ads) ; \ @@ -84,14 +83,13 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ myellowknife : %(lib_yellowknife) ; \ mmvme : %(lib_mvme) ; \ msim : %(lib_sim) ; \ -@@ -781,12 +793,13 @@ +@@ -701,11 +713,12 @@ mcall-openbsd: %(lib_openbsd) ; \ : %(lib_default) }" -#define LIB_DEFAULT_SPEC "-lc" +#define LIB_DEFAULT_SPEC "--start-group -lsysbase -lc --end-group" - /* Override svr4.h definition. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC "\ -%{mads : %(endfile_ads) ; \ @@ -100,7 +98,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ myellowknife : %(endfile_yellowknife) ; \ mmvme : %(endfile_mvme) ; \ msim : %(endfile_sim) ; \ -@@ -803,16 +816,27 @@ +@@ -722,16 +735,27 @@ /* Motorola ADS support. */ #define LIB_ADS_SPEC "--start-group -lads -lc --end-group" @@ -128,7 +126,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ /* Motorola Yellowknife support. */ #define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group" -@@ -1005,6 +1029,7 @@ +@@ -926,6 +950,7 @@ #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ { "crtsavres_default", CRTSAVRES_DEFAULT_SPEC }, \ @@ -136,7 +134,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ { "lib_ads", LIB_ADS_SPEC }, \ { "lib_yellowknife", LIB_YELLOWKNIFE_SPEC }, \ { "lib_mvme", LIB_MVME_SPEC }, \ -@@ -1015,6 +1040,7 @@ +@@ -936,6 +961,7 @@ { "lib_netbsd", LIB_NETBSD_SPEC }, \ { "lib_openbsd", LIB_OPENBSD_SPEC }, \ { "lib_default", LIB_DEFAULT_SPEC }, \ @@ -144,7 +142,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ { "startfile_ads", STARTFILE_ADS_SPEC }, \ { "startfile_yellowknife", STARTFILE_YELLOWKNIFE_SPEC }, \ { "startfile_mvme", STARTFILE_MVME_SPEC }, \ -@@ -1025,6 +1051,7 @@ +@@ -946,6 +972,7 @@ { "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \ { "startfile_openbsd", STARTFILE_OPENBSD_SPEC }, \ { "startfile_default", STARTFILE_DEFAULT_SPEC }, \ @@ -152,7 +150,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ { "endfile_ads", ENDFILE_ADS_SPEC }, \ { "endfile_yellowknife", ENDFILE_YELLOWKNIFE_SPEC }, \ { "endfile_mvme", ENDFILE_MVME_SPEC }, \ -@@ -1039,7 +1066,11 @@ +@@ -959,7 +986,11 @@ { "link_shlib", LINK_SHLIB_SPEC }, \ { "link_target", LINK_TARGET_SPEC }, \ { "link_start", LINK_START_SPEC }, \ @@ -164,7 +162,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ { "link_start_yellowknife", LINK_START_YELLOWKNIFE_SPEC }, \ { "link_start_mvme", LINK_START_MVME_SPEC }, \ { "link_start_sim", LINK_START_SIM_SPEC }, \ -@@ -1050,6 +1081,7 @@ +@@ -970,6 +1001,7 @@ { "link_start_openbsd", LINK_START_OPENBSD_SPEC }, \ { "link_start_default", LINK_START_DEFAULT_SPEC }, \ { "link_os", LINK_OS_SPEC }, \ @@ -172,7 +170,7 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ { "link_os_ads", LINK_OS_ADS_SPEC }, \ { "link_os_yellowknife", LINK_OS_YELLOWKNIFE_SPEC }, \ { "link_os_mvme", LINK_OS_MVME_SPEC }, \ -@@ -1064,6 +1096,9 @@ +@@ -984,6 +1016,9 @@ { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \ { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \ @@ -182,9 +180,9 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.h gcc-4.5.2-ppc/gcc/config/rs6000/ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \ { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \ { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \ -diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.opt gcc-4.5.2-ppc/gcc/config/rs6000/sysv4.opt ---- gcc-4.5.2/gcc/config/rs6000/sysv4.opt 2009-11-25 20:23:20.000000000 +0000 -+++ gcc-4.5.2-ppc/gcc/config/rs6000/sysv4.opt 2011-02-05 20:20:21.000000000 +0000 +diff -Nbaur gcc-4.6.0/gcc/config/rs6000/sysv4.opt gcc-4.6.0-ppc/gcc/config/rs6000/sysv4.opt +--- gcc-4.6.0/gcc/config/rs6000/sysv4.opt 2011-01-03 20:52:22.000000000 +0000 ++++ gcc-4.6.0-ppc/gcc/config/rs6000/sysv4.opt 2011-04-14 04:02:56.000000000 +0100 @@ -108,6 +108,26 @@ Target RejectNegative Link with libads.a, libc.a and crt0.o @@ -212,21 +210,21 @@ diff -Nbaur gcc-4.5.2/gcc/config/rs6000/sysv4.opt gcc-4.5.2-ppc/gcc/config/rs600 myellowknife Target RejectNegative Link with libyk.a, libc.a and crt0.o -diff -Nbaur gcc-4.5.2/gcc/config.gcc gcc-4.5.2-ppc/gcc/config.gcc ---- gcc-4.5.2/gcc/config.gcc 2010-10-09 10:35:53.000000000 +0100 -+++ gcc-4.5.2-ppc/gcc/config.gcc 2011-02-05 20:20:21.000000000 +0000 -@@ -1989,7 +1989,7 @@ +diff -Nbaur gcc-4.6.0/gcc/config.gcc gcc-4.6.0-ppc/gcc/config.gcc +--- gcc-4.6.0/gcc/config.gcc 2011-03-14 06:05:29.000000000 +0000 ++++ gcc-4.6.0-ppc/gcc/config.gcc 2011-04-14 04:08:25.000000000 +0100 +@@ -2119,7 +2119,7 @@ use_gcc_stdint=wrap ;; powerpc-*-eabi*) -- tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h" -+ tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/750cl.h" +- tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h" ++ tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/750cl.h" extra_options="${extra_options} rs6000/sysv4.opt" tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap -diff -Nbaur gcc-4.5.2/libcpp/Makefile.in gcc-4.5.2-ppc/libcpp/Makefile.in ---- gcc-4.5.2/libcpp/Makefile.in 2010-12-16 12:49:03.000000000 +0000 -+++ gcc-4.5.2-ppc/libcpp/Makefile.in 2011-02-05 20:20:21.000000000 +0000 +diff -Nbaur gcc-4.6.0/libcpp/Makefile.in gcc-4.6.0-ppc/libcpp/Makefile.in +--- gcc-4.6.0/libcpp/Makefile.in 2011-03-25 17:07:00.000000000 +0000 ++++ gcc-4.6.0-ppc/libcpp/Makefile.in 2011-04-14 04:02:56.000000000 +0100 @@ -212,8 +212,7 @@ # Note that we put the dependencies into a .Tpo file, then move them # into place if the compile succeeds. We need this because gcc does @@ -237,28 +235,3 @@ diff -Nbaur gcc-4.5.2/libcpp/Makefile.in gcc-4.5.2-ppc/libcpp/Makefile.in else COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ $(depcomp) $(COMPILE.base) -diff -Nbaur gcc-4.5.2/libgcc/config/rs6000/t-ppccomm gcc-4.5.2-ppc/libgcc/config/rs6000/t-ppccomm ---- gcc-4.5.2/libgcc/config/rs6000/t-ppccomm 2008-06-26 15:15:49.000000000 +0100 -+++ gcc-4.5.2-ppc/libgcc/config/rs6000/t-ppccomm 2011-02-05 20:20:21.000000000 +0000 -@@ -15,7 +15,9 @@ - e500crtsavg64gpr.S \ - e500crtsavg64gprctr.S - --EXTRA_PARTS += ecrti$(objext) ecrtn$(objext) ncrti$(objext) ncrtn$(objext) -+EXTRA_PARTS += crtbegin$(objext) crtend$(objext) \ -+ crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext) \ -+ ecrti$(objext) ecrtn$(objext) ncrti$(objext) ncrtn$(objext) - - # We build {e,n}crti.o and {e,n}crtn.o, which serve to add begin and - # end labels to all of the special sections used when we link using gcc. -diff -Nbaur gcc-4.5.2/libgcc/config.host gcc-4.5.2-ppc/libgcc/config.host ---- gcc-4.5.2/libgcc/config.host 2010-09-12 04:27:09.000000000 +0100 -+++ gcc-4.5.2-ppc/libgcc/config.host 2011-02-05 20:20:21.000000000 +0000 -@@ -466,6 +466,7 @@ - powerpc-*-eabialtivec*) - ;; - powerpc-*-eabi*) -+ tmake_file="${tmake_file} rs6000/t-ppccomm" - ;; - powerpc-*-rtems*) - ;; diff --git a/dkppc/scripts/build-gcc.sh b/dkppc/scripts/build-gcc.sh index 78b3e45..d216fce 100644 --- a/dkppc/scripts/build-gcc.sh +++ b/dkppc/scripts/build-gcc.sh @@ -14,6 +14,8 @@ case $PLATFORM in ;; MINGW32* ) cflags="-D__USE_MINGW_ACCESS" +# horrid hack to get -flto to work on windows + plugin_ld="--with-plugin-ld=ld" ;; esac @@ -97,7 +99,7 @@ then cp -r $BUILDSCRIPTDIR/$NEWLIB_SRCDIR/newlib/libc/include $INSTALLDIR/devkitPPC/$target/sys-include CFLAGS="$cflags" LDFLAGS="$ldflags" CFLAGS_FOR_TARGET="-O2" LDFLAGS_FOR_TARGET="" ../../$GCC_SRCDIR/configure \ --enable-languages=c,c++,objc \ - --enable-lto \ + --enable-lto $plugin_ld\ --with-cpu=750 \ --disable-nls --disable-shared --enable-threads --disable-multilib \ --disable-win32-registry \ @@ -106,7 +108,7 @@ then --with-newlib \ --prefix=$prefix\ --disable-dependency-tracking \ - --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitPPC release 23" \ + --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitPPC release 24" \ 2>&1 | tee gcc_configure.log touch configured-gcc fi