From 39fcd063da3cb712bc16a0e9adfcfec9c0446b46 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sun, 4 Jul 2010 11:44:00 +0000 Subject: [PATCH] back off devkitPPC to gcc 4.4.4 --- build-devkit.sh | 2 +- dkppc/patches/gcc-4.4.3.patch | 311 ------------------ .../{gcc-4.5.0.patch => gcc-4.4.4.patch} | 51 ++- 3 files changed, 23 insertions(+), 341 deletions(-) delete mode 100644 dkppc/patches/gcc-4.4.3.patch rename dkppc/patches/{gcc-4.5.0.patch => gcc-4.4.4.patch} (85%) diff --git a/build-devkit.sh b/build-devkit.sh index 5284216..c6df838 100644 --- a/build-devkit.sh +++ b/build-devkit.sh @@ -110,7 +110,7 @@ case "$VERSION" in toolchain=DEVKITARM ;; "2" ) - GCC_VER=4.5.0 + GCC_VER=4.4.4 BINUTILS_VER=2.20.1 NEWLIB_VER=1.18.0 GDB_VER=7.1 diff --git a/dkppc/patches/gcc-4.4.3.patch b/dkppc/patches/gcc-4.4.3.patch deleted file mode 100644 index 91b7959..0000000 --- a/dkppc/patches/gcc-4.4.3.patch +++ /dev/null @@ -1,311 +0,0 @@ -diff -Nbaur gcc-4.4.2/gcc/config/rs6000/rs6000.h gcc-4.4.2-ppc/gcc/config/rs6000/rs6000.h ---- gcc-4.4.2/gcc/config/rs6000/rs6000.h 2009-04-10 00:23:07.000000000 +0100 -+++ gcc-4.4.2-ppc/gcc/config/rs6000/rs6000.h 2009-10-20 09:10:22.000000000 +0100 -@@ -180,12 +180,12 @@ - the condition in driver-rs6000.c. */ - #if defined(__powerpc__) || defined(__POWERPC__) || defined(_AIX) - /* In driver-rs6000.c. */ --extern const char *host_detect_local_cpu (int argc, const char **argv); -+/*extern const char *host_detect_local_cpu (int argc, const char **argv); - #define EXTRA_SPEC_FUNCTIONS \ - { "local_cpu_detect", host_detect_local_cpu }, - #define HAVE_LOCAL_CPU_DETECT -+*/ - #endif -- - #ifndef CC1_CPU_SPEC - #ifdef HAVE_LOCAL_CPU_DETECT - #define CC1_CPU_SPEC \ -diff -Nbaur gcc-4.4.2/gcc/config/rs6000/sysv4.h gcc-4.4.2-ppc/gcc/config/rs6000/sysv4.h ---- gcc-4.4.2/gcc/config/rs6000/sysv4.h 2009-04-10 00:23:07.000000000 +0100 -+++ gcc-4.4.2-ppc/gcc/config/rs6000/sysv4.h 2009-10-20 09:10:22.000000000 +0100 -@@ -664,7 +664,11 @@ - - /* Default starting address if specified. */ - #define LINK_START_SPEC "\ --%{mads : %(link_start_ads) ; \ -+%{mgcn|mogc : %(link_start_ogc) ; \ -+ mvgc : %(link_start_vgc) ; \ -+ mgcbios : %(link_start_gcb) ; \ -+ mrvl : %(link_start_rvl) ; \ -+ mads : %(link_start_ads) ; \ - myellowknife : %(link_start_yellowknife) ; \ - mmvme : %(link_start_mvme) ; \ - msim : %(link_start_sim) ; \ -@@ -721,7 +725,8 @@ - - /* Any specific OS flags. */ - #define LINK_OS_SPEC "\ --%{mads : %(link_os_ads) ; \ -+%{mgcn|mogc|mvgc|mgcbios|mrvl : %(link_os_ogc) ; \ -+ mads : %(link_os_ads) ; \ - myellowknife : %(link_os_yellowknife) ; \ - mmvme : %(link_os_mvme) ; \ - msim : %(link_os_sim) ; \ -@@ -740,7 +745,10 @@ - /* Override rs6000.h definition. */ - #undef CPP_SPEC - #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} \ --%{mads : %(cpp_os_ads) ; \ -+%{mgcn : %(cpp_os_gcn) ; \ -+ mogc|mvgc|mgcbios : %(cpp_os_ogc) ; \ -+ mrvl : %(cpp_os_rvl) ; \ -+ mads : %(cpp_os_ads) ; \ - myellowknife : %(cpp_os_yellowknife) ; \ - mmvme : %(cpp_os_mvme) ; \ - msim : %(cpp_os_sim) ; \ -@@ -756,7 +764,10 @@ - /* Override svr4.h definition. */ - #undef STARTFILE_SPEC - #define STARTFILE_SPEC "\ --%{mads : %(startfile_ads) ; \ -+%{mgcn : %(startfile_gcn) ; \ -+ mogc|mvgc|mgcbios : %(startfile_ogc) ; \ -+ mrvl : %(startfile_ogc) ; \ -+ mads : %(startfile_ads) ; \ - myellowknife : %(startfile_yellowknife) ; \ - mmvme : %(startfile_mvme) ; \ - msim : %(startfile_sim) ; \ -@@ -772,7 +783,8 @@ - /* Override svr4.h definition. */ - #undef LIB_SPEC - #define LIB_SPEC "\ --%{mads : %(lib_ads) ; \ -+%{mgcn|mogc|mvgc|mgcbios|mrvl : %(lib_ogc) ; \ -+ mads : %(lib_ads) ; \ - myellowknife : %(lib_yellowknife) ; \ - mmvme : %(lib_mvme) ; \ - msim : %(lib_sim) ; \ -@@ -783,12 +795,13 @@ - 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) ; \ -+%{mgcn|mogc|mvgc|mgcbios|mrvl : %(endfile_ogc) ; \ -+ mads : %(endfile_ads) ; \ - myellowknife : %(endfile_yellowknife) ; \ - mmvme : %(endfile_mvme) ; \ - msim : %(endfile_sim) ; \ -@@ -805,16 +818,27 @@ - - /* Motorola ADS support. */ - #define LIB_ADS_SPEC "--start-group -lads -lc --end-group" -+#define LIB_OGC_SPEC "--start-group -lsysbase -lc --end-group" - - #define STARTFILE_ADS_SPEC "ecrti.o%s crt0.o%s crtbegin.o%s" -+#define STARTFILE_OGC_SPEC "ecrti.o%s crtbegin.o%s crtmain.o%s" - - #define ENDFILE_ADS_SPEC "crtend.o%s ecrtn.o%s" -+#define ENDFILE_OGC_SPEC "crtend.o%s ecrtn.o%s" - - #define LINK_START_ADS_SPEC "-T ads.ld%s" -+#define LINK_START_OGC_SPEC "-T ogc.ld%s" -+#define LINK_START_RVL_SPEC "-T rvl.ld%s" -+#define LINK_START_VGC_SPEC "-T vgcogc.ld%s" -+#define LINK_START_GCB_SPEC "-T gcbogc.ld%s" - - #define LINK_OS_ADS_SPEC "" -+#define LINK_OS_OGC_SPEC "--gc-sections" - - #define CPP_OS_ADS_SPEC "" -+#define CPP_OS_GCN_SPEC "-D__gamecube__ -ffunction-sections -fdata-sections" -+#define CPP_OS_OGC_SPEC "-D__gamecube__ -DHW_DOL -ffunction-sections -fdata-sections" -+#define CPP_OS_RVL_SPEC "-D__wii__ -DHW_RVL -ffunction-sections -fdata-sections" - - /* Motorola Yellowknife support. */ - #define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group" -@@ -1007,6 +1031,7 @@ - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ - { "crtsavres_default", CRTSAVRES_DEFAULT_SPEC }, \ -+ { "lib_ogc", LIB_OGC_SPEC }, \ - { "lib_ads", LIB_ADS_SPEC }, \ - { "lib_yellowknife", LIB_YELLOWKNIFE_SPEC }, \ - { "lib_mvme", LIB_MVME_SPEC }, \ -@@ -1017,6 +1042,7 @@ - { "lib_netbsd", LIB_NETBSD_SPEC }, \ - { "lib_openbsd", LIB_OPENBSD_SPEC }, \ - { "lib_default", LIB_DEFAULT_SPEC }, \ -+ { "startfile_ogc", STARTFILE_OGC_SPEC }, \ - { "startfile_ads", STARTFILE_ADS_SPEC }, \ - { "startfile_yellowknife", STARTFILE_YELLOWKNIFE_SPEC }, \ - { "startfile_mvme", STARTFILE_MVME_SPEC }, \ -@@ -1027,6 +1053,7 @@ - { "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \ - { "startfile_openbsd", STARTFILE_OPENBSD_SPEC }, \ - { "startfile_default", STARTFILE_DEFAULT_SPEC }, \ -+ { "endfile_ogc", ENDFILE_OGC_SPEC }, \ - { "endfile_ads", ENDFILE_ADS_SPEC }, \ - { "endfile_yellowknife", ENDFILE_YELLOWKNIFE_SPEC }, \ - { "endfile_mvme", ENDFILE_MVME_SPEC }, \ -@@ -1041,7 +1068,11 @@ - { "link_shlib", LINK_SHLIB_SPEC }, \ - { "link_target", LINK_TARGET_SPEC }, \ - { "link_start", LINK_START_SPEC }, \ -+ { "link_start_vgc", LINK_START_VGC_SPEC }, \ -+ { "link_start_gcb", LINK_START_GCB_SPEC }, \ -+ { "link_start_rvl", LINK_START_RVL_SPEC }, \ - { "link_start_ads", LINK_START_ADS_SPEC }, \ -+ { "link_start_ogc", LINK_START_OGC_SPEC }, \ - { "link_start_yellowknife", LINK_START_YELLOWKNIFE_SPEC }, \ - { "link_start_mvme", LINK_START_MVME_SPEC }, \ - { "link_start_sim", LINK_START_SIM_SPEC }, \ -@@ -1052,6 +1083,7 @@ - { "link_start_openbsd", LINK_START_OPENBSD_SPEC }, \ - { "link_start_default", LINK_START_DEFAULT_SPEC }, \ - { "link_os", LINK_OS_SPEC }, \ -+ { "link_os_ogc", LINK_OS_OGC_SPEC }, \ - { "link_os_ads", LINK_OS_ADS_SPEC }, \ - { "link_os_yellowknife", LINK_OS_YELLOWKNIFE_SPEC }, \ - { "link_os_mvme", LINK_OS_MVME_SPEC }, \ -@@ -1066,6 +1098,9 @@ - { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \ - { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \ - { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \ -+ { "cpp_os_gcn", CPP_OS_GCN_SPEC }, \ -+ { "cpp_os_ogc", CPP_OS_OGC_SPEC }, \ -+ { "cpp_os_rvl", CPP_OS_RVL_SPEC }, \ - { "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.4.2/gcc/config/rs6000/sysv4.opt gcc-4.4.2-ppc/gcc/config/rs6000/sysv4.opt ---- gcc-4.4.2/gcc/config/rs6000/sysv4.opt 2009-02-20 15:20:38.000000000 +0000 -+++ gcc-4.4.2-ppc/gcc/config/rs6000/sysv4.opt 2009-10-20 09:10:22.000000000 +0100 -@@ -107,6 +107,26 @@ - Target RejectNegative - Link with libads.a, libc.a and crt0.o - -+mgcn -+Target RejectNegative -+Link with libsysbase.a and libc.a, use ogc linker script -+ -+mogc -+Target RejectNegative -+Link with libsysbase.a and libc.a, use ogc linker script -+ -+mgcbios -+Target RejectNegative -+Link with libsysbase.a and libc.a, use gcbogc linker script -+ -+mvgc -+Target RejectNegative -+Link with libsysbase.a and libc.a, use gcbogc linker script -+ -+mrvl -+Target RejectNegative -+Link with libsysbase.a and libc.a, use rvl linker script -+ - myellowknife - Target RejectNegative - Link with libyk.a, libc.a and crt0.o -diff -Nbaur gcc-4.4.2/gcc/gcc.c gcc-4.4.2-ppc/gcc/gcc.c ---- gcc-4.4.2/gcc/gcc.c 2009-03-17 21:25:59.000000000 +0000 -+++ gcc-4.4.2-ppc/gcc/gcc.c 2009-10-20 09:10:23.000000000 +0100 -@@ -698,7 +698,7 @@ - -lgcc and -lc order specially, yet not require them to override all - of LINK_COMMAND_SPEC. */ - #ifndef LINK_GCC_C_SEQUENCE_SPEC --#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" -+#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G -lm" - #endif - - #ifndef LINK_SSP_SPEC -@@ -3455,8 +3455,6 @@ - gcc_libexec_prefix = make_relative_prefix (argv[0], - standard_bindir_prefix, - standard_libexec_prefix); -- if (gcc_exec_prefix) -- xputenv (concat ("GCC_EXEC_PREFIX=", gcc_exec_prefix, NULL)); - } - else - { -@@ -6361,10 +6359,18 @@ - - /* We need to check standard_exec_prefix/just_machine_suffix/specs - for any override of as, ld and libraries. */ -- specs_file = (char *) alloca (strlen (standard_exec_prefix) -+ if ( gcc_exec_prefix ) -+ { -+ specs_file = alloca (strlen (gcc_exec_prefix) - + strlen (just_machine_suffix) + sizeof ("specs")); - -+ strcpy (specs_file, gcc_exec_prefix); -+ } else { -+ -+ specs_file = (char *) alloca (strlen (standard_exec_prefix) -+ + strlen (just_machine_suffix) + sizeof ("specs")); - strcpy (specs_file, standard_exec_prefix); -+ } - strcat (specs_file, just_machine_suffix); - strcat (specs_file, "specs"); - if (access (specs_file, R_OK) == 0) -diff -Nbaur gcc-4.4.2/gcc/prefix.c gcc-4.4.2-ppc/gcc/prefix.c ---- gcc-4.4.2/gcc/prefix.c 2007-09-03 18:09:20.000000000 +0100 -+++ gcc-4.4.2-ppc/gcc/prefix.c 2009-10-20 09:10:23.000000000 +0100 -@@ -245,13 +245,16 @@ - The returned string is always malloc-ed, and the caller is - responsible for freeing it. */ - -+ -+static const char *old_prefix = PREFIX; -+ - char * - update_path (const char *path, const char *key) - { - char *result, *p; -- const int len = strlen (std_prefix); -+ const int len = strlen (old_prefix); - -- if (! strncmp (path, std_prefix, len) -+ if (! strncmp (path, old_prefix, len) - && (IS_DIR_SEPARATOR(path[len]) - || path[len] == '\0') - && key != 0) -@@ -353,4 +356,6 @@ - set_std_prefix (const char *prefix, int len) - { - std_prefix = save_string (prefix, len); -+ -+ putenv (concat ("GCC_EXEC_PREFIX=", std_prefix, NULL)); - } -diff -Nbaur gcc-4.4.2/gcc/toplev.c gcc-4.4.2-ppc/gcc/toplev.c ---- gcc-4.4.2/gcc/toplev.c 2009-04-29 05:57:17.000000000 +0100 -+++ gcc-4.4.2-ppc/gcc/toplev.c 2009-10-20 09:10:23.000000000 +0100 -@@ -84,6 +84,7 @@ - #include "tree-mudflap.h" - #include "tree-pass.h" - #include "gimple.h" -+#include "prefix.h" - - #if defined (DWARF2_UNWIND_INFO) || defined (DWARF2_DEBUGGING_INFO) - #include "dwarf2out.h" -@@ -1557,6 +1558,10 @@ - - xmalloc_set_program_name (progname); - -+ p = getenv("GCC_EXEC_PREFIX"); -+ if (p && strlen(p)) set_std_prefix (p, strlen(p)); -+ -+ - hex_init (); - - /* Unlock the stdio streams. */ -diff -Nbaur gcc-4.4.2/libcpp/Makefile.in gcc-4.4.2-ppc/libcpp/Makefile.in ---- gcc-4.4.2/libcpp/Makefile.in 2009-10-15 08:55:16.000000000 +0100 -+++ gcc-4.4.2-ppc/libcpp/Makefile.in 2009-10-20 09:10:23.000000000 +0100 -@@ -201,8 +201,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 - # not atomically write the dependency output file. --COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo --POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+COMPILE = $(COMPILE.base) -o $@ - else - COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ - $(depcomp) $(COMPILE.base) diff --git a/dkppc/patches/gcc-4.5.0.patch b/dkppc/patches/gcc-4.4.4.patch similarity index 85% rename from dkppc/patches/gcc-4.5.0.patch rename to dkppc/patches/gcc-4.4.4.patch index 8b7114d..3c4211e 100644 --- a/dkppc/patches/gcc-4.5.0.patch +++ b/dkppc/patches/gcc-4.4.4.patch @@ -1,32 +1,25 @@ -diff -Nbaur gcc-4.5.0/gcc/config/rs6000/rs6000.h gcc-4.5.0-ppc/gcc/config/rs6000/rs6000.h ---- gcc-4.5.0/gcc/config/rs6000/rs6000.h 2009-12-07 15:34:21.000000000 +0000 -+++ gcc-4.5.0-ppc/gcc/config/rs6000/rs6000.h 2010-06-06 23:36:14.000000000 +0100 -@@ -193,17 +193,17 @@ +diff -Nbaur gcc-4.4.4/gcc/config/rs6000/rs6000.h gcc-4.4.4-ppc/gcc/config/rs6000/rs6000.h +--- gcc-4.4.4/gcc/config/rs6000/rs6000.h 2009-04-10 00:23:07.000000000 +0100 ++++ gcc-4.4.4-ppc/gcc/config/rs6000/rs6000.h 2010-07-01 01:34:08.000000000 +0100 +@@ -175,6 +175,7 @@ + { "asm_cpu_power7", ASM_CPU_POWER7_SPEC }, \ + SUBTARGET_EXTRA_SPECS + ++#if 0 /* -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. */ --#if defined(__powerpc__) || defined(__POWERPC__) || defined(_AIX) -+//#if defined(__powerpc__) || defined(__POWERPC__) || defined(_AIX) - /* In driver-rs6000.c. */ --extern const char *host_detect_local_cpu (int argc, const char **argv); -+/*extern const char *host_detect_local_cpu (int argc, const char **argv); - #define EXTRA_SPEC_FUNCTIONS \ +@@ -185,6 +186,7 @@ { "local_cpu_detect", host_detect_local_cpu }, #define HAVE_LOCAL_CPU_DETECT - #define ASM_CPU_NATIVE_SPEC "%:local_cpu_detect(asm)" -- --#else -+*/ -+//#else - #define ASM_CPU_NATIVE_SPEC "%(asm_default)" --#endif -+//#endif + #endif ++#endif #ifndef CC1_CPU_SPEC #ifdef HAVE_LOCAL_CPU_DETECT -diff -Nbaur gcc-4.5.0/gcc/config/rs6000/sysv4.h gcc-4.5.0-ppc/gcc/config/rs6000/sysv4.h ---- gcc-4.5.0/gcc/config/rs6000/sysv4.h 2009-11-25 20:23:20.000000000 +0000 -+++ gcc-4.5.0-ppc/gcc/config/rs6000/sysv4.h 2010-06-06 22:26:44.000000000 +0100 +diff -Nbaur gcc-4.4.4/gcc/config/rs6000/sysv4.h gcc-4.4.4-ppc/gcc/config/rs6000/sysv4.h +--- gcc-4.4.4/gcc/config/rs6000/sysv4.h 2009-04-10 00:23:07.000000000 +0100 ++++ gcc-4.4.4-ppc/gcc/config/rs6000/sysv4.h 2010-07-01 01:30:17.000000000 +0100 @@ -664,7 +664,11 @@ /* Default starting address if specified. */ @@ -182,10 +175,10 @@ diff -Nbaur gcc-4.5.0/gcc/config/rs6000/sysv4.h gcc-4.5.0-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.0/gcc/config/rs6000/sysv4.opt gcc-4.5.0-ppc/gcc/config/rs6000/sysv4.opt ---- gcc-4.5.0/gcc/config/rs6000/sysv4.opt 2009-11-25 20:23:20.000000000 +0000 -+++ gcc-4.5.0-ppc/gcc/config/rs6000/sysv4.opt 2010-06-06 22:26:44.000000000 +0100 -@@ -108,6 +108,26 @@ +diff -Nbaur gcc-4.4.4/gcc/config/rs6000/sysv4.opt gcc-4.4.4-ppc/gcc/config/rs6000/sysv4.opt +--- gcc-4.4.4/gcc/config/rs6000/sysv4.opt 2009-02-20 15:20:38.000000000 +0000 ++++ gcc-4.4.4-ppc/gcc/config/rs6000/sysv4.opt 2010-07-01 01:30:17.000000000 +0100 +@@ -107,6 +107,26 @@ Target RejectNegative Link with libads.a, libc.a and crt0.o @@ -212,10 +205,10 @@ diff -Nbaur gcc-4.5.0/gcc/config/rs6000/sysv4.opt gcc-4.5.0-ppc/gcc/config/rs600 myellowknife Target RejectNegative Link with libyk.a, libc.a and crt0.o -diff -Nbaur gcc-4.5.0/libcpp/Makefile.in gcc-4.5.0-ppc/libcpp/Makefile.in ---- gcc-4.5.0/libcpp/Makefile.in 2010-04-14 10:30:07.000000000 +0100 -+++ gcc-4.5.0-ppc/libcpp/Makefile.in 2010-06-06 22:26:44.000000000 +0100 -@@ -212,8 +212,7 @@ +diff -Nbaur gcc-4.4.4/libcpp/Makefile.in gcc-4.4.4-ppc/libcpp/Makefile.in +--- gcc-4.4.4/libcpp/Makefile.in 2010-04-29 09:26:54.000000000 +0100 ++++ gcc-4.4.4-ppc/libcpp/Makefile.in 2010-07-01 01:30:17.000000000 +0100 +@@ -201,8 +201,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 # not atomically write the dependency output file.