[oe-commits] Stefan Müller-Kliese =?UTF-8?Q?r=20?=: gcc-4.9: backport from gcc trunk r212178

git at git.openembedded.org git at git.openembedded.org
Fri Apr 24 10:08:48 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: 6751ef78694783fb86e55c77afefae750ab1b610
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=6751ef78694783fb86e55c77afefae750ab1b610

Author: Stefan Müller-Klieser <s.mueller-klieser at phytec.de>
Date:   Tue Apr 21 10:23:47 2015 +0200

gcc-4.9: backport from gcc trunk r212178

When compiling meta-toolchain-qt5 on cortexa8, the compiler throws an
internal compiler error:

...
qttools-opensource-src-5.3.2/src/linguist/shared/po.cpp:
In function 'bool loadPO(Translator&, QIODevice&, ConversionData&)':
qttools-opensource-src-5.3.2/src/linguist/shared/po.cpp:717:1:
internal compiler error: in add_stores, at var-tracking.c:6000
...

Tracking this down led to https://bugs.linaro.org/show_bug.cgi?id=534
It seems the bug is well know and fixed upstream. So backporting from
trunk seems to be the right solution. This fixes the compiler problem
on cortexa8 and does not seem to be very invasive. The original commit
can be found at:

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178 138bc75d-0d04-0410-961f-82ee72b054a4

Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser at phytec.de>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/recipes-devtools/gcc/gcc-4.9.inc              |  1 +
 ...racking.c-backport-from-gcc-trunk-r212178.patch | 39 ++++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/meta/recipes-devtools/gcc/gcc-4.9.inc b/meta/recipes-devtools/gcc/gcc-4.9.inc
index 3af87d1..ee31f0b 100644
--- a/meta/recipes-devtools/gcc/gcc-4.9.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.9.inc
@@ -77,6 +77,7 @@ SRC_URI = "\
     file://0059-gcc-PR-rtl-optimization-63348.patch \
     file://0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch \
     file://0061-target-gcc-includedir.patch \
+    file://0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch \
 "
 SRC_URI[md5sum] = "4df8ee253b7f3863ad0b86359cd39c43"
 SRC_URI[sha256sum] = "2020c98295856aa13fda0f2f3a4794490757fc24bcca918d52cc8b4917b972dd"
diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch b/meta/recipes-devtools/gcc/gcc-4.9/0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch
new file mode 100644
index 0000000..c0ea62f
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.9/0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch
@@ -0,0 +1,39 @@
+From b30ffb8097749fdb55704aa7d8307ca1a58255d6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= <s.mueller-klieser at phytec.de>
+Date: Tue, 7 Apr 2015 16:15:11 +0200
+Subject: [PATCH] gcc/var-tracking.c: backport from gcc trunk r212178
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+resolves a bug seen on cortexa8 building qt5 libraries.
+
+2014-06-30  Joseph Myers  <joseph at codesourcery.com>
+
+    * var-tracking.c (add_stores): Return instead of asserting if old
+    and new values for conditional store are the same.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser at phytec.de>
+---
+ gcc/var-tracking.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
+index 65d8285..7c38910 100644
+--- a/gcc/var-tracking.c
++++ b/gcc/var-tracking.c
+@@ -5997,7 +5997,8 @@ add_stores (rtx loc, const_rtx expr, void *cuip)
+     {
+       cselib_val *oval = cselib_lookup (oloc, GET_MODE (oloc), 0, VOIDmode);
+ 
+-      gcc_assert (oval != v);
++      if (oval == v)
++        return;
+       gcc_assert (REG_P (oloc) || MEM_P (oloc));
+ 
+       if (oval && !cselib_preserved_value_p (oval))
+-- 
+1.9.1
+



More information about the Openembedded-commits mailing list