gnu: gcc-5: Fix powerpc64le-linux build
GCC 5 has a misaligned access to a vector pointer which causes a build failure when using GCC 8 and later. Backport upstream fix that was applied on the GCC 6 branch. * gnu/packages/gcc.scm (gcc-5)[source]: Apply gcc-5-fix-powerpc64le-build.patch. * gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
460d6aca0c
commit
b04a20f77f
@ -1113,6 +1113,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \
|
||||
%D%/packages/patches/gcc-5-hurd.patch \
|
||||
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
|
||||
%D%/packages/patches/gcc-5-fix-powerpc64le-build.patch \
|
||||
%D%/packages/patches/gcc-5-source-date-epoch-1.patch \
|
||||
%D%/packages/patches/gcc-5-source-date-epoch-2.patch \
|
||||
%D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \
|
||||
|
@ -490,7 +490,9 @@ Go. It also includes runtime support libraries for these languages.")
|
||||
"gcc-5-source-date-epoch-2.patch"
|
||||
"gcc-6-libsanitizer-mode-size.patch"
|
||||
"gcc-fix-texi2pod.patch"
|
||||
"gcc-5-hurd.patch"))
|
||||
"gcc-5-hurd.patch"
|
||||
;; See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162
|
||||
"gcc-5-fix-powerpc64le-build.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet gcc-canadian-cross-objdump-snippet)))
|
||||
(inputs
|
||||
|
64
gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch
Normal file
64
gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch
Normal file
@ -0,0 +1,64 @@
|
||||
From ee6c0081c03330045b3d4cde8421cd1d3a459609 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Liska <mliska@suse.cz>
|
||||
Date: Fri, 15 Jun 2018 10:51:28 +0200
|
||||
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.
|
||||
|
||||
From-SVN: r261621
|
||||
---
|
||||
|
||||
Obtained from:
|
||||
|
||||
https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=ee6c0081c03330045b3d4cde8421cd1d3a459609
|
||||
|
||||
The libcpp/ChangeLog hunk was modified to apply on top of gcc-5's libcpp/ChangeLog.
|
||||
|
||||
libcpp/ChangeLog | 12 ++++++++++++
|
||||
libcpp/lex.c | 2 +-
|
||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
|
||||
index c920a05d438..a63abb04f5e 100644
|
||||
--- a/libcpp/ChangeLog
|
||||
+++ b/libcpp/ChangeLog
|
||||
@@ -1,3 +1,15 @@
|
||||
+2018-06-15 Martin Liska <mliska@suse.cz>
|
||||
+
|
||||
+ PR bootstrap/86162
|
||||
+
|
||||
+ 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.
|
||||
+
|
||||
2017-10-10 Release Manager
|
||||
|
||||
* GCC 5.5.0 released.
|
||||
diff --git a/libcpp/lex.c b/libcpp/lex.c
|
||||
index e5a0397f309..b789686f1c4 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.27.0
|
||||
|
Loading…
Reference in New Issue
Block a user