summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch
diff options
context:
space:
mode:
authorPeter A. Bigot <pab@pabigot.com>2014-08-14 14:05:58 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-15 18:19:52 +0100
commit06f911894a367f395139c2b0d6c2ba6371398478 (patch)
tree8d18ad759eb216e89139601c887fc550cc5e2b25 /meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch
parente7011429e40ae96b9c9f1e7f3c6f4c1f1102607f (diff)
downloadopenembedded-core-06f911894a367f395139c2b0d6c2ba6371398478.tar.gz
openembedded-core-06f911894a367f395139c2b0d6c2ba6371398478.tar.bz2
openembedded-core-06f911894a367f395139c2b0d6c2ba6371398478.zip
gcc: backport patch affecting Linux kernel builds
A long-standing bug in gcc turns out to cause problems with unpatched Linux versions due to improved optimization enabled by gcc 4.9. The upstream fix missed the gcc-4.9.1 cut-off. It's also been applied upstream to the 4.8 branch so is being added for OE's 4.8 as well. Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch b/meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch
new file mode 100644
index 0000000000..b27abdef38
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.9/0055-PR-rtl-optimization-61801.patch
@@ -0,0 +1,36 @@
+From 556537c4ad0df4cbebb74197bb2bdea75cf5dd35 Mon Sep 17 00:00:00 2001
+From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 17 Jul 2014 07:48:49 +0000
+Subject: [PATCH] 2014-07-17 Richard Biener <rguenther@suse.de>
+
+ PR rtl-optimization/61801
+ * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
+ ASM_INPUT don't set reg_pending_barrier if it appears in a
+ debug-insn.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@212739 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Upstream-Status: Backport [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801]
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+
+---
+ gcc/sched-deps.c | 3 ++-
+
+diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
+index efc4223..df29bd3 100644
+--- a/gcc/sched-deps.c
++++ b/gcc/sched-deps.c
+@@ -2750,7 +2750,8 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx insn)
+ Consider for instance a volatile asm that changes the fpu rounding
+ mode. An insn should not be moved across this even if it only uses
+ pseudo-regs because it might give an incorrectly rounded result. */
+- if (code != ASM_OPERANDS || MEM_VOLATILE_P (x))
++ if ((code != ASM_OPERANDS || MEM_VOLATILE_P (x))
++ && !DEBUG_INSN_P (insn))
+ reg_pending_barrier = TRUE_BARRIER;
+
+ /* For all ASM_OPERANDS, we must traverse the vector of input operands.
+--
+1.8.5.5
+