Message ID | 20180730103630.21804-1-joel@jms.id.au |
---|---|
State | Accepted |
Headers | show |
Series | gcc: Fix building on ppc64le GCC 8 host | expand |
Hello, On Mon, 30 Jul 2018 20:06:30 +0930, Joel Stanley wrote: > 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> > --- > .../6.4.0/0002-fix-building-on-ppc64.patch | 38 ++++++++++++++++++ > .../7.3.0/0002-fix-building-on-ppc64.patch | 40 +++++++++++++++++++ > 2 files changed, 78 insertions(+) > create mode 100644 package/gcc/6.4.0/0002-fix-building-on-ppc64.patch > create mode 100644 package/gcc/7.3.0/0002-fix-building-on-ppc64.patch Applied to master, thanks. Thomas
>>>>> "Joel" == Joel Stanley <joel@jms.id.au> writes: > 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> Committed to 2018.02.x and 2018.05.x, thanks.
diff --git a/package/gcc/6.4.0/0002-fix-building-on-ppc64.patch b/package/gcc/6.4.0/0002-fix-building-on-ppc64.patch new file mode 100644 index 000000000000..ee096cfcf1e2 --- /dev/null +++ b/package/gcc/6.4.0/0002-fix-building-on-ppc64.patch @@ -0,0 +1,38 @@ +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 + diff --git a/package/gcc/7.3.0/0002-fix-building-on-ppc64.patch b/package/gcc/7.3.0/0002-fix-building-on-ppc64.patch new file mode 100644 index 000000000000..78a028c29a98 --- /dev/null +++ b/package/gcc/7.3.0/0002-fix-building-on-ppc64.patch @@ -0,0 +1,40 @@ +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. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@261621 138bc75d-0d04-0410-961f-82ee72b054a4 + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@262243 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 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 +