]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-7.3: Fix build on ppc64le hosts
authorJoel Stanley <joel@jms.id.au>
Mon, 30 Jul 2018 05:10:28 +0000 (14:40 +0930)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 1 Aug 2018 22:00:19 +0000 (23:00 +0100)
When building on ppc64le hosts that have GCC 8 (such as Ubuntu 18.10)
the GCC build bootstrap fails.

 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162

This is a fix that was applied to the upstream GCC 7 branch.

Change-Id: I7796d2a999ec420805dd1c6cf0a1ecba1de5a897
(From OE-Core rev: c17f5e7e954487ad3e97e26c3e0d31443d658d5a)

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-devtools/gcc/gcc-7.3.inc
meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch [new file with mode: 0644]

index d968c322d2184cb86742db8b6df9cfff63ec9cc3..826af5fa737211e50fe6197759f8dd5afb53aabe 100644 (file)
@@ -79,6 +79,7 @@ SRC_URI = "\
 BACKPORTS = "\
            file://0001-Fix-internal-compiler-error-in-testcase.patch \
            file://0001-PR-rtl-optimization-83030.patch \
+           file://0001-Fix-ppc64le-build-Partial-backport-r256656.patch \
 "
 
 SRC_URI[md5sum] = "be2da21680f27624f3a87055c4ba5af2"
diff --git a/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch b/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch
new file mode 100644 (file)
index 0000000..cfb70e1
--- /dev/null
@@ -0,0 +1,37 @@
+From aa65a43516da1d48011ef621ed5988289711d99b Mon Sep 17 00:00:00 2001
+From: marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 29 Jun 2018 09:31:30 +0000
+Subject: [PATCH] Partial backport r256656
+
+2018-06-29  Martin Liska  <mliska@suse.cz>
+
+       Backport from mainline
+       2018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * lex.c (search_line_fast): Remove illegal coercion of an
+       unaligned pointer value to vector pointer type and replace with
+       use of __builtin_vec_vsx_ld () built-in function, which operates
+       on unaligned pointer values.
+
+Upstream-Status: Backport
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ libcpp/lex.c  |  2 +-
+ 1 files changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/libcpp/lex.c b/libcpp/lex.c
+index 097c78002cbb..e0fb9e822c44 100644
+--- a/libcpp/lex.c
++++ b/libcpp/lex.c
+@@ -568,7 +568,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+     {
+       vc m_nl, m_cr, m_bs, m_qm;
+-      data = *((const vc *)s);
++      data = __builtin_vec_vsx_ld (0, s);
+       s += 16;
+       m_nl = (vc) __builtin_vec_cmpeq(data, repl_nl);
+-- 
+2.17.1
+