From 9335bb7cd6391893dd503bb93b81084033ee6a74 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Wed, 9 Sep 2009 00:02:01 +0200 Subject: gcc: add patch to fix EABI for armv4t As pointed out by Martin GUY, gcc incorrectly generates armv5t instrcutions for EABI, even for cores that are an armv4t. The new patch (for the 4.3 series) fixes the problem by downgrading the default CPU for EABI to being an armv4t core. diff --git a/patches/gcc/4.3.0/380-unbreak-armv4t.patch b/patches/gcc/4.3.0/380-unbreak-armv4t.patch new file mode 100644 index 0000000..af14e0d --- /dev/null +++ b/patches/gcc/4.3.0/380-unbreak-armv4t.patch @@ -0,0 +1,11 @@ +--- gcc-4.3.2.orig/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:44.000000000 +0200 ++++ gcc-4.3.2/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:51.000000000 +0200 +@@ -44,7 +44,7 @@ + The ARM10TDMI core is the default for armv5t, so set + SUBTARGET_CPU_DEFAULT to achieve this. */ + #undef SUBTARGET_CPU_DEFAULT +-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi ++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi + + /* TARGET_BIG_ENDIAN_DEFAULT is set in + config.gcc for big endian configurations. */ diff --git a/patches/gcc/4.3.1/360-unbreak-armv4t.patch b/patches/gcc/4.3.1/360-unbreak-armv4t.patch new file mode 100644 index 0000000..af14e0d --- /dev/null +++ b/patches/gcc/4.3.1/360-unbreak-armv4t.patch @@ -0,0 +1,11 @@ +--- gcc-4.3.2.orig/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:44.000000000 +0200 ++++ gcc-4.3.2/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:51.000000000 +0200 +@@ -44,7 +44,7 @@ + The ARM10TDMI core is the default for armv5t, so set + SUBTARGET_CPU_DEFAULT to achieve this. */ + #undef SUBTARGET_CPU_DEFAULT +-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi ++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi + + /* TARGET_BIG_ENDIAN_DEFAULT is set in + config.gcc for big endian configurations. */ diff --git a/patches/gcc/4.3.2/390-unbreak-armv4t.patch b/patches/gcc/4.3.2/390-unbreak-armv4t.patch new file mode 100644 index 0000000..af14e0d --- /dev/null +++ b/patches/gcc/4.3.2/390-unbreak-armv4t.patch @@ -0,0 +1,11 @@ +--- gcc-4.3.2.orig/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:44.000000000 +0200 ++++ gcc-4.3.2/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:51.000000000 +0200 +@@ -44,7 +44,7 @@ + The ARM10TDMI core is the default for armv5t, so set + SUBTARGET_CPU_DEFAULT to achieve this. */ + #undef SUBTARGET_CPU_DEFAULT +-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi ++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi + + /* TARGET_BIG_ENDIAN_DEFAULT is set in + config.gcc for big endian configurations. */ diff --git a/patches/gcc/4.3.3/390-unbreak-armv4t.patch b/patches/gcc/4.3.3/390-unbreak-armv4t.patch new file mode 100644 index 0000000..af14e0d --- /dev/null +++ b/patches/gcc/4.3.3/390-unbreak-armv4t.patch @@ -0,0 +1,11 @@ +--- gcc-4.3.2.orig/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:44.000000000 +0200 ++++ gcc-4.3.2/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:51.000000000 +0200 +@@ -44,7 +44,7 @@ + The ARM10TDMI core is the default for armv5t, so set + SUBTARGET_CPU_DEFAULT to achieve this. */ + #undef SUBTARGET_CPU_DEFAULT +-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi ++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi + + /* TARGET_BIG_ENDIAN_DEFAULT is set in + config.gcc for big endian configurations. */ diff --git a/patches/gcc/4.3.4/390-unbreak-armv4t.patch b/patches/gcc/4.3.4/390-unbreak-armv4t.patch new file mode 100644 index 0000000..af14e0d --- /dev/null +++ b/patches/gcc/4.3.4/390-unbreak-armv4t.patch @@ -0,0 +1,11 @@ +--- gcc-4.3.2.orig/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:44.000000000 +0200 ++++ gcc-4.3.2/gcc/config/arm/linux-eabi.h 2009-09-08 23:46:51.000000000 +0200 +@@ -44,7 +44,7 @@ + The ARM10TDMI core is the default for armv5t, so set + SUBTARGET_CPU_DEFAULT to achieve this. */ + #undef SUBTARGET_CPU_DEFAULT +-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi ++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi + + /* TARGET_BIG_ENDIAN_DEFAULT is set in + config.gcc for big endian configurations. */ -- cgit v0.10.2-6-g49f6