summaryrefslogtreecommitdiff
path: root/packages/gcc/gcc-4.3.1
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gcc/gcc-4.3.1')
-rw-r--r--packages/gcc/gcc-4.3.1/800-arm-bigendian.patch55
-rw-r--r--packages/gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch14
-rw-r--r--packages/gcc/gcc-4.3.1/arm-thumb.patch43
-rw-r--r--packages/gcc/gcc-4.3.1/intermask-bigendian.patch24
4 files changed, 22 insertions, 114 deletions
diff --git a/packages/gcc/gcc-4.3.1/800-arm-bigendian.patch b/packages/gcc/gcc-4.3.1/800-arm-bigendian.patch
index 07c6093379..f433942783 100644
--- a/packages/gcc/gcc-4.3.1/800-arm-bigendian.patch
+++ b/packages/gcc/gcc-4.3.1/800-arm-bigendian.patch
@@ -3,37 +3,11 @@ Adds support for arm*b-linux* big-endian ARM targets
See http://gcc.gnu.org/PR16350
---- gcc-4.2.0/gcc/config/arm/linux-elf.h
-+++ gcc-4.2.0/gcc/config/arm/linux-elf.h
-@@ -28,19 +28,33 @@
- #undef TARGET_VERSION
- #define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr);
-
-+/*
-+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
-+ * (big endian) configurations.
-+ */
-+#if TARGET_BIG_ENDIAN_DEFAULT
-+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
-+#define TARGET_ENDIAN_OPTION "mbig-endian"
-+#define TARGET_LINKER_EMULATION "armelfb_linux"
-+#else
-+#define TARGET_ENDIAN_DEFAULT 0
-+#define TARGET_ENDIAN_OPTION "mlittle-endian"
-+#define TARGET_LINKER_EMULATION "armelf_linux"
-+#endif
-+
- #undef TARGET_DEFAULT_FLOAT_ABI
- #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
-
- #undef TARGET_DEFAULT
--#define TARGET_DEFAULT (0)
-+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
-
- #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
-
--#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
-+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
+Index: gcc-4.3.2/gcc/config/arm/linux-elf.h
+===================================================================
+--- gcc-4.3.2.orig/gcc/config/arm/linux-elf.h 2007-11-08 05:44:09.000000000 -0800
++++ gcc-4.3.2/gcc/config/arm/linux-elf.h 2008-08-28 21:08:30.000000000 -0700
+@@ -51,7 +51,7 @@
#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
@@ -42,19 +16,12 @@ See http://gcc.gnu.org/PR16350
/* Now we define the strings used to build the spec file. */
#undef LIB_SPEC
-@@ -61,7 +75,7 @@
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
- -X \
-- %{mbig-endian:-EB}" \
-+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
- SUBTARGET_EXTRA_LINK_SPEC
-
- #undef LINK_SPEC
---- gcc-4.2.0/gcc/config.gcc.orig 2006-09-22 14:53:41.000000000 +0200
-+++ gcc-4.2.0/gcc/config.gcc 2006-09-25 10:45:21.000000000 +0200
-@@ -696,6 +696,11 @@
- tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
+Index: gcc-4.3.2/gcc/config.gcc
+===================================================================
+--- gcc-4.3.2.orig/gcc/config.gcc 2008-08-28 20:57:39.000000000 -0700
++++ gcc-4.3.2/gcc/config.gcc 2008-08-28 21:00:11.000000000 -0700
+@@ -742,6 +742,11 @@
+ esac
tmake_file="${tmake_file} t-linux arm/t-arm"
case ${target} in
+ arm*b-*)
diff --git a/packages/gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch b/packages/gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch
deleted file mode 100644
index 54490fc24f..0000000000
--- a/packages/gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: gcc-4.1.1/gcc/config/arm/linux-eabi.h
-===================================================================
---- gcc-4.1.1.orig/gcc/config/arm/linux-eabi.h 2007-02-20 14:51:33.416193250 +0100
-+++ gcc-4.1.1/gcc/config/arm/linux-eabi.h 2007-02-20 14:52:11.622581000 +0100
-@@ -48,7 +48,8 @@
- #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
-
- #undef SUBTARGET_EXTRA_LINK_SPEC
--#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
-+#define SUBTARGET_EXTRA_LINK_SPEC \
-+ " %{mbig-endian:-m armelfb_linux_eabi} %{mlittle-endian:-m armelf_linux_eabi} "
-
- /* Use ld-linux.so.3 so that it will be possible to run "classic"
- GNU/Linux binaries on an EABI system. */
diff --git a/packages/gcc/gcc-4.3.1/arm-thumb.patch b/packages/gcc/gcc-4.3.1/arm-thumb.patch
index 016a7a550b..7b0b8b2ddc 100644
--- a/packages/gcc/gcc-4.3.1/arm-thumb.patch
+++ b/packages/gcc/gcc-4.3.1/arm-thumb.patch
@@ -3,34 +3,11 @@
# Patch managed by http://www.holgerschurig.de/patcher.html
#
---- gcc-4.1.1/gcc/config/arm/lib1funcs.asm~gcc
-+++ gcc-4.1.1/gcc/config/arm/lib1funcs.asm
-@@ -995,10 +995,24 @@
- .code 32
- FUNC_START div0
-
-+#if ! defined __thumb__
- stmfd sp!, {r1, lr}
- mov r0, #SIGFPE
- bl SYM(raise) __PLT__
- RETLDM r1
-+#else
-+ push {r1, lr}
-+ mov r0, #SIGFPE
-+ bl SYM(raise) __PLT__
-+#if __ARM_ARCH__ > 4
-+ pop {r1, pc}
-+#else
-+ @ on 4T that won't work
-+ pop {r1}
-+ pop {r3}
-+ bx r3
-+#endif
-+#endif
-
- FUNC_END div0
-
-@@ -1141,11 +1155,12 @@
+Index: gcc-4.3.1/gcc/config/arm/lib1funcs.asm
+===================================================================
+--- gcc-4.3.1.orig/gcc/config/arm/lib1funcs.asm 2007-05-30 12:04:09.000000000 -0700
++++ gcc-4.3.1/gcc/config/arm/lib1funcs.asm 2008-08-28 21:51:17.000000000 -0700
+@@ -1225,11 +1225,12 @@
code here switches to the correct mode before executing the function. */
.text
@@ -44,7 +21,7 @@
bx \register
nop
-@@ -1242,6 +1257,7 @@
+@@ -1330,6 +1331,7 @@
.code 16
THUMB_FUNC_START _interwork_call_via_\register
@@ -52,9 +29,11 @@
bx pc
nop
---- gcc-4.1.1/gcc/config/arm/t-linux~gcc
-+++ gcc-4.1.1/gcc/config/arm/t-linux
-@@ -7,6 +7,7 @@
+Index: gcc-4.3.1/gcc/config/arm/t-linux
+===================================================================
+--- gcc-4.3.1.orig/gcc/config/arm/t-linux 2008-08-28 21:25:24.000000000 -0700
++++ gcc-4.3.1/gcc/config/arm/t-linux 2008-08-28 21:51:17.000000000 -0700
+@@ -6,6 +6,7 @@
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
diff --git a/packages/gcc/gcc-4.3.1/intermask-bigendian.patch b/packages/gcc/gcc-4.3.1/intermask-bigendian.patch
deleted file mode 100644
index fdff3d3d86..0000000000
--- a/packages/gcc/gcc-4.3.1/intermask-bigendian.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- gcc-4.2.0/gcc/config/arm/bpabi.h
-+++ gcc-4.2.0/gcc/config/arm/bpabi.h
-@@ -33,9 +33,19 @@
- #undef FPUTYPE_DEFAULT
- #define FPUTYPE_DEFAULT FPUTYPE_VFP
-
-+/*
-+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
-+ * (big endian) configurations.
-+ */
-+#if TARGET_BIG_ENDIAN_DEFAULT
-+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
-+#else
-+#define TARGET_ENDIAN_DEFAULT 0
-+#endif
-+
- /* EABI targets should enable interworking by default. */
- #undef TARGET_DEFAULT
--#define TARGET_DEFAULT MASK_INTERWORK
-+#define TARGET_DEFAULT (MASK_INTERWORK | TARGET_ENDIAN_DEFAULT)
-
- /* The ARM BPABI functions return a boolean; they use no special
- calling convention. */
-