GNU bug report logs - #47182
[PATCH 00/18] Add support for powerpc64le-linux (wip-ppc64le-for-master)

Previous Next

Package: guix-patches;

Reported by: Chris Marusich <cmmarusich <at> gmail.com>

Date: Tue, 16 Mar 2021 06:29:01 UTC

Severity: normal

Tags: patch

Done: Chris Marusich <cmmarusich <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 47182 in the body.
You can then email your comments to 47182 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:29:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Chris Marusich <cmmarusich <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 16 Mar 2021 06:29:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Mon, 15 Mar 2021 23:28:05 -0700
This patch series comes from the wip-ppc64le-for-master branch.  This
branch contains commits that add support for a new system type,
powerpc64le-linux.  The powerpc64le-linux system can be run on
freedom-friendly hardware like the Talos II and Blackbird family of
POWER9 systems built by Raptor Computing Systems.  These patches add
support for Guix only, not for Guix System; Guix System support will
come later.

These patches are specifically crafted so they do not rebuild the
world for existing architectures.  Therefore, they can be applied
directly to master.  I have verified that, after applying these
patches to master, I am able to build (on a Debian ppc64le GNU/Linux
system) a release binary of Guix for the powerpc64le-linux system
successfully.  Additionally, I am able to install this release binary
and do "guix pull" successfully in a fresh Debian ppc64le GNU/Linux
VM, and I am able to build and run GNU Hello in that VM using the
newly pulled Guix.

I think these patches are ready to apply to master, and I hope they
will be included in the next release.  Many thanks to Léo Le Bouter
and Efraim Flashner for their help in making these changes.  Please
review and let me know if there is anything that can be done better.

Chris Marusich (11):
  gnu: bootstrap: Add support for powerpc64le-linux.
  utils: Add target-powerpc? procedure.
  gnu: gcc-4.7: On powerpc64le, fix /lib64 references.
  gnu: gcc-boot0: Enable 128-bit long double for POWER9.
  gnu: binutils-final: Support more Power architectures.
  Add powerpc64le-linux as a supported Guix architecture.
  syscalls: Fix clone on powerpc64le-linux.
  syscalls: Fix RNDADDTOENTCNT on powerpc64le-linux.
  ci: %cross-targets: Add powerpc64le-linux-gnu.
  utils: Fix target-64bit? on powerpc64le-linux.
  gnu: sed: Make it build on SELinux-enabled kernels.

Efraim Flashner (1):
  gnu: binutils-final: Provide bash for binary on powerpc-linux.

Leo Le Bouter (6):
  gnu: glibc: Fix ldd path on powerpc*.
  gnu: bdb-4.8: Fix configure on powerpc64le-linux.
  gnu: guile-avahi: Fix compilation on powerpc64le-linux.
  gnu: texlive-bin: Fix compilation on powerpc64le*.
  gnu: texlive-latex-base: Fix compilation on powerpc64le*.
  gnu: libelf: Fix compilation for powerpc64le-linux.

 Makefile.am                                  |  4 +-
 etc/guix-install.sh                          |  4 ++
 gnu/ci.scm                                   |  1 +
 gnu/local.mk                                 |  1 +
 gnu/packages/base.scm                        | 32 +++++++++++++++-
 gnu/packages/bootstrap.scm                   | 39 +++++++++++++++++++-
 gnu/packages/commencement.scm                | 28 ++++++++++++--
 gnu/packages/dbm.scm                         |  6 +++
 gnu/packages/elf.scm                         |  5 +++
 gnu/packages/gcc.scm                         | 38 +++++++++++++++----
 gnu/packages/guile-xyz.scm                   |  4 ++
 gnu/packages/patches/glibc-ldd-powerpc.patch | 10 +++++
 gnu/packages/tex.scm                         | 26 ++++++++++---
 guix/build/syscalls.scm                      |  8 +++-
 guix/packages.scm                            |  4 +-
 guix/utils.scm                               |  8 +++-
 m4/guix.m4                                   |  3 +-
 tests/guix-build.sh                          |  6 ++-
 18 files changed, 201 insertions(+), 26 deletions(-)
 create mode 100644 gnu/packages/patches/glibc-ldd-powerpc.patch

-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:47:02 GMT) Full text and rfc822 format available.

Message #8 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 01/18] gnu: bootstrap: Add support for powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:44:54 -0700
The bootstrap tarballs used by these bootstrap packages were created via the
following steps:

- Create a new x86_64 VM using QEMU.
- Use
  https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.xz
  to install Guix System 1.2.0 in the VM.
- Run: guix pull --no-substitutes --commit=662e7e28d576ada91fc9dec7d27c100666114f03
- Run: guix build --no-substitutes --target=powerpc64le-linux-gnu bootstrap-tarballs

With the exception of gcc-static, all bootstrap binaries contained in these
tarballs can be built reproducibly.  Unfortunately, gcc-static is not always
reproducible when everything is built from source on separate machines.
Despite investigation efforts, the cause remains unclear, so we have decided
to move forward with these binaries to unblock further bootstrapping work.
For details, see <https://bugs.gnu.org/41669>.

* gnu/packages/bootstrap.scm (%bootstrap-executables)
(bootstrap-executable-file-name, bootstrap-guile-url-path)
(bootstrap-guile-hash, %bootstrap-coreutils&co, %bootstrap-binutils)
(%bootstrap-glibc, %bootstrap-gcc): Add entries for powerpc64le-linux.
(%bootstrap-executable-base-urls): Add an entry for alpha.gnu.org.
---
 gnu/packages/bootstrap.scm | 39 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index c39e60ec8bc..c598cedc0ae 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -5,6 +5,8 @@
 ;;; Copyright © 2018, 2020 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
 ;;; Copyright © 2019 Carl Dong <contact <at> carldong.me>
 ;;; Copyright © 2019 Léo Le Bouter <lle-bout <at> zaclys.net>
+;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
+;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -122,16 +124,27 @@
      ("tar"
       ,(base32 "06gmqdjq3rl8lr47b9fyx4ifnm5x56ymc8lyryp1ax1j2s4y5jb4"))
      ("xz"
-      ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))))
+      ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))
+    ("powerpc64le-linux"
+     ("bash"
+      ,(base32 "1kiw7n6mkdy2x9in97646nb7aiayxr090ws1hbrlazah3fjqi6nj"))
+     ("mkdir"
+      ,(base32 "04dpvi231zcl40ig048vqqnyvmnkw1byrm1q1qqvs1f0g16yhrrk"))
+     ("tar"
+      ,(base32 "150c8948cz8r208g6qgn2dn4f4zs5kpgbpbg6bwag6yw42rapw2l"))
+     ("xz"
+      ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))))
 
 (define %bootstrap-executable-base-urls
   ;; This is where the bootstrap executables come from.
   '("https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
+    "https://alpha.gnu.org/gnu/guix/bootstrap/"
     "http://lilypond.org/janneke/guix/"))
 
 (define (bootstrap-executable-file-name system program)
   "Return the FILE-NAME part of url where PROGRAM can be found for SYSTEM."
   (match system
+    ("powerpc64le-linux" (string-append system "/20210106/" program))
     ("i586-gnu" (string-append system "/20200326/" program))
     (_ (string-append system "/" program
                       "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
@@ -332,6 +345,8 @@ or false to signal an error."
                     "/20150101/guile-2.0.11.tar.xz")
                    ("i586-gnu"
                     "/20200326/guile-static-stripped-2.0.14-i586-pc-gnu.tar.xz")
+                   ("powerpc64le-linux"
+                    "/20210106/guile-static-stripped-2.0.14-powerpc64le-linux-gnu.tar.xz")
                    (_
                     "/20131110/guile-2.0.9.tar.xz"))))
 
