gcc csl 2007q3: add patch to fix segfaults when using -Os
authorKoen Kooi <koen@openembedded.org>
Sat, 12 Jul 2008 19:52:29 +0000 (19:52 +0000)
committerKoen Kooi <koen@openembedded.org>
Sat, 12 Jul 2008 19:52:29 +0000 (19:52 +0000)
packages/gcc/gcc-cross_csl-arm-2007q3.bb
packages/gcc/gcc-csl-arm-2007q3.inc
packages/gcc/gcc-csl-arm-2007q3/gcc-Os-fix.diff [new file with mode: 0644]
packages/gcc/gcc_csl-arm-2007q3.bb

index cd10cfb..295353a 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
 
 require gcc-csl-arm-2007q3.inc
 require gcc-cross4.inc
index 601b4f0..a3da6c9 100644 (file)
@@ -30,6 +30,7 @@ SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-eabi/arm-20
 #           file://fortran-static-linking.patch;patch=1 \
 #           file://gcc-configure-no-fortran.patch;patch=1;pnum=1 \
 #           file://gcc-new-makeinfo.patch;patch=1 \
+           file://gcc-Os-fix.diff;patch=1 \
 "
 
 
diff --git a/packages/gcc/gcc-csl-arm-2007q3/gcc-Os-fix.diff b/packages/gcc/gcc-csl-arm-2007q3/gcc-Os-fix.diff
new file mode 100644 (file)
index 0000000..422091f
--- /dev/null
@@ -0,0 +1,12 @@
+--- /tmp/arm.c 2008-07-12 21:44:16.000000000 +0200
++++ gcc-4.2/gcc/config/arm/arm.c       2008-07-12 21:45:48.393198000 +0200
+@@ -11591,7 +11591,8 @@
+                 && count != 0
+                 && !current_function_calls_eh_return
+                 && bit_count(saved_regs_mask) * 4 == count
+-                && !IS_INTERRUPT (func_type))
++                && !IS_INTERRUPT (func_type)
++                && !cfun->tail_call_emit) 
+               {
+                 unsigned long mask;
+                 mask = (1 << (arm_size_return_regs() / 4)) - 1;
index 832167c..4999c6a 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
 
 require gcc-${PV}.inc
 require gcc-configure-target.inc