aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2010-10-07 12:45:36 -0700
committerKhem Raj <raj.khem@gmail.com>2010-10-07 12:45:36 -0700
commit8e1eef82a09c14668a125c720cfcd354bbeb42cf (patch)
tree719dc39c6060e844b7d783b4d5f91ce2e85acb71 /recipes/gcc
parent8f6eadc64126c686f9aa43527d93ee4c02411570 (diff)
downloadopenembedded-8e1eef82a09c14668a125c720cfcd354bbeb42cf.tar.gz
gcc-4.5: Fix asm out of range errors seen on thumb when using -O1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gcc')
-rw-r--r--recipes/gcc/gcc-4.5.inc3
-rw-r--r--recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch21
2 files changed, 23 insertions, 1 deletions
diff --git a/recipes/gcc/gcc-4.5.inc b/recipes/gcc/gcc-4.5.inc
index 36d12ecd11..0fe53b4e75 100644
--- a/recipes/gcc/gcc-4.5.inc
+++ b/recipes/gcc/gcc-4.5.inc
@@ -8,7 +8,7 @@ DEPENDS = "mpfr gmp libmpc libelf"
NATIVEDEPS = "mpfr-native gmp-native libmpc-native"
-INC_PR = "r12"
+INC_PR = "r13"
SRCREV = "164562"
PV = "4.5"
@@ -119,6 +119,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
file://linaro/gcc-4.5-linaro-r99398.patch \
file://gcc-vmovl-PR45805.patch \
file://gcc-scalar-widening-pr45847.patch \
+ file://thumb-asm-out-of-range-pr43961.patch \
"
SRC_URI_append_mips64 = " file://mips64-nomultilib.patch"
diff --git a/recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch b/recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch
new file mode 100644
index 0000000000..ec7e823758
--- /dev/null
+++ b/recipes/gcc/gcc-4.5/thumb-asm-out-of-range-pr43961.patch
@@ -0,0 +1,21 @@
+gcc/
+
+2010-06-22 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR target/43961
+ * config/arm/arm.h (ADDR_VEC_ALIGN): Describe added
+ alignment for Thumb-1 compressed switch tables.
+
+--- gcc-4.6-20100619/gcc/config/arm/arm.h.~1~ 2010-06-16 20:02:58.000000000 +0200
++++ gcc-4.6-20100619/gcc/config/arm/arm.h 2010-06-22 14:03:52.000000000 +0200
+@@ -2320,7 +2320,8 @@ extern int making_const_table;
+ } while (0)
+
+ /* Jump table alignment is explicit in ASM_OUTPUT_CASE_LABEL. */
+-#define ADDR_VEC_ALIGN(JUMPTABLE) 0
++#define ADDR_VEC_ALIGN(JUMPTABLE) \
++ ((TARGET_THUMB && GET_MODE (PATTERN (JUMPTABLE)) == SImode) ? 2 : 0)
+
+ /* This is how to output a label which precedes a jumptable. Since
+ Thumb instructions are 2 bytes, we may need explicit alignment here. */
+