guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

83/203: gnu: gcc-5: Fix powerpc64le-linux build


From: guix-commits
Subject: 83/203: gnu: gcc-5: Fix powerpc64le-linux build
Date: Wed, 3 Nov 2021 21:10:06 -0400 (EDT)

apteryx pushed a commit to branch core-updates-frozen-batched-changes
in repository guix.

commit 8179a1116549d6237d85ae23cc6f30fb2f73c964
Author: Thiago Jung Bauermann <bauermann@kolabnow.com>
AuthorDate: Thu Aug 5 13:19:43 2021 -0300

    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>
---
 gnu/local.mk                                       |  1 +
 gnu/packages/gcc.scm                               |  4 +-
 .../patches/gcc-5-fix-powerpc64le-build.patch      | 64 ++++++++++++++++++++++
 3 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index a0fc2fe..bc297a6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1112,6 +1112,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      \
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 4a5f8f0..1dab77d 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -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
diff --git a/gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch 
b/gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch
new file mode 100644
index 0000000..289d648
--- /dev/null
+++ b/gnu/packages/patches/gcc-5-fix-powerpc64le-build.patch
@@ -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
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]