From d80141ea4131694f6cad63ea2d50e2b46c840948 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 29 Aug 2008 05:18:57 +0000 Subject: All below is done for GCC 4.3.1 and 4.3.2 recipes. Enable patches for ARM big endian support. Delete unneeded ARM big endian patches. Adjust Thumb support patches. --- packages/gcc/gcc-4.3.1/800-arm-bigendian.patch | 55 +++++----------------- .../gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch | 14 ------ packages/gcc/gcc-4.3.1/arm-thumb.patch | 43 +++++------------ packages/gcc/gcc-4.3.1/intermask-bigendian.patch | 24 ---------- 4 files changed, 22 insertions(+), 114 deletions(-) delete mode 100644 packages/gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch delete mode 100644 packages/gcc/gcc-4.3.1/intermask-bigendian.patch (limited to 'packages/gcc/gcc-4.3.1') 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. */ - -- cgit v1.2.3