kumquat-buildroot/package/gcc/6.4.0/0002-fix-building-on-ppc64.patch
Joel Stanley 88a161b388 gcc: Fix building on ppc64le GCC 8 host
When building on a ppc64le host we see this error:

    build/genmatch --gimple ../../gcc/match.pd \
        > tmp-gimple-match.c
    ../../gcc/match.pd:120:1 error: expected (, got NAME
       negative value by 0 gives -0, not +0.  */

This was reported upstream[1] and fixed on the GCC 6 [2] and GCC 7 [3]
branches:

    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.

The patches included in Buildroot contain just the code changes, and not
the changelog, to make it easer to manage backporting.

Tested on Ubuntu Cosmic ppc64le.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162
[2] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=261621
[3] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=262243

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-07-31 22:00:58 +02:00

39 lines
1.2 KiB
Diff

From 765527ad3725c5f3e82ab2b8e5031120b409983d Mon Sep 17 00:00:00 2001
From: marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 15 Jun 2018 08:51:28 +0000
Subject: [PATCH] Partial backport r256656
2018-06-15 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@261621 138bc75d-0d04-0410-961f-82ee72b054a4
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
libcpp/lex.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcpp/lex.c b/libcpp/lex.c
index e5a0397f3099..b789686f1c49 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