mirror of
https://github.com/devkitPro/buildscripts.git
synced 2026-04-18 00:21:01 -05:00
283 lines
11 KiB
Diff
283 lines
11 KiB
Diff
diff -Nbaur gcc-4.8.2/gcc/config/rs6000/rs6000.h gcc-4.8.2-ppc/gcc/config/rs6000/rs6000.h
|
|
--- gcc-4.8.2/gcc/config/rs6000/rs6000.h 2013-06-19 02:18:38.000000000 +0100
|
|
+++ gcc-4.8.2-ppc/gcc/config/rs6000/rs6000.h 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -195,6 +195,7 @@
|
|
{ "asm_cpu_476", ASM_CPU_476_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. */
|
|
@@ -209,6 +210,8 @@
|
|
#else
|
|
#define ASM_CPU_NATIVE_SPEC "%(asm_default)"
|
|
#endif
|
|
+#endif
|
|
+#define ASM_CPU_NATIVE_SPEC "%(asm_default)"
|
|
|
|
#ifndef CC1_CPU_SPEC
|
|
#ifdef HAVE_LOCAL_CPU_DETECT
|
|
diff -Nbaur gcc-4.8.2/gcc/config/rs6000/sysv4.h gcc-4.8.2-ppc/gcc/config/rs6000/sysv4.h
|
|
--- gcc-4.8.2/gcc/config/rs6000/sysv4.h 2013-06-19 02:18:38.000000000 +0100
|
|
+++ gcc-4.8.2-ppc/gcc/config/rs6000/sysv4.h 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -570,7 +570,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) ; \
|
|
@@ -604,7 +608,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) ; \
|
|
@@ -622,7 +627,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) ; \
|
|
@@ -636,7 +644,10 @@
|
|
|
|
#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) ; \
|
|
@@ -646,11 +657,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"
|
|
|
|
#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) ; \
|
|
@@ -660,11 +672,12 @@
|
|
mcall-openbsd: %(lib_openbsd) ; \
|
|
: %(lib_default) }"
|
|
|
|
-#define LIB_DEFAULT_SPEC "-lc"
|
|
+#define LIB_DEFAULT_SPEC "--start-group -lsysbase -lc --end-group"
|
|
|
|
#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) ; \
|
|
@@ -680,16 +693,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"
|
|
@@ -859,6 +883,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 }, \
|
|
@@ -868,6 +893,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 }, \
|
|
@@ -877,6 +903,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 }, \
|
|
@@ -889,7 +916,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 }, \
|
|
@@ -899,6 +930,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 }, \
|
|
@@ -912,6 +944,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.8.2/gcc/config/rs6000/sysv4.opt gcc-4.8.2-ppc/gcc/config/rs6000/sysv4.opt
|
|
--- gcc-4.8.2/gcc/config/rs6000/sysv4.opt 2013-01-10 20:38:27.000000000 +0000
|
|
+++ gcc-4.8.2-ppc/gcc/config/rs6000/sysv4.opt 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -120,6 +120,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.8.2/gcc/config.gcc gcc-4.8.2-ppc/gcc/config.gcc
|
|
--- gcc-4.8.2/gcc/config.gcc 2013-10-03 01:47:24.000000000 +0100
|
|
+++ gcc-4.8.2-ppc/gcc/config.gcc 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -2057,7 +2057,7 @@
|
|
use_gcc_stdint=wrap
|
|
;;
|
|
powerpc-*-eabi*)
|
|
- 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-ppcgas rs6000/t-ppccomm"
|
|
use_gcc_stdint=wrap
|
|
diff -Nbaur gcc-4.8.2/libcpp/Makefile.in gcc-4.8.2-ppc/libcpp/Makefile.in
|
|
--- gcc-4.8.2/libcpp/Makefile.in 2013-10-16 08:27:58.000000000 +0100
|
|
+++ gcc-4.8.2-ppc/libcpp/Makefile.in 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -207,8 +207,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 -Nbaur gcc-4.8.2/libgcc/config/rs6000/crtrestvr.S gcc-4.8.2-ppc/libgcc/config/rs6000/crtrestvr.S
|
|
--- gcc-4.8.2/libgcc/config/rs6000/crtrestvr.S 2013-02-04 19:06:20.000000000 +0000
|
|
+++ gcc-4.8.2-ppc/libgcc/config/rs6000/crtrestvr.S 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -24,7 +24,7 @@
|
|
|
|
/* On PowerPC64 Linux, these functions are provided by the linker. */
|
|
#ifndef __powerpc64__
|
|
-
|
|
+#if 0
|
|
#undef __ALTIVEC__
|
|
#define __ALTIVEC__ 1
|
|
#include "ppc-asm.h"
|
|
@@ -85,3 +85,4 @@
|
|
CFI_ENDPROC
|
|
|
|
#endif
|
|
+#endif
|
|
diff -Nbaur gcc-4.8.2/libgcc/config/rs6000/crtsavevr.S gcc-4.8.2-ppc/libgcc/config/rs6000/crtsavevr.S
|
|
--- gcc-4.8.2/libgcc/config/rs6000/crtsavevr.S 2013-02-04 19:06:20.000000000 +0000
|
|
+++ gcc-4.8.2-ppc/libgcc/config/rs6000/crtsavevr.S 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -24,6 +24,7 @@
|
|
|
|
/* On PowerPC64 Linux, these functions are provided by the linker. */
|
|
#ifndef __powerpc64__
|
|
+#if 0
|
|
|
|
#undef __ALTIVEC__
|
|
#define __ALTIVEC__ 1
|
|
@@ -85,3 +86,4 @@
|
|
CFI_ENDPROC
|
|
|
|
#endif
|
|
+#endif
|
|
diff -Nbaur gcc-4.8.2/libgcc/crtstuff.c gcc-4.8.2-ppc/libgcc/crtstuff.c
|
|
--- gcc-4.8.2/libgcc/crtstuff.c 2013-02-04 19:06:20.000000000 +0000
|
|
+++ gcc-4.8.2-ppc/libgcc/crtstuff.c 2014-04-01 14:13:11.000000000 +0100
|
|
@@ -47,7 +47,7 @@
|
|
|
|
/* Target machine header files require this define. */
|
|
#define IN_LIBGCC2
|
|
-
|
|
+#define USED_FOR_TARGET
|
|
/* FIXME: Including auto-host is incorrect, but until we have
|
|
identified the set of defines that need to go into auto-target.h,
|
|
this will have to do. */
|