diff options
author | Khem Raj <raj.khem@gmail.com> | 2008-08-29 05:18:57 +0000 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2008-08-29 05:18:57 +0000 |
commit | d80141ea4131694f6cad63ea2d50e2b46c840948 (patch) | |
tree | c162f41739bbe76d4efa1f3f41df7c24a40fef60 /packages/gcc/gcc-4.3.1 | |
parent | a7ce2fb467521c1f188982caaf7d82be5beaead0 (diff) |
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.
Diffstat (limited to 'packages/gcc/gcc-4.3.1')
-rw-r--r-- | packages/gcc/gcc-4.3.1/800-arm-bigendian.patch | 55 | ||||
-rw-r--r-- | packages/gcc/gcc-4.3.1/801-arm-bigendian-eabi.patch | 14 | ||||
-rw-r--r-- | packages/gcc/gcc-4.3.1/arm-thumb.patch | 43 | ||||
-rw-r--r-- | packages/gcc/gcc-4.3.1/intermask-bigendian.patch | 24 |
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. */ - |