@@ -346,6 +361,8 @@ or false to signal an error."
      (base32 "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))
     ("armhf-linux"
      (base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
+    ("powerpc64le-linux"
+     (base32 "1rnyfz5q38jyvxddj617443bnnzql4vw0mxzqpj8wz48wx4bhbq0"))
     ("aarch64-linux"
      (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))
     ("i586-gnu"
@@ -479,6 +496,8 @@ $out/bin/guile --version~%"
                                              "/20150101/static-binaries.tar.xz")
                                             ("aarch64-linux"
                                              "/20170217/static-binaries.tar.xz")
+                                            ("powerpc64le-linux"
+                                             "/20210106/static-binaries-0-powerpc64le-linux-gnu.tar.xz")
                                             ("i586-gnu"
                                              "/20200326/static-binaries-0-i586-pc-gnu.tar.xz")
                                             (_
@@ -498,6 +517,9 @@ $out/bin/guile --version~%"
                               ("aarch64-linux"
                                (base32
                                 "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
+                              ("powerpc64le-linux"
+                               (base32
+                                "0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6b6p1z9wv92v"))
                               ("i586-gnu"
                                (base32
                                 "17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923plvb0nfm1cfn"))
@@ -547,6 +569,8 @@ $out/bin/guile --version~%"
                                              "/20150101/binutils-2.25.tar.xz")
                                             ("aarch64-linux"
                                              "/20170217/binutils-2.27.tar.xz")
+                                            ("powerpc64le-linux"
+                                             "/20210106/binutils-static-stripped-2.34-powerpc64le-linux-gnu.tar.xz")
                                             ("i586-gnu"
                                              "/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
                                             (_
@@ -566,6 +590,9 @@ $out/bin/guile --version~%"
                               ("aarch64-linux"
                                (base32
                                 "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
+                              ("powerpc64le-linux"
+                               (base32
+                                "1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
                               ("i586-gnu"
                                (base32
                                 "11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
@@ -622,6 +649,8 @@ $out/bin/guile --version~%"
                                        "/20150101/glibc-2.20.tar.xz")
                                       ("aarch64-linux"
                                        "/20170217/glibc-2.25.tar.xz")
+                                      ("powerpc64le-linux"
+                                       "/20210106/glibc-stripped-2.31-powerpc64le-linux-gnu.tar.xz")
                                       ("i586-gnu"
                                        "/20200326/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
                                       (_
@@ -641,6 +670,9 @@ $out/bin/guile --version~%"
                         ("aarch64-linux"
                          (base32
                           "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
+                        ("powerpc64le-linux"
+                         (base32
+                          "1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
                         ("i586-gnu"
                          (base32
                           "14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2w5952"))
@@ -713,6 +745,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                                         "/20150101/gcc-4.8.4.tar.xz")
                                        ("aarch64-linux"
                                         "/20170217/gcc-5.4.0.tar.xz")
+                                       ("powerpc64le-linux"
+                                        "/20210106/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz")
                                        ("i586-gnu"
                                         "/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
                                        (_
@@ -732,6 +766,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                          ("aarch64-linux"
                           (base32
                            "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
+                         ("powerpc64le-linux"
+                          (base32
+                           "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
                          ("i586-gnu"
                           (base32
                            "1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:47:02 GMT) Full text and rfc822 format available.

Message #11 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 02/18] utils: Add target-powerpc? procedure.
Date: Mon, 15 Mar 2021 23:44:55 -0700
* guix/utils.scm (target-powerpc?): New exported procedure.
---
 guix/utils.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/guix/utils.scm b/guix/utils.scm
index 21e3460b2c7..fc57620319e 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2018, 2020 Marius Bakke <marius <at> gnu.org>
 ;;; Copyright © 2020 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune <at> gmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
             target-arm32?
             target-aarch64?
             target-arm?
+            target-powerpc?
             target-64bit?
             cc-for-target
             cxx-for-target
@@ -541,6 +543,10 @@ a character other than '@'."
                                              (%current-system))))
   (or (target-arm32? target) (target-aarch64? target)))
 
+(define* (target-powerpc? #:optional (target (or (%current-target-system)
+                                                 (%current-system))))
+  (string-prefix? "powerpc" target))
+
 (define* (target-64bit? #:optional (system (or (%current-target-system)
                                                (%current-system))))
   (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "ppc64")))
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:02 GMT) Full text and rfc822 format available.

Message #14 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 03/18] gnu: gcc-4.7: On powerpc64le, fix /lib64 references.
Date: Mon, 15 Mar 2021 23:44:56 -0700
Fixes: <https://bugs.gnu.org/46253>.

* gnu/packages/gcc.scm (gcc-4.7)[#:phases][pre-configure]: When the
gcc/config/rs6000 directory exists, replace "/lib64" with "/lib" in all files
within it.  Note that this fix will be picked up by any package that re-uses
the pre-configure phase from gcc-4.7 (e.g., all the usual gcc packages).
(make-libstdc++)[#:phases][fix-rs6000-libdir]: New phase, which does the same
as above.  It was necessary to duplicate the fix here because make-libstdc++
does not re-use the pre-configure phase from gcc-4.7.
---
 gnu/packages/gcc.scm | 38 +++++++++++++++++++++++++++++++-------
 1 file changed, 31 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 4d5aaa70701..3ea8695cf18 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -3,13 +3,14 @@
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2015 Andreas Enge <andreas <at> enge.fr>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll <at> gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2020 Joseph LaFreniere <joseph <at> lafreniere.xyz>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury <at> disroot.org>
 ;;; Copyright © 2020 Simon Tournier <zimon.toutoune <at> gmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -273,6 +274,14 @@ where the OS part is overloaded to denote a specific ABI---into GCC
 ~a"
                                libc line))))
 
+                  ;; TODO: Make this unconditional in core-updates.
+                  ,@(if (target-powerpc?)
+                      `((when (file-exists? "gcc/config/rs6000")
+                          ;; Force powerpc libdir to be /lib and not /lib64
+                          (substitute* (find-files "gcc/config/rs6000")
+                            (("/lib64") "/lib"))))
+                      `())
+
                   ;; Don't retain a dependency on the build-time sed.
                   (substitute* "fixincludes/fixincl.x"
                     (("static char const sed_cmd_z\\[\\] =.*;")
@@ -598,12 +607,27 @@ using compilers other than GCC."
     (name "libstdc++")
     (arguments
      `(#:out-of-source? #t
-       #:phases (alist-cons-before
-                 'configure 'chdir
-                 (lambda _
-                   (chdir "libstdc++-v3")
-                   #t)
-                 %standard-phases)
+       #:phases
+       ;; TODO: Use the target-powerpc arm for everyone.
+        ,(if (target-powerpc?)
+           `(modify-phases %standard-phases
+              ;; Force rs6000 (i.e., powerpc) libdir to be /lib and not /lib64.
+              (add-before 'chdir 'fix-rs6000-libdir
+                (lambda _
+                  (when (file-exists? "gcc/config/rs6000")
+                    (substitute* (find-files "gcc/config/rs6000")
+                      (("/lib64") "/lib")))
+                  #t))
+              (add-before 'configure 'chdir
+                (lambda _
+                  (chdir "libstdc++-v3")
+                  #t)))
+           `(alist-cons-before 'configure 'chdir
+              (lambda _
+                (chdir "libstdc++-v3")
+                #t)
+              %standard-phases))
+
        #:configure-flags `("--disable-libstdcxx-pch"
                            ,(string-append "--with-gxx-include-dir="
                                            (assoc-ref %outputs "out")
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:02 GMT) Full text and rfc822 format available.

Message #17 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 05/18] gnu: gcc-boot0: Enable 128-bit long double for POWER9.
Date: Mon, 15 Mar 2021 23:44:58 -0700
* gnu/packages/commencement.scm (gcc-boot0) [#:configure-flags]: Add
--with-long-double-128 when the boot triplet is "powerpc64le-guix-linux-gnu",
instead of "powerpc64le-linux-gnu", which is incorrect.  The actual triplet
used during bootstrapping is "powerpc64le-guix-linux-gnu".
---
 gnu/packages/commencement.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 93b0c508822..86bc7a602da 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2020 Timothy Sample <samplet <at> ngyro.com>
 ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury <at> disroot.org>
+;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2818,7 +2819,8 @@ exec " gcc "/bin/" program
                            "--disable-shared"
                            "--enable-languages=c,c++"
 
-                           ,@(if (equal? "powerpc64le-linux-gnu" (boot-triplet))
+                           ;; boot-triplet inserts "guix" in the triplet.
+                           ,@(if (equal? "powerpc64le-guix-linux-gnu" (boot-triplet))
                                  ;; On POWER9 (little endian) glibc needs the
                                  ;; 128-bit long double type.
                                  '("--with-long-double-128")
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:02 GMT) Full text and rfc822 format available.

Message #20 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 07/18] gnu: binutils-final: Support more Power architectures.
Date: Mon, 15 Mar 2021 23:45:00 -0700
* gnu/packages/commencement.scm (binutils-final)[arguments]: When checking if
the system is a Power architecture, instead of hard-coding "powerpc-linux",
use the target-powerpc? procedure so it works on more Power architectures.
[inputs]: Likewise.
---
 gnu/packages/commencement.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index c0732bbf62d..d4511ed9148 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3516,14 +3516,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
        #:implicit-inputs? #f
        #:allowed-references
        ,@(match (%current-system)
-         ("powerpc-linux"
+         ((? target-powerpc?)
           `(("out" ,glibc-final ,static-bash-for-glibc)))
          (_
           `(("out" ,glibc-final))))
        ,@(package-arguments binutils)))
     (inputs
      (match (%current-system)
-       ("powerpc-linux"
+       ((? target-powerpc?)
         `(("bash" ,static-bash-for-glibc)
           ,@(%boot2-inputs)))
        (_ (%boot2-inputs))))))
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:03 GMT) Full text and rfc822 format available.

Message #23 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 06/18] gnu: binutils-final: Provide bash for binary on
 powerpc-linux.
Date: Mon, 15 Mar 2021 23:44:59 -0700
From: Efraim Flashner <efraim <at> flashner.co.il>

* gnu/packages/commencement.scm (binutils-final)[arguments]: On
powerpc-linux allow a reference to static-bash-for-glibc.
[inputs]: On powerpc-linux add static-bash-for-glibc.
---
 gnu/packages/commencement.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 86bc7a602da..c0732bbf62d 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3514,9 +3514,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
     (arguments
      `(#:guile ,%bootstrap-guile
        #:implicit-inputs? #f
-       #:allowed-references ("out" ,glibc-final)
+       #:allowed-references
+       ,@(match (%current-system)
+         ("powerpc-linux"
+          `(("out" ,glibc-final ,static-bash-for-glibc)))
+         (_
+          `(("out" ,glibc-final))))
        ,@(package-arguments binutils)))
-    (inputs (%boot2-inputs))))
+    (inputs
+     (match (%current-system)
+       ("powerpc-linux"
+        `(("bash" ,static-bash-for-glibc)
+          ,@(%boot2-inputs)))
+       (_ (%boot2-inputs))))))
 
 (define libstdc++
   ;; Intermediate libstdc++ that will allow us to build the final GCC
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:03 GMT) Full text and rfc822 format available.

Message #26 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 08/18] gnu: bdb-4.8: Fix configure on powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:45:01 -0700
From: Leo Le Bouter <lle-bout <at> zaclys.net>

* gnu/packages/dbm.scm (bdb-4.8)[arguments]: Modify 'configure phase to append
"--build=powerpc64le-unknown-linux-gnu" to configure's flags when compiling for
powerpc64le-linux.

Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
---
 gnu/packages/dbm.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index 82647c0c283..2dd51efb8c9 100644
--- a/gnu/packages/dbm.scm
+++ b/gnu/packages/dbm.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2017, 2018 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2018 Mark H Weaver <mhw <at> netris.org>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout <at> zaclys.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +75,11 @@
                              '("--build=aarch64-unknown-linux-gnu")
                              '())
 
+                       ;; Bdb doesn't recognize powerpc64le as an architecture.
+                       ,@(if (string=? "powerpc64le-linux" (%current-system))
+                             '("--build=powerpc64le-unknown-linux-gnu")
+                             '())
+
                        ,@(if (%current-target-system)         ; cross building
                              '((string-append "--host=" target))
                              '())
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:04 GMT) Full text and rfc822 format available.

Message #29 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, Chris Marusich <cmmarusich <at> gmail.com>,
 Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 04/18] gnu: glibc: Fix ldd path on powerpc*.
Date: Mon, 15 Mar 2021 23:44:57 -0700
From: Leo Le Bouter <lle-bout <at> zaclys.net>

This should avoid some problems, such as "not a dynamic executable" errors.

* gnu/packages/patches/glibc-ldd-powerpc.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm: (glibc)[native-inputs]: Add it.
[arguments]: When building for powerpc* apply it.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
glibc-final)[native-inputs]: Add patch conditionally.

This patch has been adjusted to apply to master.

Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
Signed-off-by: Efraim Flashner <efraim <at> flashner.co.il>
---
 gnu/local.mk                                 |  1 +
 gnu/packages/base.scm                        | 16 +++++++++++++++-
 gnu/packages/commencement.scm                | 10 +++++++++-
 gnu/packages/patches/glibc-ldd-powerpc.patch | 10 ++++++++++
 4 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/glibc-ldd-powerpc.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index cf8849cf598..4bd333e56f2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1120,6 +1120,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hurd-mach-print.patch		\
   %D%/packages/patches/glibc-hurd-magic-pid.patch		\
   %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch	\
+  %D%/packages/patches/glibc-ldd-powerpc.patch			\
   %D%/packages/patches/glibc-ldd-x86_64.patch			\
   %D%/packages/patches/glibc-locales.patch			\
   %D%/packages/patches/glibc-locales-2.28.patch			\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 9aa69cfe773..7c5ac61f01c 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2014 Alex Kost <alezost <at> gmail.com>
 ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837 <at> gmail.com>
-;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
 ;;; Copyright © 2016, 2018 Alex Vong <alexvong1995 <at> gmail.com>
 ;;; Copyright © 2017 Rene Saavedra <rennes <at> openmailbox.org>
@@ -15,6 +15,8 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0 <at> protonmail.com>
+;;; Copyright © 2020 Chris Marusich <cmmarusich <at> gmail.com>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout <at> zaclys.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -890,6 +892,14 @@ the store.")
                                               files)))
                        #t)))
 
+                 ,@(if (target-powerpc?)
+                     '((add-after 'unpack 'apply-patch
+                         (lambda* (#:key inputs #:allow-other-keys)
+                           (let ((patch (assoc-ref inputs
+                                                   "powerpc64le-patch")))
+                             (invoke "patch" "--force" "-p1"
+                                     "-i" patch)))))
+                     '())
                  ,@(if (hurd-target?)
                        '((add-after 'install 'augment-libc.so
                            (lambda* (#:key outputs #:allow-other-keys)
@@ -911,6 +921,10 @@ the store.")
                     ("gettext" ,gettext-minimal)
                     ("python" ,python-minimal)
 
+                    ,@(if (target-powerpc?)
+                        `(("powerpc64le-patch" ,@(search-patches
+                                                   "glibc-ldd-powerpc.patch")))
+                        '())
                     ,@(if (hurd-target?)
                           `(("mig" ,mig)
                             ("perl" ,perl))
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 432910d7a30..93b0c508822 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3313,7 +3313,11 @@ memoized as a function of '%current-system'."
      `(("bison" ,bison-boot0)
        ("texinfo" ,texinfo-boot0)
        ("perl" ,perl-boot0)
-       ("python" ,python-boot0)))
+       ("python" ,python-boot0)
+       ,@(if (target-powerpc?)
+           `(("powerpc64le-patch" ,@(search-patches
+                                      "glibc-ldd-powerpc.patch")))
+           '())))
     (inputs
      `( ;; The boot inputs.  That includes the bootstrap libc.  We don't want
        ;; it in $CPATH, hence the 'pre-configure' phase above.
@@ -3464,6 +3468,10 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
 
    ;; This time we need 'msgfmt' to install all the libc.mo files.
    (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
+                     ,@(if (target-powerpc?)
+                         `(("powerpc64le-patch" ,@(search-patches
+                                                    "glibc-ldd-powerpc.patch")))
+                         '())
                     ("gettext" ,gettext-boot0)))
 
    (propagated-inputs
diff --git a/gnu/packages/patches/glibc-ldd-powerpc.patch b/gnu/packages/patches/glibc-ldd-powerpc.patch
new file mode 100644
index 00000000000..8e899ee99b8
--- /dev/null
+++ b/gnu/packages/patches/glibc-ldd-powerpc.patch
@@ -0,0 +1,10 @@
+diff -r -U3 a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
+--- a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	1970-01-01 01:00:00.000000000 +0100
++++ b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	2020-02-29 00:15:41.080000000 +0100
+@@ -11,5 +11,5 @@
+ # this works for /lib64/ld64.so.x and /lib/ld.so.x as input
+ s_lib64_lib_
+ s_64\.so_\.so_
+-s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_
++s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \1\264\3"_
+ 
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:04 GMT) Full text and rfc822 format available.

Message #32 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 09/18] gnu: guile-avahi: Fix compilation on powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:45:02 -0700
From: Leo Le Bouter <lle-bout <at> zaclys.net>

* gnu/packages/guile-xyz.scm (guile-avahi)[arguments]: Parallel builds fail on
powerpc64le-linux. Set "#:parallel-build?" to "#f".

Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
---
 gnu/packages/guile-xyz.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 2e02f6f4821..449c36e08f0 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -35,6 +35,7 @@
 ;;; Copyright © 2020, 2021 pukkamustard <pukkamustard <at> posteo.net>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me <at> bonfacemunyoki.com>
 ;;; Copyright © 2021 Xinglu Chen <public <at> yoctocell.xyz>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout <at> zaclys.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4284,6 +4285,9 @@ errors.")
                              ,@%gnu-build-system-modules)
          #:make-flags
          '("GUILE_AUTO_COMPILE=0")    ;to prevent guild warnings
+         ;; Parallel builds fail on powerpc64le-linux.
+         ;; See https://lists.nongnu.org/archive/html/guile-avahi-bugs/2021-01/msg00000.html
+         #:parallel-build? #f
          #:phases
          (modify-phases %standard-phases
            (add-before 'check 'fix-guile-avahi-file-name
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:05 GMT) Full text and rfc822 format available.

Message #35 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 10/18] gnu: texlive-bin: Fix compilation on powerpc64le*.
Date: Mon, 15 Mar 2021 23:45:03 -0700
From: Leo Le Bouter <lle-bout <at> zaclys.net>

* gnu/packages/tex.scm (texlive-bin)[arguments]: Append "--disable-luajittex"
and "--disable-mfluajit" to keyword argument "#:configure-flags" on
powerpc64le* because LuaJIT is not ported to powerpc64le* yet. Also set
"#:tests?" to "#f" on powerpc64le*.

Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
---
 gnu/packages/tex.scm | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c0f4ff0fcdc..508537acdaf 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll <at> gmail.com>
 ;;; Copyright © 2020, 2021 Paul Garlick <pgarlick <at> tourbillion-technology.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout <at> zaclys.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -342,14 +343,23 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
          "--with-system-teckit"
          "--with-system-xpdf"
          "--with-system-zlib"
-         "--with-system-zziplib")
-
-      ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
-      ;; XXX FIXME fix luajit properly on mips64 and aarch64.
+         "--with-system-zziplib"
+         ;; LuaJIT is not ported to powerpc64le* yet.
+         ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
+                                                 (%current-system)))
+               '("--disable-luajittex"
+                 "--disable-mfluajit")
+               '()))
+
+      ;; Disable tests on some architectures to cope with a failure of
+      ;; luajiterr.test.
+      ;; XXX FIXME fix luajit properly on these architectures.
       #:tests? ,(let ((s (or (%current-target-system)
                              (%current-system))))
                   (not (or (string-prefix? "aarch64" s)
-                           (string-prefix? "mips64" s))))
+                           (string-prefix? "mips64" s)
+                           (string-prefix? "powerpc64le" s))))
+
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'configure-ghostscript-executable
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:05 GMT) Full text and rfc822 format available.

Message #38 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 12/18] gnu: libelf: Fix compilation for powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:45:05 -0700
From: Leo Le Bouter <lle-bout <at> zaclys.net>

* gnu/packages/elf.scm (libelf)[arguments]: Modify replacement 'configure phase
to invoke "./configure" with "--host=powerpc64le-unknown-linux-gnu" on
powerpc64le-linux.

Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
---
 gnu/packages/elf.scm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 2e21cab48d1..aab912648b2 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2020 Mark Wielaard <mark <at> klomp.org>
 ;;; Copyright © 2020 Michael Rohleder <mike <at> rohleder.de>
+;;; Copyright © 2021 Leo Le Bouter <lle-bout <at> zaclys.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -211,6 +212,10 @@ static analysis of the ELF binaries at hand.")
                (setenv "CONFIG_SHELL" (which "bash"))
                (invoke "./configure"
                        (string-append "--prefix=" out)
+                       ,@(if (string=? "powerpc64le-linux"
+                                       (%current-system))
+                             '("--host=powerpc64le-unknown-linux-gnu")
+                             '())
                        ,@(if (string=? "aarch64-linux"
                                        (%current-system))
                              '("--host=aarch64-unknown-linux-gnu")
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:05 GMT) Full text and rfc822 format available.

Message #41 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 11/18] gnu: texlive-latex-base: Fix compilation on
 powerpc64le*.
Date: Mon, 15 Mar 2021 23:45:04 -0700
From: Leo Le Bouter <lle-bout <at> zaclys.net>

* gnu/packages/tex.scm (texlive-latex-base)[arguments]: LuaJIT is not ported to
powerpc64le* yet. Update replacement 'build phase to add "luajittex" within the
"disabled-formats" list on powerpc64le*.

Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
---
 gnu/packages/tex.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 508537acdaf..86cb1ee4558 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier <at> member.fsf.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2016 Roel Janssen <roel <at> gnu.org>
-;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2016 Federico Beffa <beffa <at> fbengineering.ch>
 ;;; Copyright © 2016 Thomas Danckaert <post <at> thomasdanckaert.be>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado <at> elephly.net>
@@ -2520,6 +2520,10 @@ formats.")
                           "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex"
                           "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex"
                           "luacsplain luatex"
+                          ,@(if (string-prefix? "powerpc64le"
+                                                (or (%current-target-system)
+                                                    (%current-system)))
+                              '("luajittex") '())
                           "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex"
                           "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex"
                           "mptopdf pdftex" "uplatex euptex" "jadetex pdftex"
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:06 GMT) Full text and rfc822 format available.

Message #44 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 13/18] Add powerpc64le-linux as a supported Guix architecture.
Date: Mon, 15 Mar 2021 23:45:06 -0700
This makes powerpc64le-linux a supported architecture for Guix, but not for
Guix System.

* Makefile.am (SUPPORTED_SYSTEMS): Add an entry for powerpc64le-linux.
* etc/guix-install.sh (chk_sys_arch): Same.
* guix/packages.scm (%supported-systems): Same.
* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): Same.
* tests/guix-build.sh (all_systems): Same.
---
 Makefile.am         | 4 +++-
 etc/guix-install.sh | 4 ++++
 guix/packages.scm   | 4 +++-
 m4/guix.m4          | 3 ++-
 tests/guix-build.sh | 6 ++++--
 5 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index f40d9509bee..1c2d45527c7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,6 +14,7 @@
 # Copyright © 2018 Oleg Pykhalov <go.wigust <at> gmail.com>
 # Copyright © 2018 Alex Vong <alexvong1995 <at> gmail.com>
 # Copyright © 2019 Efraim Flashner <efraim <at> flashner.co.il>
+# Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 #
 # This file is part of GNU Guix.
 #
@@ -799,7 +800,8 @@ SOURCE_TARBALLS =					\
   $(foreach ext,tar.gz,$(PACKAGE_FULL_TARNAME).$(ext))
 
 # Systems supported by Guix.
-SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux
+SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux \
+  powerpc64le-linux
 
 # Guix binary tarballs.
 BINARY_TARBALLS =							\
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 94c04aa646a..c84e7b75779 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -8,6 +8,7 @@
 # Copyright © 2020 Simon Tournier <zimon.toutoune <at> gmail.com>
 # Copyright © 2020 Daniel Brooks <db48x <at> db48x.net>
 # Copyright © 2021 Jakub Kądziołka <kuba <at> kadziolka.net>
+# Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 #
 # This file is part of GNU Guix.
 #
@@ -187,6 +188,9 @@ chk_sys_arch()
         armv7l)
             local arch=armhf
             ;;
+        ppc64le | powerpc64le)
+            local arch=powerpc64le
+            ;;
         *)
             _err "${ERR}Unsupported CPU type: ${arch}"
             exit 1
diff --git a/guix/packages.scm b/guix/packages.scm
index a057a88c638..55e5e70b8c6 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Alex Kost <alezost <at> gmail.com>
 ;;; Copyright © 2017, 2019, 2020 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2019 Marius Bakke <mbakke <at> fastmail.com>
+;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -345,7 +346,8 @@ name of its URI."
 (define %supported-systems
   ;; This is the list of system types that are supported.  By default, we
   ;; expect all packages to build successfully here.
-  '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux" "i586-gnu"))
+  '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux" "i586-gnu"
+    "powerpc64le-linux"))
 
 (define %hurd-systems
   ;; The GNU/Hurd systems for which support is being developed.
diff --git a/m4/guix.m4 b/m4/guix.m4
index c1ce0876fa0..f0d85a28d6d 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -2,6 +2,7 @@ dnl GNU Guix --- Functional package management for GNU
 dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo <at> gnu.org>
 dnl Copyright © 2014 Mark H Weaver <mhw <at> netris.org>
 dnl Copyright © 2017 Efraim Flashner <efraim <at> flashner.co.il>
+dnl Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 dnl
 dnl This file is part of GNU Guix.
 dnl
@@ -88,7 +89,7 @@ courageous and port the GNU System distribution to it (see
   # Currently only Linux-based systems are supported, and only on some
   # platforms.
   case "$guix_system" in
-    x86_64-linux|i686-linux|armhf-linux|aarch64-linux)
+    x86_64-linux|i686-linux|armhf-linux|aarch64-linux|powerpc64le-linux)
       ;;
     *)
       if test "x$guix_courageous" = "xyes"; then
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index b7602e668c4..e20702c521b 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -1,6 +1,7 @@
 # GNU Guix --- Functional package management for GNU
 # Copyright © 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo <at> gnu.org>
 # Copyright © 2020 Marius Bakke <mbakke <at> fastmail.com>
+# Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 #
 # This file is part of GNU Guix.
 #
@@ -61,8 +62,9 @@ guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
 test `guix build sed -s x86_64-linux -d | wc -l` = 1
 
 # Passing multiple '-s' flags.
-all_systems="-s x86_64-linux -s i686-linux -s armhf-linux -s aarch64-linux"
-test `guix build sed $all_systems -d | sort -u | wc -l` = 4
+all_systems="-s x86_64-linux -s i686-linux -s armhf-linux -s aarch64-linux \
+-s powerpc64le-linux"
+test `guix build sed $all_systems -d | sort -u | wc -l` = 5
 
 # Check there's no weird memoization effect leading to erroneous results.
 # See <https://bugs.gnu.org/40482>.
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:06 GMT) Full text and rfc822 format available.

Message #47 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 14/18] syscalls: Fix clone on powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:45:07 -0700
This makes the clone procedure work correctly and fixes some test failures on
powerpc64le-linux, including tests/containers.scm.

* guix/build/syscalls.scm (clone): Add an entry for ppc64le.
---
 guix/build/syscalls.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 4379768f5e3..a2c1d80fb1a 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -1021,6 +1021,7 @@ Turning finalization off shuts down the finalization thread as a side effect."
                        ("mips64" 5055)
                        ("armv7l" 120)
                        ("aarch64" 220)
+                       ("ppc64le" 120)
                        (_ #f))))
     (lambda (flags)
       "Create a new child process by duplicating the current parent process.
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:06 GMT) Full text and rfc822 format available.

Message #50 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 15/18] syscalls: Fix RNDADDTOENTCNT on powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:45:08 -0700
This fixes the failing test add-to-entropy-count in tests/syscalls.scm on
powerpc64le-linux.

* guix/build/syscalls.scm (RNDADDTOENTCNT): When %host-type starts with
"powerpc64le", set this to #x80045201.  Otherwise, set it to #x40045201 as
before.
---
 guix/build/syscalls.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index a2c1d80fb1a..8886fc0fb94 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net>
 ;;; Copyright © 2020 Julien Lepiller <julien <at> lepiller.eu>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
+;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -942,7 +943,11 @@ backend device."
 ;;;
 
 ;; From <uapi/linux/random.h>.
-(define RNDADDTOENTCNT #x40045201)
+(define RNDADDTOENTCNT
+  ;; Avoid using %current-system here to avoid depending on host-side code.
+  (if (string-prefix? "powerpc64le" %host-type)
+      #x80045201
+      #x40045201))
 
 (define (add-to-entropy-count port-or-fd n)
   "Add N to the kernel's entropy count (the value that can be read from
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:07 GMT) Full text and rfc822 format available.

Message #53 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 16/18] ci: %cross-targets: Add powerpc64le-linux-gnu.
Date: Mon, 15 Mar 2021 23:45:09 -0700
* gnu/ci.scm (%cross-targets): Add an entry for powerpc64le-linux-gnu.
---
 gnu/ci.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/ci.scm b/gnu/ci.scm
index acd05a18b47..eb07e69a179 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -156,6 +156,7 @@ SYSTEM."
     "arm-linux-gnueabihf"
     "aarch64-linux-gnu"
     "powerpc-linux-gnu"
+    "powerpc64le-linux-gnu"
     "riscv64-linux-gnu"
     "i586-pc-gnu"                                 ;aka. GNU/Hurd
     "i686-w64-mingw32"
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:07 GMT) Full text and rfc822 format available.

Message #56 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 17/18] utils: Fix target-64bit? on powerpc64le-linux.
Date: Mon, 15 Mar 2021 23:45:10 -0700
* guix/utils.scm (target-64bit?): Change the string from "ppc64" to
"powerpc64", which matches Guix system names like "powerpc64le-linux".
---
 guix/utils.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/utils.scm b/guix/utils.scm
index fc57620319e..2dd1ddeb8a7 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -549,7 +549,7 @@ a character other than '@'."
 
 (define* (target-64bit? #:optional (system (or (%current-target-system)
                                                (%current-system))))
-  (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "ppc64")))
+  (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
 
 (define* (cc-for-target #:optional (target (%current-target-system)))
   (if target
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 06:48:08 GMT) Full text and rfc822 format available.

Message #59 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Cc: Chris Marusich <cmmarusich <at> gmail.com>
Subject: [PATCH 18/18] gnu: sed: Make it build on SELinux-enabled kernels.
Date: Mon, 15 Mar 2021 23:45:11 -0700
Fixes: <https://bugs.gnu.org/41498>.

* gnu/packages/base.scm (sed)[arguments]: New field.  This adds a
snippet, equivalent to the patch submitted upstream, which fixes an
issue that prevents sed from building on SELinux-enabled kernels.

Adjusted by Efraim Flashner to apply to master.
---
 gnu/packages/base.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 7c5ac61f01c..f0f93533986 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -148,6 +148,22 @@ including, for example, recursive directory searching.")
              (base32
               "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk"))))
    (build-system gnu-build-system)
+   (arguments
+    ;; TODO: When merging this into core-updates, keep the version of
+    ;; this code (with comment!) applied as a snippet.
+    `(,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
+                                              (%current-system)))
+          `(#:phases
+            (modify-phases %standard-phases
+              (add-after 'unpack 'allow-building-on-selinux-systems
+                (lambda _
+                  (substitute* "Makefile.in"
+                    (("^  abs_srcdir='\\$\\(abs_srcdir\\)'.*" previous-line)
+                     (string-append
+                      previous-line
+                      "  CONFIG_HEADER='$(CONFIG_HEADER)'\t\t\\\n")))
+                  #t))))
+          '())))
    (synopsis "Stream editor")
    (native-inputs
     `(("perl" ,perl)))                            ;for tests
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 07:47:01 GMT) Full text and rfc822 format available.

Message #62 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Chris Marusich <cmmarusich <at> gmail.com>
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: [PATCH 04/18] gnu: glibc: Fix ldd path on powerpc*.
Date: Tue, 16 Mar 2021 09:45:26 +0200
[Message part 1 (text/plain, inline)]
I would like to note that I also tested this patch on powerpc-linux and
with it I was able to use glibc versions later than 2.30. So
'target-powerpc?' is correct, its not just powerpc64le.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 07:51:02 GMT) Full text and rfc822 format available.

Message #65 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Chris Marusich <cmmarusich <at> gmail.com>
Cc: 47182 <at> debbugs.gnu.org
Subject: Re: [bug#47182] [PATCH 07/18] gnu: binutils-final: Support more
 Power architectures.
Date: Tue, 16 Mar 2021 09:49:29 +0200
[Message part 1 (text/plain, inline)]
On Mon, Mar 15, 2021 at 11:45:00PM -0700, Chris Marusich wrote:
> * gnu/packages/commencement.scm (binutils-final)[arguments]: When checking if
> the system is a Power architecture, instead of hard-coding "powerpc-linux",
> use the target-powerpc? procedure so it works on more Power architectures.
> [inputs]: Likewise.
> ---
>  gnu/packages/commencement.scm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index c0732bbf62d..d4511ed9148 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -3516,14 +3516,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
>         #:implicit-inputs? #f
>         #:allowed-references
>         ,@(match (%current-system)
> -         ("powerpc-linux"
> +         ((? target-powerpc?)

I wonder if this would be better as ,@(if target-powerpc?
I didn't test to see how it would work with cross compiling, I don't
know if binutils-final gets built in that case.

>            `(("out" ,glibc-final ,static-bash-for-glibc)))
>           (_
>            `(("out" ,glibc-final))))
>         ,@(package-arguments binutils)))
>      (inputs
>       (match (%current-system)
> -       ("powerpc-linux"
> +       ((? target-powerpc?)
>          `(("bash" ,static-bash-for-glibc)
>            ,@(%boot2-inputs)))
>         (_ (%boot2-inputs))))))
> -- 
> 2.26.2
> 
> 
> 
> 

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 07:54:02 GMT) Full text and rfc822 format available.

Message #68 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Chris Marusich <cmmarusich <at> gmail.com>
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: [bug#47182] [PATCH 10/18] gnu: texlive-bin: Fix compilation on
 powerpc64le*.
Date: Tue, 16 Mar 2021 09:53:11 +0200
[Message part 1 (text/plain, inline)]
On Mon, Mar 15, 2021 at 11:45:03PM -0700, Chris Marusich wrote:
> From: Leo Le Bouter <lle-bout <at> zaclys.net>
> 
> * gnu/packages/tex.scm (texlive-bin)[arguments]: Append "--disable-luajittex"
> and "--disable-mfluajit" to keyword argument "#:configure-flags" on
> powerpc64le* because LuaJIT is not ported to powerpc64le* yet. Also set
> "#:tests?" to "#f" on powerpc64le*.
> 
> Signed-off-by: Chris Marusich <cmmarusich <at> gmail.com>
> ---
>  gnu/packages/tex.scm | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
> index c0f4ff0fcdc..508537acdaf 100644
> --- a/gnu/packages/tex.scm
> +++ b/gnu/packages/tex.scm
> @@ -15,6 +15,7 @@
>  ;;; Copyright © 2020 Vincent Legoll <vincent.legoll <at> gmail.com>
>  ;;; Copyright © 2020, 2021 Paul Garlick <pgarlick <at> tourbillion-technology.com>
>  ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
> +;;; Copyright © 2021 Leo Le Bouter <lle-bout <at> zaclys.net>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -342,14 +343,23 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
>           "--with-system-teckit"
>           "--with-system-xpdf"
>           "--with-system-zlib"
> -         "--with-system-zziplib")
> -
> -      ;; Disable tests on mips64/aarch64 to cope with a failure of luajiterr.test.
> -      ;; XXX FIXME fix luajit properly on mips64 and aarch64.
> +         "--with-system-zziplib"
> +         ;; LuaJIT is not ported to powerpc64le* yet.
> +         ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
> +                                                 (%current-system)))
> +               '("--disable-luajittex"
> +                 "--disable-mfluajit")
> +               '()))
> +
> +      ;; Disable tests on some architectures to cope with a failure of
> +      ;; luajiterr.test.
> +      ;; XXX FIXME fix luajit properly on these architectures.
>        #:tests? ,(let ((s (or (%current-target-system)
>                               (%current-system))))
>                    (not (or (string-prefix? "aarch64" s)
> -                           (string-prefix? "mips64" s))))
> +                           (string-prefix? "mips64" s)
> +                           (string-prefix? "powerpc64le" s))))
> +

we can probably change this to use cute in core-updates. I don't know if
changing it here will cause rebuilds on aarch64.

>        #:phases
>        (modify-phases %standard-phases
>          (add-after 'unpack 'configure-ghostscript-executable
> -- 
> 2.26.2
> 
> 
> 
> 

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 08:31:02 GMT) Full text and rfc822 format available.

Message #71 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182 <at> debbugs.gnu.org
Subject: Re: [bug#47182] [PATCH 01/18] gnu: bootstrap: Add support for
 powerpc64le-linux.
Date: Tue, 16 Mar 2021 01:30:06 -0700
Chris Marusich <cmmarusich <at> gmail.com> writes:

> * gnu/packages/bootstrap.scm (%bootstrap-executables)
> (bootstrap-executable-file-name, bootstrap-guile-url-path)
> (bootstrap-guile-hash, %bootstrap-coreutils&co, %bootstrap-binutils)
> (%bootstrap-glibc, %bootstrap-gcc): Add entries for powerpc64le-linux.
> (%bootstrap-executable-base-urls): Add an entry for alpha.gnu.org.

Unfortunately, despite my prior claims to the contrary, this change
seems to trigger a rebuild of the hello package and the gcc-toolchain
package on x86_64-linux, which means it's going to trigger a full-world
rebuild, after all.  You can see this yourself by running
"./pre-inst-env guix build -d hello gcc-toolchain" on master (on an
x86_64-linux machine), applying this patch, and then running the command
again - the derivations change.

Is there any way to avoid this?  I will try to think of something, but
suggestions would be welcome in the meantime...  We can't merge this
patch series until we fix this.

It also makes me want to double check the other patches to make sure
they don't accidentally rebuild stuff.  I thought I verified that they
didn't, but now I'm not so sure.

-- 
Chris




Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Tue, 16 Mar 2021 09:34:02 GMT) Full text and rfc822 format available.

Message #74 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Léo Le Bouter <lle-bout <at> zaclys.net>
To: 47182 <at> debbugs.gnu.org
Subject: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Tue, 16 Mar 2021 10:33:14 +0100
[Message part 1 (text/plain, inline)]
As discussed on IRC, it turns out no world rebuild happens:

$ ./pre-inst-env guix build --system=x86_64-linux -d --no-grafts
texlive-bin texlive-latex-base libelf bdb sed hello gcc-toolchain
/gnu/store/9f3vsmg2c9qa91r1dlffbnpr0kbzpvxy-gcc-toolchain-10.2.0.drv
/gnu/store/sihk9hiiqhqkckjs4dzl2vdk5dfv2923-hello-2.10.drv
/gnu/store/kmpw9qv3pdc31q3b3mnsr8ypqkcd4q95-sed-4.8.drv
/gnu/store/2vq0yvhrn6mk2lr40mabhnx6r0pdrccn-bdb-6.2.32.drv
/gnu/store/mj1q7a8x4hv2c5n1xqnakxhsf5fny609-libelf-0.8.13.drv
/gnu/store/qhnf8nqblgz22id4fzn2bb94mbdzghpk-texlive-latex-base-
51265.drv
/gnu/store/pwhz1k213dd8bsc9sq85vds1cqjwc1by-texlive-bin-20190410.drv

With commit 16cc8f8851ee38dfaa74ef976b0609a837ba682d (current wip-
ppc64le-for-master) which includes those patches AIUI.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Wed, 17 Mar 2021 06:59:01 GMT) Full text and rfc822 format available.

Message #77 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: Léo Le Bouter <lle-bout <at> zaclys.net>
Cc: 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Tue, 16 Mar 2021 23:58:07 -0700
Léo Le Bouter <lle-bout <at> zaclys.net> writes:

> As discussed on IRC, it turns out no world rebuild happens:

Yes, and Christopher Baines explained that the outputs matter, not the
derivations themselves.  The outputs of hello and gcc-toolchain are the
same on master as they are on the tip of wip-ppc64le-for-master, so I
think I was just confused: we are good to merge to master, after all.

-- 
Chris




Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Wed, 17 Mar 2021 20:34:02 GMT) Full text and rfc822 format available.

Message #80 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: Chris Marusich <cmmarusich <at> gmail.com>
Cc: Léo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: [bug#47182] [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Wed, 17 Mar 2021 20:33:23 +0000
[Message part 1 (text/plain, inline)]
Chris Marusich <cmmarusich <at> gmail.com> writes:

> Léo Le Bouter <lle-bout <at> zaclys.net> writes:
>
>> As discussed on IRC, it turns out no world rebuild happens:
>
> Yes, and Christopher Baines explained that the outputs matter, not the
> derivations themselves.  The outputs of hello and gcc-toolchain are the
> same on master as they are on the tip of wip-ppc64le-for-master, so I
> think I was just confused: we are good to merge to master, after all.

Thanks for sending these patches, that means they've appeared in
Patchwork [1] and that the Guix Data Service has processed it as a patch
series [2].

1: https://patches.guix-patches.cbaines.net/project/guix-patches/list/?series=7335
2: https://data.guix-patches.cbaines.net/compare?base_commit=341dfe7eda4972af0a027357015ea595314438b0&target_commit=4757434caeac0077f67583701653a7b89a335e61

Looking at that comparison, it seems good to merge! The new
powerpc64le-linux derivations could be computed, and there's a
relatively small number of x86_64-linux derivations affected [3], which
is good, as this can be merged to master then.

3: https://data.guix-patches.cbaines.net/compare/package-derivations?base_commit=341dfe7eda4972af0a027357015ea595314438b0&target_commit=4757434caeac0077f67583701653a7b89a335e61&system=x86_64-linux&target=none&build_change=&after_name=&limit_results=&all_results=on

Chris
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Thu, 18 Mar 2021 06:09:01 GMT) Full text and rfc822 format available.

Message #83 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: Christopher Baines <mail <at> cbaines.net>
Cc: Léo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Wed, 17 Mar 2021 23:08:26 -0700
Christopher Baines <mail <at> cbaines.net> writes:

> Chris Marusich <cmmarusich <at> gmail.com> writes:
>
>> Léo Le Bouter <lle-bout <at> zaclys.net> writes:
>>
>>> As discussed on IRC, it turns out no world rebuild happens:
>>
>> Yes, and Christopher Baines explained that the outputs matter, not the
>> derivations themselves.  The outputs of hello and gcc-toolchain are the
>> same on master as they are on the tip of wip-ppc64le-for-master, so I
>> think I was just confused: we are good to merge to master, after all.
>
> Thanks for sending these patches, that means they've appeared in
> Patchwork [1] and that the Guix Data Service has processed it as a patch
> series [2].
>
> 1: https://patches.guix-patches.cbaines.net/project/guix-patches/list/?series=7335
> 2:
> https://data.guix-patches.cbaines.net/compare?base_commit=341dfe7eda4972af0a027357015ea595314438b0&target_commit=4757434caeac0077f67583701653a7b89a335e61
>
> Looking at that comparison, it seems good to merge! The new
> powerpc64le-linux derivations could be computed, and there's a
> relatively small number of x86_64-linux derivations affected [3], which
> is good, as this can be merged to master then.
>
> 3:
> https://data.guix-patches.cbaines.net/compare/package-derivations?base_commit=341dfe7eda4972af0a027357015ea595314438b0&target_commit=4757434caeac0077f67583701653a7b89a335e61&system=x86_64-linux&target=none&build_change=&after_name=&limit_results=&all_results=on
>
> Chris

Awesome!  Thank you for this additional information.  It's very helpful.

It looks like a few hundred packages, according to that page.  I've
looked at the patches and I'm not sure exactly why they are rebuilt.
One guess is that perhaps changes to build-side code (e.g.,
guix/build/syscalls.scm) are getting included in the output of some
derivations (maybe module-import-compiled derivations?) whose knock-on
effects down the line are not obvious.

In any case, it's "only" a few hundred packages, judging by the page
Chris linked.  I would argue that it is better to merge this for the
release and just rebuild those few hundred packages, rather than to
postpone a change that will make it significantly easier for curious
people to hop in and try out / help out with the powerpc64le-linux port.
I think we've done a pretty good job of limiting the "rebuild" blast
radius, so I think we should go ahead and merge it.

-- 
Chris




Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Thu, 18 Mar 2021 06:11:01 GMT) Full text and rfc822 format available.

Message #86 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Wed, 17 Mar 2021 23:10:23 -0700
Efraim Flashner <efraim <at> flashner.co.il> writes:

> On Mon, Mar 15, 2021 at 11:45:00PM -0700, Chris Marusich wrote:
>> * gnu/packages/commencement.scm (binutils-final)[arguments]: When checking if
>> the system is a Power architecture, instead of hard-coding "powerpc-linux",
>> use the target-powerpc? procedure so it works on more Power architectures.
>> [inputs]: Likewise.
>> ---
>>  gnu/packages/commencement.scm | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
>> index c0732bbf62d..d4511ed9148 100644
>> --- a/gnu/packages/commencement.scm
>> +++ b/gnu/packages/commencement.scm
>> @@ -3516,14 +3516,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
>>         #:implicit-inputs? #f
>>         #:allowed-references
>>         ,@(match (%current-system)
>> -         ("powerpc-linux"
>> +         ((? target-powerpc?)
>
> I wonder if this would be better as ,@(if target-powerpc?
> I didn't test to see how it would work with cross compiling, I don't
> know if binutils-final gets built in that case.

Are the final inputs ever cross-compiled?  I'm having trouble thinking
of a case when binutils-final would ever be cross-compiled.  The package
(like all the final inputs) exist specifically to provide the native GCC
used for building the rest of the things in the system.  In a case where
you want to cross-compile e.g. GNU Hello, Guix first uses these final
inputs to (natively) build a cross compilation toolchain, and then it
will use that one to cross-compile GNU Hello.

I don't think we need to account for cross-compliation of the final
inputs, but please correct me if I'm wrong.

-- 
Chris




Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Thu, 18 Mar 2021 06:17:02 GMT) Full text and rfc822 format available.

Message #89 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Wed, 17 Mar 2021 23:16:07 -0700
Efraim Flashner <efraim <at> flashner.co.il> writes:

>>        #:tests? ,(let ((s (or (%current-target-system)
>>                               (%current-system))))
>>                    (not (or (string-prefix? "aarch64" s)
>> -                           (string-prefix? "mips64" s))))
>> +                           (string-prefix? "mips64" s)
>> +                           (string-prefix? "powerpc64le" s))))
>> +
>
> we can probably change this to use cute in core-updates. I don't know if
> changing it here will cause rebuilds on aarch64.

The result of unquoting the expression will be either #t or #f,
depending on the system.  For an aarch64 system, the string s hasn't
changed (it'll still start with "aarch64", right?).  Therefore, my
understanding is that this change here will not alter the package
definition; it will still say "#:tests? #f", just like it did before, on
an aarch64 system.  Is there something else I'm missing?

-- 
Chris




Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Thu, 18 Mar 2021 08:31:01 GMT) Full text and rfc822 format available.

Message #92 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Chris Marusich <cmmarusich <at> gmail.com>
Cc: 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Thu, 18 Mar 2021 10:29:47 +0200
[Message part 1 (text/plain, inline)]
On Wed, Mar 17, 2021 at 11:10:23PM -0700, Chris Marusich wrote:
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> > On Mon, Mar 15, 2021 at 11:45:00PM -0700, Chris Marusich wrote:
> >> * gnu/packages/commencement.scm (binutils-final)[arguments]: When checking if
> >> the system is a Power architecture, instead of hard-coding "powerpc-linux",
> >> use the target-powerpc? procedure so it works on more Power architectures.
> >> [inputs]: Likewise.
> >> ---
> >>  gnu/packages/commencement.scm | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> >> index c0732bbf62d..d4511ed9148 100644
> >> --- a/gnu/packages/commencement.scm
> >> +++ b/gnu/packages/commencement.scm
> >> @@ -3516,14 +3516,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
> >>         #:implicit-inputs? #f
> >>         #:allowed-references
> >>         ,@(match (%current-system)
> >> -         ("powerpc-linux"
> >> +         ((? target-powerpc?)
> >
> > I wonder if this would be better as ,@(if target-powerpc?
> > I didn't test to see how it would work with cross compiling, I don't
> > know if binutils-final gets built in that case.
> 
> Are the final inputs ever cross-compiled?  I'm having trouble thinking
> of a case when binutils-final would ever be cross-compiled.  The package
> (like all the final inputs) exist specifically to provide the native GCC
> used for building the rest of the things in the system.  In a case where
> you want to cross-compile e.g. GNU Hello, Guix first uses these final
> inputs to (natively) build a cross compilation toolchain, and then it
> will use that one to cross-compile GNU Hello.
> 
> I don't think we need to account for cross-compliation of the final
> inputs, but please correct me if I'm wrong.
> 

I first tried to cross compile binutils-final from x86_64 but it failed
because all the mes packages don't support powerpc yet. Then I tried
emulating an aarch64 machine to cross compile binutils-final and that
failed at make-boot0. I think we can assume that binutils-final (and the
other -final packages) aren't going to be cross compiled.

,@(if might be cleaner to look at, but ,@(match makes it easier to
make change later without worrying about nested if statements. Which
hopefully shouldn't be an issue anyway for binutils-final.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Thu, 18 Mar 2021 08:35:02 GMT) Full text and rfc822 format available.

Message #95 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Chris Marusich <cmmarusich <at> gmail.com>
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Thu, 18 Mar 2021 10:34:09 +0200
[Message part 1 (text/plain, inline)]
On Wed, Mar 17, 2021 at 11:16:07PM -0700, Chris Marusich wrote:
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> >>        #:tests? ,(let ((s (or (%current-target-system)
> >>                               (%current-system))))
> >>                    (not (or (string-prefix? "aarch64" s)
> >> -                           (string-prefix? "mips64" s))))
> >> +                           (string-prefix? "mips64" s)
> >> +                           (string-prefix? "powerpc64le" s))))
> >> +
> >
> > we can probably change this to use cute in core-updates. I don't know if
> > changing it here will cause rebuilds on aarch64.
> 
> The result of unquoting the expression will be either #t or #f,
> depending on the system.  For an aarch64 system, the string s hasn't
> changed (it'll still start with "aarch64", right?).  Therefore, my
> understanding is that this change here will not alter the package
> definition; it will still say "#:tests? #f", just like it did before, on
> an aarch64 system.  Is there something else I'm missing?
> 

I like the way it looks better if we use something like

#:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
                                               (%current-system)))
                   '("aarch64" "powerpc64le" "mips64"))
            '#f '#t)

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#47182; Package guix-patches. (Fri, 19 Mar 2021 06:23:02 GMT) Full text and rfc822 format available.

Message #98 received at 47182 <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: Leo Le Bouter <lle-bout <at> zaclys.net>, 47182 <at> debbugs.gnu.org
Subject: Re: bug#47182: [PATCH 00/18] Add support for powerpc64le-linux
 (wip-ppc64le-for-master)
Date: Thu, 18 Mar 2021 23:22:29 -0700
[Message part 1 (text/plain, inline)]
Efraim Flashner <efraim <at> flashner.co.il> writes:

> On Wed, Mar 17, 2021 at 11:16:07PM -0700, Chris Marusich wrote:
>> Efraim Flashner <efraim <at> flashner.co.il> writes:
>> 
>> >>        #:tests? ,(let ((s (or (%current-target-system)
>> >>                               (%current-system))))
>> >>                    (not (or (string-prefix? "aarch64" s)
>> >> -                           (string-prefix? "mips64" s))))
>> >> +                           (string-prefix? "mips64" s)
>> >> +                           (string-prefix? "powerpc64le" s))))
>> >> +
>> >
>> > we can probably change this to use cute in core-updates. I don't know if
>> > changing it here will cause rebuilds on aarch64.
>> 
>> The result of unquoting the expression will be either #t or #f,
>> depending on the system.  For an aarch64 system, the string s hasn't
>> changed (it'll still start with "aarch64", right?).  Therefore, my
>> understanding is that this change here will not alter the package
>> definition; it will still say "#:tests? #f", just like it did before, on
>> an aarch64 system.  Is there something else I'm missing?
>> 
>
> I like the way it looks better if we use something like
>
> #:tests? ,(if (any (cute string-prefix? <> (or (%current-target-system)
>                                                (%current-system)))
>                    '("aarch64" "powerpc64le" "mips64"))
>             '#f '#t)

Both forms achieve the same result.  I honestly think either would be
fine.  Therefore, I don't intend to change the commit corresponding to
this specific patch.  However, if you went and changed it per above, I
wouldn't mind at all.

-- 
Chris
[signature.asc (application/pgp-signature, inline)]

Reply sent to Chris Marusich <cmmarusich <at> gmail.com>:
You have taken responsibility. (Wed, 24 Mar 2021 06:38:01 GMT) Full text and rfc822 format available.

Notification sent to Chris Marusich <cmmarusich <at> gmail.com>:
bug acknowledged by developer. (Wed, 24 Mar 2021 06:38:01 GMT) Full text and rfc822 format available.

Message #103 received at 47182-done <at> debbugs.gnu.org (full text, mbox):

From: Chris Marusich <cmmarusich <at> gmail.com>
To: 47182-done <at> debbugs.gnu.org
Subject: Merged to master
Date: Tue, 23 Mar 2021 23:36:46 -0700
[Message part 1 (text/plain, inline)]
Hi,

I have applied this patch series to the master branch and pushed it to
Savannah.  The final commit in the series is
65c46e79e0495fe4d32f6f2725d7233fff10fd70.

Before pushing, I verified again that it still builds both on a Debian
ppc64le machine, as well as on a Fedora amd64 machine.

-- 
Chris
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 21 Apr 2021 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.