GNU bug report logs - #50091
[PATCH 00/21] Add riscv64 support

Previous Next

Package: guix-patches;

Reported by: Efraim Flashner <efraim <at> flashner.co.il>

Date: Tue, 17 Aug 2021 10:13:02 UTC

Severity: normal

Tags: patch

Done: Efraim Flashner <efraim <at> flashner.co.il>

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 50091 in the body.
You can then email your comments to 50091 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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:13:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Efraim Flashner <efraim <at> flashner.co.il>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 17 Aug 2021 10:13:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: guix-patches <at> gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 00/21] Add riscv64 support
Date: Tue, 17 Aug 2021 13:10:00 +0300
This is the current tree for wip-riscv, which I rebase regularly on top
of core-updates-frozen. I'm not in love with raw-build-guile3 in
gnu/packages/bootstrap but I wasn't able to find another way to make it
work. I'll add some comments in response to the patches.

Everything was built using a SiFive HiFive Unmatched board¹. As a
comparison, my pine64 passed the build phase in mesa in 89 minutes, and
this board built it in 66 minutes.

¹ https://www.sifive.com/boards/hifive-unmatched

Efraim Flashner (21):
  utils: Define 'target-riscv?' predicate.
  gnu: bootstrap: Add support for riscv64-linux.
  gnu: gcc-boot0: Use libstdc++-boot0-gcc7 on riscv64-linux.
  gnu: %boot3-inputs: Add missing input.
  gnu: guile: Fix building on riscv64-linux.
  gnu: %final-inputs: Add implied gcc:lib input.
  gnu: bdb: Fix building on riscv64-linux.
  gnu: elfutils: Fix building on riscv64-linux.
  gnu: pcre: Fix building on riscv64-linux.
  gnu: openssl: Fix build on riscv64-linux.
  gnu: libtool: Fix building on riscv64-linux.
  gnu: openblas: Fix building on riscv64-linux.
  gnu: mesa: Add support for riscv64-linux.
  gnu: pcre2: Fix building on riscv64-linux.
  gnu: icu4c: Skip tests on riscv64-linux.
  gnu: openblas-ilp64: Add riscv64-linux as a supported architecture.
  gnu: openlibm: Remove riscv64-linux from supported systems.
  gnu: texlive-bin: Fix building on riscv64-linux.
  gnu: texlive-updmap.cfg: Update hash.
  gnu: lz4: Build on riscv64-linux without valgrind.
  gnu: lapack: Fix building on riscv64-linux.

 gnu/packages/bootstrap.scm                    | 112 +++++++++++++++++-
 gnu/packages/commencement.scm                 |  58 ++++++++-
 gnu/packages/compression.scm                  |   4 +-
 gnu/packages/dbm.scm                          |  23 ++--
 gnu/packages/elf.scm                          |  11 +-
 gnu/packages/gl.scm                           |  26 ++--
 gnu/packages/guile.scm                        |  22 ++--
 gnu/packages/icu4c.scm                        |   8 ++
 gnu/packages/maths.scm                        |  10 +-
 .../patches/libtool-skip-tests2.patch         |   8 +-
 gnu/packages/pcre.scm                         |  13 +-
 gnu/packages/tex.scm                          |  20 ++--
 gnu/packages/tls.scm                          |  11 +-
 guix/packages.scm                             |   4 +-
 guix/utils.scm                                |   9 +-
 m4/guix.m4                                    |   4 +-
 16 files changed, 283 insertions(+), 60 deletions(-)

-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:22:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 01/21] utils: Define 'target-riscv?' predicate.
Date: Tue, 17 Aug 2021 13:18:59 +0300
* guix/utils.scm (target-riscv?): New predicate.
---
 guix/utils.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/guix/utils.scm b/guix/utils.scm
index 32fcff72ea..134879feb1 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -96,6 +96,7 @@
             target-arm?
             target-ppc32?
             target-powerpc?
+            target-riscv?
             target-64bit?
             cc-for-target
             cxx-for-target
@@ -699,6 +700,11 @@ architecture (x86_64)?"
                                                  (%current-system))))
   (string-prefix? "powerpc" target))
 
+(define* (target-riscv? #:optional (target (or (%current-target-system)
+                                               (%current-system))))
+  "Is the architecture of TARGET a 'riscv' architecture variant?"
+  (string-prefix? "riscv" target))
+
 (define* (target-64bit? #:optional (system (or (%current-target-system)
                                                (%current-system))))
   (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:23:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 02/21] gnu: bootstrap: Add support for riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:00 +0300
On 7d93b21ab1c132990054372a9677c1639d54e631
    gnu: glibc-for-bootstrap: Update patch.

Run
    ./pre-inst-env guix build --target=riscv64-linux-gnu bootstrap-tarballs

Producing
    /gnu/store/4hdzva9i0wyyfbgj1lmqc1wkk644pv07-bootstrap-tarballs-0

With guix hash -rx
    1nj0fdgj08bbmfny01mp2blv7c3p2iciqh31zmf04ap5s7ygsqlp

* gnu/packages/bootstrap.scm (%bootstrap-executables): Add entries for
riscv64-linux.
(%bootstrap-guile-hash, %bootstrap-coreutils&co, %bootstrap-binutils,
%bootstrap-glibc, %bootstrap-gcc): Add entry for riscv64-linux.
(raw-build-guile3): New procedure.
(make-raw-bag): Use raw-build-guile3 for riscv64-linux.
* gnu/packages/commencement.scm (findutils-boot0)[arguments]: Don't
override TIME_T_32_BIT_OK on riscv64-linux.
* guix/packages.scm (%supported-systems): Add riscv64-linux.
(%cuirass-supported-systems): Remove riscv64-linux.
* guix/utils.scm (target-64bit?): Add riscv64-linux.
* m4/guix.m4: Add riscv64-linux as a supported system.
---
 gnu/packages/bootstrap.scm    | 112 +++++++++++++++++++++++++++++++++-
 gnu/packages/commencement.scm |   4 +-
 guix/packages.scm             |   4 +-
 guix/utils.scm                |   3 +-
 m4/guix.m4                    |   4 +-
 5 files changed, 118 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 5a8028a465..260c1b5b91 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -144,7 +144,16 @@
      ("tar"
       ,(base32 "150c8948cz8r208g6qgn2dn4f4zs5kpgbpbg6bwag6yw42rapw2l"))
      ("xz"
-      ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))))
+      ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh")))
+    ("riscv64-linux"
+     ("bash"
+      ,(base32 "0almlf73k6hbm495kzf4bw1rzsg5qddn7z2rf5l3d1xcapac2hj3"))
+     ("mkdir"
+      ,(base32 "0rg1amdcqfkplcy1608jignl8jq0wqzfkp430mwik3f62959gya6"))
+     ("tar"
+      ,(base32 "17d3x27qhiwk7h6ns0xrvbrq0frxz89mjjh2cdwx2rraq5x6wffm"))
+     ("xz"
+      ,(base32 "0nxn75xf386vdq3igmgm8gnyk4h4x0cm8jv71vlb2jvwxh0cyw1q")))))
 
 (define %bootstrap-executable-base-urls
   ;; This is where the bootstrap executables come from.
@@ -159,6 +168,7 @@
     ("powerpc64le-linux" (string-append system "/20210106/" program))
     ("i586-gnu" (string-append system "/20200326/" program))
     ("powerpc-linux" (string-append system "/20200923/bin/" program))
+    ("riscv64-linux" (string-append system "/20210725/bin/" program))
     (_ (string-append system "/" program
                       "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))))
 
@@ -362,6 +372,8 @@ or false to signal an error."
                     "/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")
+                   ("riscv64-linux"
+                    "/20210725/guile-3.0.2.tar.xz")
                    (_
                     "/20131110/guile-2.0.9.tar.xz"))))
 
@@ -383,7 +395,9 @@ or false to signal an error."
     ("i586-gnu"
      (base32 "0wgqpsmvg25rnqn49ap7kwd2qxccd8dr4lllzp7i3rjvgav27vac"))
     ("powerpc-linux"
-     (base32 "1by2p7s27fbyjzfkcw8h65h4kkqh7d23kv4sgg5jppjn2qx7swq4"))))
+     (base32 "1by2p7s27fbyjzfkcw8h65h4kkqh7d23kv4sgg5jppjn2qx7swq4"))
+    ("riscv64-linux"
+     (base32 "12pqmhsbbp7hh9r1bjdl14l3a4q06plpz6dcks9dysb4czay8p9f"))))
 
 (define (bootstrap-guile-origin system)
   "Return an <origin> object for the Guile tarball of SYSTEM."
@@ -455,6 +469,76 @@ GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
 GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
 $out/bin/guile -c ~s $out ~a
 
+# Sanity check.
+$out/bin/guile --version~%"
+                                           (derivation->output-path mkdir)
+                                           (derivation->output-path xz)
+                                           (derivation->output-path tar)
+                                           (object->string wrapper)
+                                           (derivation->output-path bash)))))
+    (raw-derivation name
+                    (derivation->output-path bash) `(,builder)
+                    #:system system
+                    #:inputs (map derivation-input
+                                  (list bash mkdir tar xz guile))
+                    #:sources (list builder)
+                    #:env-vars `(("GUILE_TARBALL"
+                                  . ,(derivation->output-path guile))))))
+
+(define* (raw-build-guile3 name inputs
+                    #:key outputs system search-paths
+                    #:allow-other-keys)
+  (define (->store file)
+    (lower-object (bootstrap-executable file system)
+                  system))
+
+  (define (make-guile-wrapper bash guile-real)
+    ;; The following code, run by the bootstrap guile after it is unpacked,
+    ;; creates a wrapper for itself to set its load path.  This replaces the
+    ;; previous non-portable method based on reading the /proc/self/exe
+    ;; symlink.
+    '(begin
+       (use-modules (ice-9 match))
+       (match (command-line)
+         ((_ out bash)
+          (let ((bin-dir    (string-append out "/bin"))
+                (guile      (string-append out "/bin/guile"))
+                (guile-real (string-append out "/bin/.guile-real"))
+                ;; We must avoid using a bare dollar sign in this code,
+                ;; because it would be interpreted by the shell.
+                (dollar     (string (integer->char 36))))
+            (chmod bin-dir #o755)
+            (rename-file guile guile-real)
+            (call-with-output-file guile
+              (lambda (p)
+                (format p "\
+#!~a
+export GUILE_SYSTEM_PATH=~a/share/guile/3.0
+export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/3.0/ccache
+exec -a \"~a0\" ~a \"~a@\"\n"
+                        bash out out dollar guile-real dollar)))
+            (chmod guile   #o555)
+            (chmod bin-dir #o555))))))
+
+  (mlet* %store-monad ((tar   (->store "tar"))
+                       (xz    (->store "xz"))
+                       (mkdir (->store "mkdir"))
+                       (bash  (->store "bash"))
+                       (guile (download-bootstrap-guile system))
+                       (wrapper -> (make-guile-wrapper bash guile))
+                       (builder
+                        (text-file "build-bootstrap-guile.sh"
+                                   (format #f "
+echo \"unpacking bootstrap Guile to '$out'...\"
+~a $out
+cd $out
+~a -dc < $GUILE_TARBALL | ~a xv
+
+# Use the bootstrap guile to create its own wrapper to set the load path.
+GUILE_SYSTEM_PATH=$out/share/guile/3.0 \
+GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/3.0/ccache \
+$out/bin/guile -c ~s $out ~a
+
 # Sanity check.
 $out/bin/guile --version~%"
                                            (derivation->output-path mkdir)
@@ -478,7 +562,9 @@ $out/bin/guile --version~%"
     (name name)
     (system system)
     (build-inputs inputs)
-    (build raw-build)))
+    (build (cond ((target-riscv?)
+                  raw-build-guile3)
+                 (else raw-build)))))
 
 (define %bootstrap-guile
   ;; The Guile used to run the build scripts of the initial derivations.
@@ -518,6 +604,8 @@ $out/bin/guile --version~%"
                                              "/20200326/static-binaries-0-i586-pc-gnu.tar.xz")
                                             ("powerpc-linux"
                                              "/20200923/static-binaries.tar.xz")
+                                            ("riscv64-linux"
+                                             "/20210725/static-binaries.tar.xz")
                                             (_
                                              "/20131110/static-binaries.tar.xz")))
                                      %bootstrap-base-urls))
@@ -544,6 +632,9 @@ $out/bin/guile --version~%"
                               ("powerpc-linux"
                                (base32
                                 "0kspxy0yczan2vlih6aa9hailr2inz000fqa0gn5x9d1fxxa5y8m"))
+                              ("riscv64-linux"
+                               (base32
+                                "0x0xjlpmyh6rkr51p00gp6pscgl6zjida1rsg8vk3rinyi6rrbkg"))
                               ("mips64el-linux"
                                (base32
                                 "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@@ -596,6 +687,8 @@ $out/bin/guile --version~%"
                                              "/20200326/binutils-static-stripped-2.34-i586-pc-gnu.tar.xz")
                                             ("powerpc-linux"
                                              "/20200923/binutils-2.35.1.tar.xz")
+                                            ("riscv64-linux"
+                                             "/20210725/binutils-2.34.tar.xz")
                                             (_
                                              "/20131110/binutils-2.23.2.tar.xz")))
                                      %bootstrap-base-urls))
@@ -616,6 +709,9 @@ $out/bin/guile --version~%"
                               ("powerpc64le-linux"
                                (base32
                                 "1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78d22ff2q0cwz"))
+                              ("riscv64-linux"
+                               (base32
+                                "0n9qf4vbilfmh1lknhw000waakj4q6s50pnjazr5137skm976z5m"))
                               ("i586-gnu"
                                (base32
                                 "11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcsyss21kfjprs"))
@@ -681,6 +777,8 @@ $out/bin/guile --version~%"
                                        "/20200326/glibc-stripped-2.31-i586-pc-gnu.tar.xz")
                                       ("powerpc-linux"
                                        "/20200923/glibc-2.32.tar.xz")
+                                      ("riscv64-linux"
+                                       "/20210725/glibc-2.31.tar.xz")
                                       (_
                                        "/20131110/glibc-2.18.tar.xz")))
                                %bootstrap-base-urls))
@@ -701,6 +799,9 @@ $out/bin/guile --version~%"
                         ("powerpc64le-linux"
                          (base32
                           "1a1df6z8gkaq09md3jy94lixnh20599p58p0s856p10xwjaqr1iz"))
+                        ("riscv64-linux"
+                         (base32
+                          "0d9x80vm7ca1pd2whcmpm1h14zxpb58kqajlxlwffzm04xfsjnxm"))
                         ("i586-gnu"
                          (base32
                           "14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2w5952"))
@@ -782,6 +883,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                                         "/20200326/gcc-stripped-5.5.0-i586-pc-gnu.tar.xz")
                                        ("powerpc-linux"
                                         "/20200923/gcc-5.5.0.tar.xz")
+                                       ("riscv64-linux"
+                                        "/20210725/gcc-7.5.0.tar.xz")
                                        (_
                                         "/20131110/gcc-4.8.2.tar.xz")))
                                 %bootstrap-base-urls))
@@ -802,6 +905,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                          ("powerpc64le-linux"
                           (base32
                            "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlnadz3m1"))
+                         ("riscv64-linux"
+                          (base32
+                           "1k4mbnb54wj2q37fgshf5dfixixqnhn002vhzvi9pnb57xb9v14d"))
                          ("i586-gnu"
                           (base32
                            "1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd70zvv5"))
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index dc9b372132..d395b261c2 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2496,7 +2496,9 @@ exec " gcc "/bin/" program
        ,@(substitute-keyword-arguments (package-arguments findutils)
            ((#:configure-flags flags ''())
             `(append
-              ,(if (target-64bit?)
+               ;; TODO: Figure out exactly with architectures need this.
+              ,(if (and (target-64bit?)
+                        (not (target-riscv?)))
                    ''("TIME_T_32_BIT_OK=yes")
                    ''())
               ,(match (%current-system)
diff --git a/guix/packages.scm b/guix/packages.scm
index 2349bb4340..7e86da9aae 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -366,7 +366,7 @@ name of its URI."
   ;; 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"
-    "powerpc64le-linux" "powerpc-linux"))
+    "powerpc64le-linux" "powerpc-linux" "riscv64-linux"))
 
 (define %hurd-systems
   ;; The GNU/Hurd systems for which support is being developed.
@@ -377,7 +377,7 @@ name of its URI."
   ;;
   ;; XXX: MIPS is unavailable in CI:
   ;; <https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00790.html>.
-  (fold delete %supported-systems '("mips64el-linux" "powerpc-linux")))
+  (fold delete %supported-systems '("mips64el-linux" "powerpc-linux" "riscv64-linux")))
 
 (define-inlinable (sanitize-inputs inputs)
   "Sanitize INPUTS by turning it into a list of name/package tuples if it's
diff --git a/guix/utils.scm b/guix/utils.scm
index 134879feb1..3ca846f075 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -707,7 +707,8 @@ architecture (x86_64)?"
 
 (define* (target-64bit? #:optional (system (or (%current-target-system)
                                                (%current-system))))
-  (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
+  (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64"
+                                        "powerpc64" "riscv64")))
 
 (define* (cc-for-target #:optional (target (%current-target-system)))
   (if target
diff --git a/m4/guix.m4 b/m4/guix.m4
index e778a56004..c79d3c3bc5 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -1,7 +1,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, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+dnl Copyright © 2017, 2020, 2021 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.
@@ -89,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|powerpc64le-linux|powerpc-linux)
+    x86_64-linux|i686-linux|armhf-linux|aarch64-linux|powerpc64le-linux|powerpc-linux|riscv64-linux)
       ;;
     *)
       if test "x$guix_courageous" = "xyes"; then
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:23:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 03/21] gnu: gcc-boot0: Use libstdc++-boot0-gcc7 on
 riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:01 +0300
* gnu/packages/commencement.scm (libstdc++-boot0-gcc7): New variable.
(gcc-boot0)[inputs]: On riscv64-linux use libstdc++-boot0-gcc7 instead
of libstdc++-boot0.
---
 gnu/packages/commencement.scm | 48 ++++++++++++++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index d395b261c2..69cf30483d 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2703,6 +2703,50 @@ exec " gcc "/bin/" program
       (inputs (%boot0-inputs))
       (native-inputs '()))))
 
+(define libstdc++-boot0-gcc7
+  ;; GCC >= 7 is needed by architectures which use C++-14 features.
+  (let ((lib (make-libstdc++ gcc-7)))
+    (package
+      (inherit lib)
+      (source (bootstrap-origin (package-source lib)))
+      (name "libstdc++-boot0")
+      (arguments
+       `(#:guile ,%bootstrap-guile
+         #:implicit-inputs? #f
+
+         ;; XXX: libstdc++.so NEEDs ld.so for some reason.
+         #:validate-runpath? #f
+
+         ,@(substitute-keyword-arguments (package-arguments lib)
+             ((#:phases phases)
+              `(modify-phases ,phases
+                 (add-after 'unpack 'unpack-gmp&co
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     (let ((gmp  (assoc-ref %build-inputs "gmp-source"))
+                           (mpfr (assoc-ref %build-inputs "mpfr-source"))
+                           (mpc  (assoc-ref %build-inputs "mpc-source")))
+
+                       ;; To reduce the set of pre-built bootstrap inputs, build
+                       ;; GMP & co. from GCC.
+                       (for-each (lambda (source)
+                                   (invoke "tar" "xvf" source))
+                                 (list gmp mpfr mpc))
+
+                       ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
+                       ,@(map (lambda (lib)
+                                ;; Drop trailing letters, as gmp-6.0.0a unpacks
+                                ;; into gmp-6.0.0.
+                                `(symlink ,(string-trim-right
+                                            (package-full-name lib "-")
+                                            char-set:letter)
+                                          ,(package-name lib)))
+                              (list gmp-6.0 mpfr mpc))))))))))
+      (inputs `(("gmp-source" ,(bootstrap-origin (package-source gmp-6.0)))
+                ("mpfr-source" ,(bootstrap-origin (package-source mpfr)))
+                ("mpc-source" ,(bootstrap-origin (package-source mpc)))
+                ,@(%boot0-inputs)))
+      (native-inputs '()))))
+
 (define gcc-boot0
   (package
     (inherit gcc)
@@ -2814,7 +2858,9 @@ exec " gcc "/bin/" program
               ("binutils-cross" ,binutils-boot0)
 
               ;; The libstdc++ that libcc1 links against.
-              ("libstdc++" ,libstdc++-boot0)
+              ("libstdc++" ,(match (%current-system)
+                                   ("riscv64-linux" libstdc++-boot0-gcc7)
+                                   (_ libstdc++-boot0)))
 
               ;; Call it differently so that the builder can check whether
               ;; the "libc" input is #f.
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:24:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 04/21] gnu: %boot3-inputs: Add missing input.
Date: Tue, 17 Aug 2021 13:19:02 +0300
* gnu/packages/commencement.scm (%boot3-inputs): Add gcc:lib.
---
 gnu/packages/commencement.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 69cf30483d..e2339170e5 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3579,6 +3579,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
 (define (%boot3-inputs)
   ;; 4th stage inputs.
   `(("gcc" ,gcc-final)
+    ,@(if (target-riscv?)
+        `(("gcc:lib" ,gcc-final "lib"))
+        '())
     ("ld-wrapper" ,ld-wrapper-boot3)
     ,@(alist-delete "gcc" (%boot2-inputs))))
 
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:24:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 05/21] gnu: guile: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:03 +0300
* gnu/packages/guile.scm (guile-3.0)[arguments]: On riscv64-linux add
a phase to skip a failing test.
---
 gnu/packages/guile.scm | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index fffc30f913..f9a7125f83 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -65,7 +65,8 @@
   #:use-module (guix deprecation)
   #:use-module (guix utils)
   #:use-module (ice-9 match)
-  #:use-module ((srfi srfi-1) #:prefix srfi-1:))
+  #:use-module ((srfi srfi-1) #:prefix srfi-1:)
+  #:use-module (srfi srfi-26))
 
 ;;; Commentary:
 ;;;
@@ -346,14 +347,17 @@ without requiring the source code to be rewritten.")
                        ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
                        (substitute* "bootstrap/Makefile.in"
                          (("^GUILE_OPTIMIZATIONS.*")
-                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))
-                   (add-after 'unpack 'skip-failing-fdes-test
-                     (lambda _
-                       ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
-                       (substitute* "test-suite/tests/ports.test"
-                         (("fdes not closed\"" all) (string-append all "(exit 77)")))
-                       #t)))
-                 '())))))
+                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n")))))
+                 '())
+           ,@(if (srfi-1:any (cute string-prefix? <> (%current-system))
+                             '("powerpc-" "riscv64-"))
+               `((add-after 'unpack 'skip-failing-fdes-test
+                   (lambda _
+                     ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
+                     (substitute* "test-suite/tests/ports.test"
+                       (("fdes not closed\"" all) (string-append all "(exit 77)")))
+                     #t)))
+               '())))))
 
     (native-search-paths
      (list (search-path-specification
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:25:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 06/21] gnu: %final-inputs: Add implied gcc:lib input.
Date: Tue, 17 Aug 2021 13:19:04 +0300
* gnu/packages/commencement.scm (%final-inputs): Add gcc:lib.
---
 gnu/packages/commencement.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index e2339170e5..b717604a9c 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3726,6 +3726,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
       ("ld-wrapper" ,ld-wrapper)
       ("binutils" ,binutils-final)
       ("gcc" ,gcc-final)
+      ,@(if (target-riscv?)
+          `(("gcc:lib" ,gcc-final "lib"))
+          '())
       ("libc" ,glibc-final)
       ("libc:static" ,glibc-final "static")
       ("locales" ,glibc-utf8-locales-final))))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:26:03 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 07/21] gnu: bdb: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:05 +0300
* gnu/packages/dbm.scm (bdb)[arguments]: Modify configure to build for
the currect architecture when building for riscv64-linux.
---
 gnu/packages/dbm.scm | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
index ce84ef9eda..c2bdaf782a 100644
--- a/gnu/packages/dbm.scm
+++ b/gnu/packages/dbm.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2016, 2020 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas <at> enge.fr>
-;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020, 2021 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 © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
@@ -28,7 +28,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (guix utils))
+  #:use-module (guix utils)
+  #:use-module (ice-9 match))
 
 ;;; Commentary:
 ;;;
@@ -72,15 +73,15 @@
                        (string-append "CONFIG_SHELL=" (which "bash"))
                        (string-append "SHELL=" (which "bash"))
 
-                       ;; Bdb doesn't recognize aarch64 as an architecture.
-                       ,@(if (string=? "aarch64-linux" (%current-system))
-                             '("--build=aarch64-unknown-linux-gnu")
-                             '())
-
-                       ;; Bdb doesn't recognize powerpc64le as an architecture.
-                       ,@(if (string=? "powerpc64le-linux" (%current-system))
-                             '("--build=powerpc64le-unknown-linux-gnu")
-                             '())
+                       ;; Bdb doesn't recognize very many architectures.
+                       ,@(match (%current-system)
+                           ("aarch64-linux"
+                            '("--build=aarch64-unknown-linux-gnu"))
+                           ("powerpc64le-linux"
+                            '("--build=powerpc64le-unknown-linux-gnu"))
+                           ("riscv64-linux"
+                            '("--build=riscv64-unknown-linux-gnu"))
+                           (_ '()))
 
                        ,@(if (%current-target-system)         ; cross building
                              '((string-append "--host=" target))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:26:03 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 08/21] gnu: elfutils: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:06 +0300
* gnu/packages/elf.scm (elfutils)[arguments]: On riscv64-linux add a
phase to skip failing test.
---
 gnu/packages/elf.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 2bc1d00048..01e5f51b00 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo <at> gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2015 Andreas Enge <andreas <at> enge.fr>
-;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2017 Leo Famulari <leo <at> famulari.name>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018, 2020 Marius Bakke <mbakke <at> fastmail.com>
@@ -98,7 +98,14 @@
            (lambda _
              (substitute* "tests/Makefile.in"
                (("run-backtrace-native.sh") ""))
-             #t)))))
+             #t))
+         ,@(if (target-riscv?)
+             `((add-after 'unpack 'disable-failing-riscv64-test
+                 (lambda _
+                   ;; dwfl_thread_getframes: No DWARF information found
+                   (substitute* "tests/Makefile.in"
+                     (("run-backtrace-dwarf.sh") "")))))
+             '()))))
 
     (native-inputs `(("m4" ,m4)))
     (inputs `(("zlib" ,zlib)))
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:27:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 09/21] gnu: pcre: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:07 +0300
* gnu/packages/pcre.scm (pcre)[arguments]: Adjust configure-flags to not
build with JIT when building for riscv64-linux.
---
 gnu/packages/pcre.scm | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 318727915e..315dd8be1d 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo <at> famulari.name>
 ;;; Copyright © 2017 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2017 Ludovic Courtès <ludo <at> gnu.org>
-;;; Copyright © 2017 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2017, 2021 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv <at> pm.me>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune <at> gmail.com>
@@ -32,6 +32,7 @@
   #:use-module (gnu packages)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu))
 
 (define-public pcre
@@ -54,7 +55,7 @@
              ("readline" ,readline)
              ("zlib" ,zlib)))
    (arguments
-    '(#:disallowed-references ("doc")
+    `(#:disallowed-references ("doc")
       #:configure-flags '("--enable-utf"
                           "--enable-pcregrep-libz"
                           "--enable-pcregrep-libbz2"
@@ -62,7 +63,9 @@
                           "--enable-unicode-properties"
                           "--enable-pcre16"
                           "--enable-pcre32"
-                          "--enable-jit")
+                          ,@(if (target-riscv?)
+                              '()
+                              `("--enable-jit")))
       #:phases (modify-phases %standard-phases
                  (add-after 'install 'move-static-libs
                    (lambda* (#:key outputs #:allow-other-keys)
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:27:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 10/21] gnu: openssl: Fix build on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:08 +0300
* gnu/packages/tls.scm (openssl)[arguments]: Add phase for riscv64-linux
to skip failing test.
(target->openssl-target): Add case for riscv64-linux.
---
 gnu/packages/tls.scm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 4b8df04f17..f6cdeac363 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -337,7 +337,10 @@ OpenSSL for TARGET."
         ((string-prefix? "powerpc64" target)
          "linux-ppc64")
         ((string-prefix? "powerpc" target)
-         "linux-ppc")))
+         "linux-ppc")
+        ((string-prefix? "riscv64" target)
+         ;; linux64-riscv64 isn't recognized until 3.0.0.
+         "linux-generic64")))
 
 (define-public openssl
   (package
@@ -380,6 +383,12 @@ OpenSSL for TARGET."
                                #$(target->openssl-target
                                   (%current-target-system))))))
                 #~())
+         ;; Unclear why this test is failing.
+         #$@(if (target-riscv?)
+              #~((add-after 'unpack 'skip-failing-test
+                   (lambda _
+                     (delete-file "test/recipes/30-test_afalg.t"))))
+              #~())
          (replace 'configure
            (lambda* (#:key configure-flags #:allow-other-keys)
              (let* ((out #$output)
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:28:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 11/21] gnu: libtool: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:09 +0300
* gnu/packages/patches/libtool-skip-tests2.patch: Also skip pie tests
on riscv architectures.
---
 gnu/packages/patches/libtool-skip-tests2.patch | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/patches/libtool-skip-tests2.patch b/gnu/packages/patches/libtool-skip-tests2.patch
index c9d61e3b41..b0a479325f 100644
--- a/gnu/packages/patches/libtool-skip-tests2.patch
+++ b/gnu/packages/patches/libtool-skip-tests2.patch
@@ -1,4 +1,4 @@
-Skip the nopic test on ARM and MIPS systems.
+Skip the nopic test on ARM, MIPS and RISCV systems.
 
 --- libtool-2.4.6/tests/demo.at.orig	2015-01-16 13:52:04.000000000 -0500
 +++ libtool-2.4.6/tests/demo.at	2015-02-16 10:48:51.435851966 -0500
@@ -7,7 +7,7 @@ Skip the nopic test on ARM and MIPS systems.
  
  AT_CHECK([case $host in
 -hppa*|x86_64*|s390*)
-+hppa*|x86_64*|s390*|arm*|mips*)
++hppa*|x86_64*|s390*|arm*|mips*|riscv*)
    # These hosts cannot use non-PIC shared libs
    exit 77 ;;
  *-solaris*|*-sunos*)
@@ -18,7 +18,7 @@ Skip the nopic test on ARM and MIPS systems.
  { set +x
  $as_echo "$at_srcdir/demo.at:535: case \$host in
 -hppa*|x86_64*|s390*)
-+hppa*|x86_64*|s390*|arm*|mips*)
++hppa*|x86_64*|s390*|arm*|mips*|riscv*)
    # These hosts cannot use non-PIC shared libs
    exit 77 ;;
  *-solaris*|*-sunos*)
@@ -27,7 +27,7 @@ Skip the nopic test on ARM and MIPS systems.
  at_fn_check_prepare_notrace 'a `...` command substitution' "demo.at:535"
  ( $at_check_trace; case $host in
 -hppa*|x86_64*|s390*)
-+hppa*|x86_64*|s390*|arm*|mips*)
++hppa*|x86_64*|s390*|arm*|mips*|riscv*)
    # These hosts cannot use non-PIC shared libs
    exit 77 ;;
  *-solaris*|*-sunos*)
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:28:02 GMT) Full text and rfc822 format available.

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

From: Maxime Devos <maximedevos <at> telenet.be>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 01/21] utils: Define 'target-riscv?' predicate.
Date: Tue, 17 Aug 2021 12:27:17 +0200
[Message part 1 (text/plain, inline)]
Efraim Flashner schreef op di 17-08-2021 om 13:18 [+0300]:
> * guix/utils.scm (target-riscv?): New predicate.
> ---
>  guix/utils.scm | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/guix/utils.scm b/guix/utils.scm
> index 32fcff72ea..134879feb1 100644
> --- a/guix/utils.scm
> +++ b/guix/utils.scm
> @@ -96,6 +96,7 @@
>              target-arm?
>              target-ppc32?
>              target-powerpc?
> +            target-riscv?
>              target-64bit?
>              cc-for-target
>              cxx-for-target
> @@ -699,6 +700,11 @@ architecture (x86_64)?"
>                                                   (%current-system))))
>    (string-prefix? "powerpc" target))
>  
> +(define* (target-riscv? #:optional (target (or (%current-target-system)
> +                                               (%current-system))))
> +  "Is the architecture of TARGET a 'riscv' architecture variant?"
> +  (string-prefix? "riscv" target))
> +
>  (define* (target-64bit? #:optional (system (or (%current-target-system)
>                                                 (%current-system))))
>    (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))

The next patch adds a ‘riscv64-linux-gnu’ target.  riscv64 seems 64-bit to me.
It would seem riscv64 needs to be added to target-64bit?.

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

Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:28:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 12/21] gnu: openblas: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:10 +0300
* gnu/packages/maths.scm (openblas)[arguments]: Adjust make-flags on
riscv64-linux to target the correct architecture when building for
riscv64-linux.
---
 gnu/packages/maths.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index a7931e6eeb..7eac94f2a1 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4075,6 +4075,8 @@ parts of it.")
                   ;; Failed to detect CPU.
                   ((string-prefix? "armhf" system)
                    '("TARGET=ARMV7"))
+                  ((string-prefix? "riscv64" system)
+                   '("TARGET=RISCV64_GENERIC"))
                   (else '()))))
        ;; no configure script
        #:phases
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:29:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 13/21] gnu: mesa: Add support for riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:11 +0300
* gnu/packages/gl.scm (mesa)[inputs]: Add llvm-11 on riscv64-linux.
[native-inputs]: Add glslang on riscv64-linux.
[arguments]: In configure-flags adjust gallium-drivers to swap the
power* and intel drivers for the fallback option. Specify riscv64-linux
configure options for vulkan-drivers. Enable the vulkan-overlay-layer
and llvm support. Adjust the custom 'disable-failing-test phase to have
a riscv64-linux section.
---
 gnu/packages/gl.scm | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 7a8a478953..8b82352204 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -274,7 +274,8 @@ also known as DXTn or DXTC) for Mesa.")
         ("libxrandr" ,libxrandr)
         ("libxvmc" ,libxvmc)
         ,@(match (%current-system)
-            ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
+            ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
+                 "powerpc-linux" "riscv64-linux")
              ;; Note: update the 'clang' input of mesa-opencl when bumping this.
              `(("llvm" ,llvm-11)))
             (_
@@ -286,7 +287,8 @@ also known as DXTn or DXTC) for Mesa.")
         ("flex" ,flex)
         ("gettext" ,gettext-minimal)
         ,@(match (%current-system)
-            ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
+            ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
+                 "powerpc-linux" "riscv64-linux")
              `(("glslang" ,glslang)))
             (_
              `()))
@@ -301,10 +303,10 @@ also known as DXTn or DXTC) for Mesa.")
              ((or "armhf-linux" "aarch64-linux")
               ;; TODO: Fix svga driver for non-Intel architectures.
               '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
-             ((or "powerpc64le-linux" "powerpc-linux")
-              '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl"))
+             ((or "x86_64-linux" "i686-linux")
+              '("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))
              (_
-              '("-Dgallium-drivers=iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
+              '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl")))
          ;; Enable various optional features.  TODO: opencl requires libclc,
          ;; omx requires libomxil-bellagio
          "-Dplatforms=x11,wayland"
@@ -327,12 +329,15 @@ also known as DXTn or DXTC) for Mesa.")
               '("-Dvulkan-drivers=amd,swrast"))
              ("aarch64-linux"
               '("-Dvulkan-drivers=freedreno,amd,broadcom,swrast"))
+             ("riscv64-linux"
+              '("-Dvulkan-drivers=amd,swrast"))
              (_
               '("-Dvulkan-drivers=auto")))
 
          ;; Enable the Vulkan overlay layer on architectures using llvm.
          ,@(match (%current-system)
-             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
+             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
+                  "powerpc-linux" "riscv64-linux")
               '("-Dvulkan-overlay-layer=true"))
              (_
               '()))
@@ -346,7 +351,7 @@ also known as DXTn or DXTC) for Mesa.")
              ((or "x86_64-linux" "i686-linux")
               '("-Ddri-drivers=i915,i965,nouveau,r200,r100"
                 "-Dllvm=enabled"))      ; default is x86/x86_64 only
-             ((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux")
+             ((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux" "riscv64-linux")
               '("-Ddri-drivers=nouveau,r200,r100"
                 "-Dllvm=enabled"))
              (_
@@ -365,6 +370,13 @@ also known as DXTn or DXTC) for Mesa.")
          (add-after 'unpack 'disable-failing-test
            (lambda _
              ,@(match (%current-system)
+                 ("riscv64-linux"
+                  ;; According to the test logs the llvm JIT is not designed
+                  ;; for this architecture and the llvmpipe tests all segfault.
+                  ;; The same is true for mesa:gallium / osmesa-render.
+                  `((substitute* '("src/gallium/drivers/llvmpipe/meson.build"
+                                   "src/gallium/targets/osmesa/meson.build")
+                      (("if with_tests") "if false"))))
                  ("powerpc64le-linux"
                   ;; Disable some of the llvmpipe tests.
                   `((substitute* "src/gallium/drivers/llvmpipe/lp_test_arit.c"
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:29:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 14/21] gnu: pcre2: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:12 +0300
* gnu/packages/pcre.scm (pcre2)[arguments]: Adjust configure-flags to not
build with JIT when building for riscv64-linux.
---
 gnu/packages/pcre.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 315dd8be1d..e63caebd64 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -108,7 +108,9 @@ POSIX regular expression API.")
                           "--enable-pcre2test-libreadline"
                           "--enable-pcre2-16"
                           "--enable-pcre2-32"
-                          "--enable-jit"
+                          ,@(if (target-riscv?)
+                              '()
+                              `("--enable-jit"))
                           "--disable-static")
       #:phases
       (modify-phases %standard-phases
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:30:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 15/21] gnu: icu4c: Skip tests on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:13 +0300
* gnu/packages/icu4c.scm (icu4c)[arguments]: Add phase to skip failing
test on riscv64-linux.
---
 gnu/packages/icu4c.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index 0d5f34aed8..13db71a982 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -80,6 +80,14 @@
               (("LDFLAGSICUDT=-nodefaultlibs -nostdlib")
                "LDFLAGSICUDT="))
             #t))
+        ,@(if (target-riscv?)
+            `((add-after 'unpack 'disable-failing-test
+                ;; It is unknown why this test is failing.
+                (lambda _
+                  (substitute* "source/test/intltest/numbertest_api.cpp"
+                    (("(TESTCASE_AUTO\\(unitUsage\\));" all)
+                     (string-append "//" all))))))
+            '())
         (add-after 'install 'avoid-coreutils-reference
           ;; Don't keep a reference to the build tools.
           (lambda* (#:key outputs #:allow-other-keys)
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:30:03 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 16/21] gnu: openblas-ilp64: Add riscv64-linux as a supported
 architecture.
Date: Tue, 17 Aug 2021 13:19:14 +0300
* gnu/packages/maths.scm (openblas-ilp64)[supported-systems]: Add
riscv64-linux.
---
 gnu/packages/maths.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 7eac94f2a1..eb6e685278 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4104,7 +4104,7 @@ parts of it.")
 (define-public openblas-ilp64
   (package/inherit openblas
     (name "openblas-ilp64")
-    (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux"))
+    (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux" "riscv64-linux"))
     (arguments
      (substitute-keyword-arguments (package-arguments openblas)
        ((#:make-flags flags '())
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:31:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 17/21] gnu: openlibm: Remove riscv64-linux from supported
 systems.
Date: Tue, 17 Aug 2021 13:19:15 +0300
* gnu/packages/maths.scm (openlibm)[supported-systems]: Remove
riscv64-linux.
---
 gnu/packages/maths.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index eb6e685278..06b9dfea59 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4250,7 +4250,8 @@ have a good libm for the Julia programming language that worked consistently
 across compilers and operating systems, and in 32-bit and 64-bit
 environments.")
     ;; Each architecture has its own make target, and there is none for mips.
-    (supported-systems (delete "mips64el-linux" %supported-systems))
+    (supported-systems (fold delete %supported-systems
+                             '("mips64el-linux" "riscv64-linux")))
     ;; See LICENSE.md for details.
     (license (list license:expat
                    license:isc
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:31:02 GMT) Full text and rfc822 format available.

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

From: Maxime Devos <maximedevos <at> telenet.be>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 01/21] utils: Define 'target-riscv?' predicate.
Date: Tue, 17 Aug 2021 12:30:43 +0200
[Message part 1 (text/plain, inline)]
> > +(define* (target-riscv? #:optional (target (or (%current-target-system)
> > +                                               (%current-system))))
> > +  "Is the architecture of TARGET a 'riscv' architecture variant?"
> > +  (string-prefix? "riscv" target))
> > +
> >  (define* (target-64bit? #:optional (system (or (%current-target-system)
> >                                                 (%current-system))))
> >    (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
> 
> The next patch adds a ‘riscv64-linux-gnu’ target.  riscv64 seems 64-bit to me.
> It would seem riscv64 needs to be added to target-64bit?.

Nevermind,
[bug#50091] [PATCH 02/21] gnu: bootstrap: Add support for riscv64-linux.
adds it to target-64bit?

> Greetings,
> Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:31:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 18/21] gnu: texlive-bin: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:16 +0300
* gnu/packages/tex.scm (texlive-bin)[arguments]: Adjust configure-flags
for riscv64-linux to skip luajit based binaries. Add phase to skip some
tests.
---
 gnu/packages/tex.scm | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c00c2ae177..b96aadc357 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -338,13 +338,14 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
          "--with-system-teckit"
          "--with-system-zlib"
          "--with-system-zziplib"
-         ;; LuaJIT is not ported to powerpc64le* yet.
-         ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
-                                                 (%current-system)))
-               '("--disable-luajittex"
-                 "--disable-luajithbtex"
-                 "--disable-mfluajit")
-               '()))
+         ;; LuaJIT is not ported to some architectures yet.
+         ,@(if (or (string-prefix? "powerpc64le" (or (%current-target-system)
+                                                     (%current-system)))
+                   (target-riscv?))
+             '("--disable-luajittex"
+               "--disable-luajithbtex"
+               "--disable-mfluajit")
+             '()))
 
       ;; Disable tests on some architectures to cope with a failure of
       ;; luajiterr.test.
@@ -385,7 +386,8 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
                (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1")
                 "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77"))
              #t))
-         ,@(if (target-ppc32?)
+         ,@(if (or (target-ppc32?)
+                   (target-riscv?))
              ;; Some mendex tests fail on some architectures.
              `((add-after 'unpack 'skip-mendex-tests
                  (lambda _
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:32:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 19/21] gnu: texlive-updmap.cfg: Update hash.
Date: Tue, 17 Aug 2021 13:19:17 +0300
The hash seems to have changed.

* gnu/packages/tex.scm (texlive-updmap.cfg)[source]: Update hash.
---
 gnu/packages/tex.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index b96aadc357..072793ec30 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -4077,7 +4077,7 @@ configuration of a base set of packages plus PACKAGES."
                   (file-name "updmap.cfg")
                   (sha256
                    (base32
-                    "1q3l7yx5sng080ibfb8z3rdah0hhq170j6xw8z1w8i4w9m37lp94"))))
+                    "0zhpyld702im6352fwp41f2hgfkpj2b4j1kfsjqbkijlcmvb6w2c"))))
         (name "texlive-updmap.cfg")
         (build-system copy-build-system)
         (arguments
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:32:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 20/21] gnu: lz4: Build on riscv64-linux without valgrind.
Date: Tue, 17 Aug 2021 13:19:18 +0300
* gnu/packages/compression.scm (lz4)[native-inputs]: Don't use valgrind
when building for riscv64-linux.
---
 gnu/packages/compression.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 93d517abd5..1803237e6e 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -819,7 +819,9 @@ decompression of some loosely related file formats used by Microsoft.")
     (native-inputs
      `(;; For tests.
        ("python" ,python)
-       ("valgrind" ,valgrind)))
+       ,@(if (target-riscv?)
+           '()
+           `(("valgrind" ,valgrind)))))
     (arguments
      `(;; Not designed for parallel testing.
        ;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:33:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: [PATCH 21/21] gnu: lapack: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:19:19 +0300
* gnu/packages/maths.scm (lapack)[inputs]: When building for
riscv64-linux explicitly add gfortran:lib.
---
 gnu/packages/maths.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 06b9dfea59..f9b3a20274 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -889,6 +889,9 @@ large scale eigenvalue problems.")
     (build-system cmake-build-system)
     (home-page "http://www.netlib.org/lapack/")
     (inputs `(("fortran" ,gfortran)
+              ,@(if (target-riscv?)
+                  `(("fortran:lib" ,gfortran "lib"))
+                  '())
               ("python" ,python-wrapper)))
     (arguments
      `(#:configure-flags (list
-- 
2.32.0





Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:34:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 01/21] utils: Define 'target-riscv?' predicate.
Date: Tue, 17 Aug 2021 13:28:15 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 12:27:17PM +0200, Maxime Devos wrote:
> Efraim Flashner schreef op di 17-08-2021 om 13:18 [+0300]:
> > * guix/utils.scm (target-riscv?): New predicate.
> > ---
> >  guix/utils.scm | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/guix/utils.scm b/guix/utils.scm
> > index 32fcff72ea..134879feb1 100644
> > --- a/guix/utils.scm
> > +++ b/guix/utils.scm
> > @@ -96,6 +96,7 @@
> >              target-arm?
> >              target-ppc32?
> >              target-powerpc?
> > +            target-riscv?
> >              target-64bit?
> >              cc-for-target
> >              cxx-for-target
> > @@ -699,6 +700,11 @@ architecture (x86_64)?"
> >                                                   (%current-system))))
> >    (string-prefix? "powerpc" target))
> >  
> > +(define* (target-riscv? #:optional (target (or (%current-target-system)
> > +                                               (%current-system))))
> > +  "Is the architecture of TARGET a 'riscv' architecture variant?"
> > +  (string-prefix? "riscv" target))
> > +
> >  (define* (target-64bit? #:optional (system (or (%current-target-system)
> >                                                 (%current-system))))
> >    (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" "powerpc64")))
> 
> The next patch adds a ‘riscv64-linux-gnu’ target.  riscv64 seems 64-bit to me.
> It would seem riscv64 needs to be added to target-64bit?.
> 
> Greetings,
> Maxime.

The next patch also adds riscv64-linux to target-64bit?, since that's
pretty much "when it begins to exist".


-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:34:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 04/21] gnu: %boot3-inputs: Add missing input.
Date: Tue, 17 Aug 2021 13:29:46 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 01:19:02PM +0300, Efraim Flashner wrote:
> * gnu/packages/commencement.scm (%boot3-inputs): Add gcc:lib.
> ---
>  gnu/packages/commencement.scm | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index 69cf30483d..e2339170e5 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -3579,6 +3579,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
>  (define (%boot3-inputs)
>    ;; 4th stage inputs.
>    `(("gcc" ,gcc-final)
> +    ,@(if (target-riscv?)
> +        `(("gcc:lib" ,gcc-final "lib"))
> +        '())
>      ("ld-wrapper" ,ld-wrapper-boot3)
>      ,@(alist-delete "gcc" (%boot2-inputs))))
>  
> -- 
> 2.32.0
> 

I haven't figured out why gcc doesn't seem to pull in gcc:lib (or
gfortran and gfortran:lib), but only on riscv64-linux. Without gcc:lib I
get failures during the configure phase.

-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:35:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 05/21] gnu: guile: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:30:54 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 01:19:03PM +0300, Efraim Flashner wrote:
> * gnu/packages/guile.scm (guile-3.0)[arguments]: On riscv64-linux add
> a phase to skip a failing test.
> ---
>  gnu/packages/guile.scm | 22 +++++++++++++---------
>  1 file changed, 13 insertions(+), 9 deletions(-)
> 
> diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
> index fffc30f913..f9a7125f83 100644
> --- a/gnu/packages/guile.scm
> +++ b/gnu/packages/guile.scm
> @@ -65,7 +65,8 @@
>    #:use-module (guix deprecation)
>    #:use-module (guix utils)
>    #:use-module (ice-9 match)
> -  #:use-module ((srfi srfi-1) #:prefix srfi-1:))
> +  #:use-module ((srfi srfi-1) #:prefix srfi-1:)
> +  #:use-module (srfi srfi-26))
>  
>  ;;; Commentary:
>  ;;;
> @@ -346,14 +347,17 @@ without requiring the source code to be rewritten.")
>                         ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
>                         (substitute* "bootstrap/Makefile.in"
>                           (("^GUILE_OPTIMIZATIONS.*")
> -                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))
> -                   (add-after 'unpack 'skip-failing-fdes-test
> -                     (lambda _
> -                       ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
> -                       (substitute* "test-suite/tests/ports.test"
> -                         (("fdes not closed\"" all) (string-append all "(exit 77)")))
> -                       #t)))
> -                 '())))))
> +                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n")))))
> +                 '())
> +           ,@(if (srfi-1:any (cute string-prefix? <> (%current-system))
> +                             '("powerpc-" "riscv64-"))

this should be switched to
,@(if (or (target-ppc32?)
          (target-riscv?))

> +               `((add-after 'unpack 'skip-failing-fdes-test
> +                   (lambda _
> +                     ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
> +                     (substitute* "test-suite/tests/ports.test"
> +                       (("fdes not closed\"" all) (string-append all "(exit 77)")))
> +                     #t)))
> +               '())))))
>  
>      (native-search-paths
>       (list (search-path-specification
> -- 
> 2.32.0
> 

-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:35:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 11/21] gnu: libtool: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:32:34 +0300
[Message part 1 (text/plain, inline)]
Since this touches the patch for libtool it would involve a rebuild of
everything depending on libtool. I can of course rewrite this so it adds
a phase only for riscv64-linux and then undo it in core-updates.

On Tue, Aug 17, 2021 at 01:19:09PM +0300, Efraim Flashner wrote:
> * gnu/packages/patches/libtool-skip-tests2.patch: Also skip pie tests
> on riscv architectures.
> ---
>  gnu/packages/patches/libtool-skip-tests2.patch | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/gnu/packages/patches/libtool-skip-tests2.patch b/gnu/packages/patches/libtool-skip-tests2.patch
> index c9d61e3b41..b0a479325f 100644
> --- a/gnu/packages/patches/libtool-skip-tests2.patch
> +++ b/gnu/packages/patches/libtool-skip-tests2.patch
> @@ -1,4 +1,4 @@
> -Skip the nopic test on ARM and MIPS systems.
> +Skip the nopic test on ARM, MIPS and RISCV systems.
>  
>  --- libtool-2.4.6/tests/demo.at.orig	2015-01-16 13:52:04.000000000 -0500
>  +++ libtool-2.4.6/tests/demo.at	2015-02-16 10:48:51.435851966 -0500
> @@ -7,7 +7,7 @@ Skip the nopic test on ARM and MIPS systems.
>   
>   AT_CHECK([case $host in
>  -hppa*|x86_64*|s390*)
> -+hppa*|x86_64*|s390*|arm*|mips*)
> ++hppa*|x86_64*|s390*|arm*|mips*|riscv*)
>     # These hosts cannot use non-PIC shared libs
>     exit 77 ;;
>   *-solaris*|*-sunos*)
> @@ -18,7 +18,7 @@ Skip the nopic test on ARM and MIPS systems.
>   { set +x
>   $as_echo "$at_srcdir/demo.at:535: case \$host in
>  -hppa*|x86_64*|s390*)
> -+hppa*|x86_64*|s390*|arm*|mips*)
> ++hppa*|x86_64*|s390*|arm*|mips*|riscv*)
>     # These hosts cannot use non-PIC shared libs
>     exit 77 ;;
>   *-solaris*|*-sunos*)
> @@ -27,7 +27,7 @@ Skip the nopic test on ARM and MIPS systems.
>   at_fn_check_prepare_notrace 'a `...` command substitution' "demo.at:535"
>   ( $at_check_trace; case $host in
>  -hppa*|x86_64*|s390*)
> -+hppa*|x86_64*|s390*|arm*|mips*)
> ++hppa*|x86_64*|s390*|arm*|mips*|riscv*)
>     # These hosts cannot use non-PIC shared libs
>     exit 77 ;;
>   *-solaris*|*-sunos*)
> -- 
> 2.32.0
> 

-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:37:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 18/21] gnu: texlive-bin: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 13:34:11 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 01:19:16PM +0300, Efraim Flashner wrote:
> * gnu/packages/tex.scm (texlive-bin)[arguments]: Adjust configure-flags
> for riscv64-linux to skip luajit based binaries. Add phase to skip some
> tests.
> ---
>  gnu/packages/tex.scm | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
> index c00c2ae177..b96aadc357 100644
> --- a/gnu/packages/tex.scm
> +++ b/gnu/packages/tex.scm
> @@ -338,13 +338,14 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
>           "--with-system-teckit"
>           "--with-system-zlib"
>           "--with-system-zziplib"
> -         ;; LuaJIT is not ported to powerpc64le* yet.
> -         ,@(if (string-prefix? "powerpc64le" (or (%current-target-system)
> -                                                 (%current-system)))
> -               '("--disable-luajittex"
> -                 "--disable-luajithbtex"
> -                 "--disable-mfluajit")
> -               '()))
> +         ;; LuaJIT is not ported to some architectures yet.
> +         ,@(if (or (string-prefix? "powerpc64le" (or (%current-target-system)
> +                                                     (%current-system)))
> +                   (target-riscv?))

I don't think I pushed the patch yet to add target-ppc64le? as an option
yet, but I'll rewrite this one when I do.

> +             '("--disable-luajittex"
> +               "--disable-luajithbtex"
> +               "--disable-mfluajit")
> +             '()))
>  
>        ;; Disable tests on some architectures to cope with a failure of
>        ;; luajiterr.test.
> @@ -385,7 +386,8 @@ files from LOCATIONS with expected checksum HASH.  CODE is not currently in use.
>                 (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1")
>                  "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77"))
>               #t))
> -         ,@(if (target-ppc32?)
> +         ,@(if (or (target-ppc32?)
> +                   (target-riscv?))
>               ;; Some mendex tests fail on some architectures.
>               `((add-after 'unpack 'skip-mendex-tests
>                   (lambda _
> -- 
> 2.32.0
> 

-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:38:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 20/21] gnu: lz4: Build on riscv64-linux without valgrind.
Date: Tue, 17 Aug 2021 13:35:35 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 01:19:18PM +0300, Efraim Flashner wrote:
> * gnu/packages/compression.scm (lz4)[native-inputs]: Don't use valgrind
> when building for riscv64-linux.
> ---
>  gnu/packages/compression.scm | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
> index 93d517abd5..1803237e6e 100644
> --- a/gnu/packages/compression.scm
> +++ b/gnu/packages/compression.scm
> @@ -819,7 +819,9 @@ decompression of some loosely related file formats used by Microsoft.")
>      (native-inputs
>       `(;; For tests.
>         ("python" ,python)
> -       ("valgrind" ,valgrind)))
> +       ,@(if (target-riscv?)
> +           '()
> +           `(("valgrind" ,valgrind)))))
>      (arguments
>       `(;; Not designed for parallel testing.
>         ;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821
> -- 
> 2.32.0
> 

Valgrind added support for riscv64-linux after the last release, but the
patch isn't easy to backport. I've thought about adding a valgrind-next
and pulling from a recent commit but I'm not sure it's actually worth
it.

-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 10:45:02 GMT) Full text and rfc822 format available.

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

From: Maxime Devos <maximedevos <at> telenet.be>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 05/21] gnu: guile: Fix building on
 riscv64-linux.
Date: Tue, 17 Aug 2021 12:44:44 +0200
[Message part 1 (text/plain, inline)]
>  ;;; Commentary:
>  ;;;
> @@ -346,14 +347,17 @@ without requiring the source code to be rewritten.")
>                         ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
>                         (substitute* "bootstrap/Makefile.in"
>                           (("^GUILE_OPTIMIZATIONS.*")
> -                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))
> -                   (add-after 'unpack 'skip-failing-fdes-test
> -                     (lambda _
> -                       ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
> -                       (substitute* "test-suite/tests/ports.test"
> -                         (("fdes not closed\"" all) (string-append all "(exit 77)")))
> -                       #t)))
> -                 '())))))
> +                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n")))))
> +                 '())
> +           ,@(if (srfi-1:any (cute string-prefix? <> (%current-system))
> +                             '("powerpc-" "riscv64-"))
> +               `((add-after 'unpack 'skip-failing-fdes-test
> +                   (lambda _
> +                     ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
> +                     (substitute* "test-suite/tests/ports.test"
> +                       (("fdes not closed\"" all) (string-append all "(exit 77)")))
> +                     #t)))
> +               '())))))

This is not powerpc- or riscv64-specific -- iirc, I sometimes encounter it on a x86_64.
It's non-determenistic though.  The debian patch has a nice explanation:
<https://salsa.debian.org/rlb/deb-guile/-/blob/f24ab0150132d906b9724128576c36c39361cab7/debian/patches/0007-Fix-non-revealed-port-is-closed-ports.test.patch>.
I've also linked some of the public reports on the issue together:
<https://issues.guix.gnu.org/48389#11>.

Could the patch (or substitution) be applied, independently of the architecture?

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

Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 10:50:02 GMT) Full text and rfc822 format available.

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

From: Maxime Devos <maximedevos <at> telenet.be>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 11/21] gnu: libtool: Fix building on
 riscv64-linux.
Date: Tue, 17 Aug 2021 12:49:12 +0200
[Message part 1 (text/plain, inline)]
Efraim Flashner schreef op di 17-08-2021 om 13:19 [+0300]:
> * gnu/packages/patches/libtool-skip-tests2.patch: Also skip pie tests
> on riscv architectures.
> ---
>  gnu/packages/patches/libtool-skip-tests2.patch | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 

Does upstream know about the issue?
I would recommend including a link to the upstream bug report.
(in libtool-skip-tests2.patch or in a comment in the 'libtool'
package definition).

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

Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 11:00:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 05/21] gnu: guile: Fix building on
 riscv64-linux.
Date: Tue, 17 Aug 2021 13:56:51 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 12:44:44PM +0200, Maxime Devos wrote:
> >  ;;; Commentary:
> >  ;;;
> > @@ -346,14 +347,17 @@ without requiring the source code to be rewritten.")
> >                         ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
> >                         (substitute* "bootstrap/Makefile.in"
> >                           (("^GUILE_OPTIMIZATIONS.*")
> > -                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))))
> > -                   (add-after 'unpack 'skip-failing-fdes-test
> > -                     (lambda _
> > -                       ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
> > -                       (substitute* "test-suite/tests/ports.test"
> > -                         (("fdes not closed\"" all) (string-append all "(exit 77)")))
> > -                       #t)))
> > -                 '())))))
> > +                          "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n")))))
> > +                 '())
> > +           ,@(if (srfi-1:any (cute string-prefix? <> (%current-system))
> > +                             '("powerpc-" "riscv64-"))
> > +               `((add-after 'unpack 'skip-failing-fdes-test
> > +                   (lambda _
> > +                     ;; ERROR: ((system-error "seek" "~A" ("Bad file descriptor") (9)))
> > +                     (substitute* "test-suite/tests/ports.test"
> > +                       (("fdes not closed\"" all) (string-append all "(exit 77)")))
> > +                     #t)))
> > +               '())))))
> 
> This is not powerpc- or riscv64-specific -- iirc, I sometimes encounter it on a x86_64.
> It's non-determenistic though.  The debian patch has a nice explanation:
> <https://salsa.debian.org/rlb/deb-guile/-/blob/f24ab0150132d906b9724128576c36c39361cab7/debian/patches/0007-Fix-non-revealed-port-is-closed-ports.test.patch>.

It is deterministic on powerpc and riscv64 though.

> I've also linked some of the public reports on the issue together:
> <https://issues.guix.gnu.org/48389#11>.
> 
> Could the patch (or substitution) be applied, independently of the architecture?

It could, but it affects everything back to guile-final, so it's world
rebuilding.

> Greetings,
> Maxime.



-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 11:01:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 11/21] gnu: libtool: Fix building on
 riscv64-linux.
Date: Tue, 17 Aug 2021 13:58:02 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 12:49:12PM +0200, Maxime Devos wrote:
> Efraim Flashner schreef op di 17-08-2021 om 13:19 [+0300]:
> > * gnu/packages/patches/libtool-skip-tests2.patch: Also skip pie tests
> > on riscv architectures.
> > ---
> >  gnu/packages/patches/libtool-skip-tests2.patch | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> 
> Does upstream know about the issue?
> I would recommend including a link to the upstream bug report.
> (in libtool-skip-tests2.patch or in a comment in the 'libtool'
> package definition).
> 
> Greetings,
> Maxime.

I have to assume upstream knows about it, Debian has a similar patch
they've been using for years. I'll see what I can find about getting a
link for a bug report.


-- 
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#50091; Package guix-patches. (Tue, 17 Aug 2021 15:00:01 GMT) Full text and rfc822 format available.

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

From: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
To: 50091 <at> debbugs.gnu.org
Cc: Efraim Flashner <efraim <at> flashner.co.il>
Subject: Re: [bug#50091] [PATCH 07/21] gnu: bdb: Fix building on riscv64-linux.
Date: Tue, 17 Aug 2021 11:58:44 -0300
Hello Efraim,

Em terça-feira, 17 de agosto de 2021, às 07:19:05 -03, Efraim Flashner 
escreveu:
> * gnu/packages/dbm.scm (bdb)[arguments]: Modify configure to build for
> the currect architecture when building for riscv64-linux.
> ---
>  gnu/packages/dbm.scm | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
> index ce84ef9eda..c2bdaf782a 100644
> --- a/gnu/packages/dbm.scm
> +++ b/gnu/packages/dbm.scm
> @@ -1,7 +1,7 @@
>  ;;; GNU Guix --- Functional package management for GNU
>  ;;; Copyright © 2012, 2013, 2014, 2016, 2020 Ludovic Courtès
> <ludo <at> gnu.org> ;;; Copyright © 2013, 2015 Andreas Enge <andreas <at> enge.fr>
> -;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner
> <efraim <at> flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2020, 2021
> 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 © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
> @@ -28,7 +28,8 @@
>    #:use-module (guix packages)
>    #:use-module (guix download)
>    #:use-module (guix build-system gnu)
> -  #:use-module (guix utils))
> +  #:use-module (guix utils)
> +  #:use-module (ice-9 match))
> 
>  ;;; Commentary:
>  ;;;
> @@ -72,15 +73,15 @@
>                         (string-append "CONFIG_SHELL=" (which "bash"))
>                         (string-append "SHELL=" (which "bash"))
> 
> -                       ;; Bdb doesn't recognize aarch64 as an
> architecture. -                       ,@(if (string=? "aarch64-linux"
> (%current-system)) -                            
> '("--build=aarch64-unknown-linux-gnu") -                            
> '())
> -
> -                       ;; Bdb doesn't recognize powerpc64le as an
> architecture. -                       ,@(if (string=?
> "powerpc64le-linux" (%current-system)) -                            
> '("--build=powerpc64le-unknown-linux-gnu") -                            
> '())
> +                       ;; Bdb doesn't recognize very many architectures.
> +                       ,@(match (%current-system)
> +                           ("aarch64-linux"
> +                            '("--build=aarch64-unknown-linux-gnu"))
> +                           ("powerpc64le-linux"
> +                            '("--build=powerpc64le-unknown-linux-gnu"))
> +                           ("riscv64-linux"
> +                            '("--build=riscv64-unknown-linux-gnu"))
> +                           (_ '()))
> 
>                         ,@(if (%current-target-system)         ; cross
> building '((string-append "--host=" target))

Can this be fixed instead by updating ‘config.guess’ and ‘config.sub’ as 
done in https://issues.guix.gnu.org/50086#1 ?

That could possibly even fix cross-building (as it does for ‘pth’) and 
eliminate the need for all the “,@” forms in the ‘configure’ phase.

-- 
Thanks,
Thiago






Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 15:16:01 GMT) Full text and rfc822 format available.

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

From: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 18/21] gnu: texlive-bin: Fix building on
 riscv64-linux.
Date: Tue, 17 Aug 2021 12:15:16 -0300
Hello Efraim,

Em terça-feira, 17 de agosto de 2021, às 07:34:11 -03, Efraim Flashner 
escreveu:
> On Tue, Aug 17, 2021 at 01:19:16PM +0300, Efraim Flashner wrote:
> > * gnu/packages/tex.scm (texlive-bin)[arguments]: Adjust configure-flags
> > for riscv64-linux to skip luajit based binaries. Add phase to skip some
> > tests.
> > ---
> > 
> >  gnu/packages/tex.scm | 18 ++++++++++--------
> >  1 file changed, 10 insertions(+), 8 deletions(-)
> > 
> > diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
> > index c00c2ae177..b96aadc357 100644
> > --- a/gnu/packages/tex.scm
> > +++ b/gnu/packages/tex.scm
> > @@ -338,13 +338,14 @@ files from LOCATIONS with expected checksum HASH.
> >  CODE is not currently in use.> 
> >           "--with-system-teckit"
> >           "--with-system-zlib"
> >           "--with-system-zziplib"
> > 
> > -         ;; LuaJIT is not ported to powerpc64le* yet.
> > -         ,@(if (string-prefix? "powerpc64le" (or
> > (%current-target-system) -                                            
> >     (%current-system))) -               '("--disable-luajittex"
> > -                 "--disable-luajithbtex"
> > -                 "--disable-mfluajit")
> > -               '()))
> > +         ;; LuaJIT is not ported to some architectures yet.
> > +         ,@(if (or (string-prefix? "powerpc64le" (or
> > (%current-target-system) +                                            
> >         (%current-system))) +                   (target-riscv?))
> 
> I don't think I pushed the patch yet to add target-ppc64le? as an option
> yet, but I'll rewrite this one when I do.

Nice, thanks!

You’ll also need a corresponding change in ‘texlive-texmf’, similar to the 
one added in https://issues.guix.gnu.org/50081 .

-- 
Thanks,
Thiago






Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 15:24:01 GMT) Full text and rfc822 format available.

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

From: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
To: 50091 <at> debbugs.gnu.org, Efraim Flashner <efraim <at> flashner.co.il>
Subject: Re: [bug#50091] [PATCH 19/21] gnu: texlive-updmap.cfg: Update hash.
Date: Tue, 17 Aug 2021 12:23:27 -0300
Hi,

Em terça-feira, 17 de agosto de 2021, às 07:19:17 -03, Efraim Flashner 
escreveu:
> The hash seems to have changed.

That’s true. I get the same hash as the new one in this patch when I 
manually download ‘updmap.cfg’.

How did you notice it? I didn’t get an error in my (admittedly basic) tests 
of the TeX Live packages.

Thanks for fixing it.

-- 
Thanks,
Thiago






Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 15:27:02 GMT) Full text and rfc822 format available.

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

From: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 20/21] gnu: lz4: Build on riscv64-linux
 without valgrind.
Date: Tue, 17 Aug 2021 12:26:33 -0300
Hello,

Em terça-feira, 17 de agosto de 2021, às 07:35:35 -03, Efraim Flashner 
escreveu:
> On Tue, Aug 17, 2021 at 01:19:18PM +0300, Efraim Flashner wrote:
> > * gnu/packages/compression.scm (lz4)[native-inputs]: Don't use valgrind
> > when building for riscv64-linux.
> > ---
> > 
> >  gnu/packages/compression.scm | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/gnu/packages/compression.scm
> > b/gnu/packages/compression.scm
> > index 93d517abd5..1803237e6e 100644
> > --- a/gnu/packages/compression.scm
> > +++ b/gnu/packages/compression.scm
> > @@ -819,7 +819,9 @@ decompression of some loosely related file formats
> > used by Microsoft.")> 
> >      (native-inputs
> >      
> >       `(;; For tests.
> >       
> >         ("python" ,python)
> > 
> > -       ("valgrind" ,valgrind)))
> > +       ,@(if (target-riscv?)
> > +           '()
> > +           `(("valgrind" ,valgrind)))))
> > 
> >      (arguments
> >      
> >       `(;; Not designed for parallel testing.
> >       
> >         ;; See
> >         https://github.com/lz4/lz4/issues/957#issuecomment-737419821
> 
> Valgrind added support for riscv64-linux after the last release, but the
> patch isn't easy to backport. I've thought about adding a valgrind-next
> and pulling from a recent commit but I'm not sure it's actually worth
> it.

IMHO, either the commit message or the code would benefit from a note 
mentioning that the current version of Valgrind doesn’t support
riscv64-linux.

-- 
Thanks,
Thiago






Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Tue, 17 Aug 2021 19:34:01 GMT) Full text and rfc822 format available.

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

From: Sarah Morgensen <iskarian <at> mgsn.dev>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 10/21] gnu: openssl: Fix build on
 riscv64-linux.
Date: Tue, 17 Aug 2021 12:33:45 -0700
Hi Efraim,

Efraim Flashner <efraim <at> flashner.co.il> writes:

> * gnu/packages/tls.scm (openssl)[arguments]: Add phase for riscv64-linux
> to skip failing test.
> (target->openssl-target): Add case for riscv64-linux.
> ---
>  gnu/packages/tls.scm | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
> index 4b8df04f17..f6cdeac363 100644
> --- a/gnu/packages/tls.scm
> +++ b/gnu/packages/tls.scm
> @@ -337,7 +337,10 @@ OpenSSL for TARGET."
>          ((string-prefix? "powerpc64" target)
>           "linux-ppc64")
>          ((string-prefix? "powerpc" target)
> -         "linux-ppc")))
> +         "linux-ppc")
> +        ((string-prefix? "riscv64" target)
> +         ;; linux64-riscv64 isn't recognized until 3.0.0.
> +         "linux-generic64")))
>  
>  (define-public openssl
>    (package
> @@ -380,6 +383,12 @@ OpenSSL for TARGET."
>                                 #$(target->openssl-target
>                                    (%current-target-system))))))
>                  #~())
> +         ;; Unclear why this test is failing.
> +         #$@(if (target-riscv?)
> +              #~((add-after 'unpack 'skip-failing-test
> +                   (lambda _
> +                     (delete-file "test/recipes/30-test_afalg.t"))))
> +              #~())
>           (replace 'configure
>             (lambda* (#:key configure-flags #:allow-other-keys)
>               (let* ((out #$output)

This test is also failing on aarch64 [0] and has been reported upstream
for some time [1] with no action.

Looks like it can also be disabled with

  make TESTS=-test_afalg test

if that's more desirable.

[0] https://ci.guix.gnu.org/build/29270/details
[1] https://github.com/openssl/openssl/issues/12242

--
Sarah




Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Wed, 18 Aug 2021 07:12:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Sarah Morgensen <iskarian <at> mgsn.dev>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 10/21] gnu: openssl: Fix build on
 riscv64-linux.
Date: Wed, 18 Aug 2021 10:09:39 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 12:33:45PM -0700, Sarah Morgensen wrote:
> Hi Efraim,
> 
> Efraim Flashner <efraim <at> flashner.co.il> writes:
> 
> > * gnu/packages/tls.scm (openssl)[arguments]: Add phase for riscv64-linux
> > to skip failing test.
> > (target->openssl-target): Add case for riscv64-linux.
> > ---
> >  gnu/packages/tls.scm | 11 ++++++++++-
> >  1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
> > index 4b8df04f17..f6cdeac363 100644
> > --- a/gnu/packages/tls.scm
> > +++ b/gnu/packages/tls.scm
> > @@ -337,7 +337,10 @@ OpenSSL for TARGET."
> >          ((string-prefix? "powerpc64" target)
> >           "linux-ppc64")
> >          ((string-prefix? "powerpc" target)
> > -         "linux-ppc")))
> > +         "linux-ppc")
> > +        ((string-prefix? "riscv64" target)
> > +         ;; linux64-riscv64 isn't recognized until 3.0.0.
> > +         "linux-generic64")))
> >  
> >  (define-public openssl
> >    (package
> > @@ -380,6 +383,12 @@ OpenSSL for TARGET."
> >                                 #$(target->openssl-target
> >                                    (%current-target-system))))))
> >                  #~())
> > +         ;; Unclear why this test is failing.
> > +         #$@(if (target-riscv?)
> > +              #~((add-after 'unpack 'skip-failing-test
> > +                   (lambda _
> > +                     (delete-file "test/recipes/30-test_afalg.t"))))
> > +              #~())
> >           (replace 'configure
> >             (lambda* (#:key configure-flags #:allow-other-keys)
> >               (let* ((out #$output)
> 
> This test is also failing on aarch64 [0] and has been reported upstream
> for some time [1] with no action.

I was able to build openssl without any problems on my pine64, I'll run
it again and see what I come up with.

Looking at the bug report, it looks like it also might be kernel
dependant and/or related to cross compiling. I'm pretty sure the aarch64
builders are running Guix System, and my pine64 is running Armbian.

I'll go ahead and disable it for all the arm* architectures.

> Looks like it can also be disabled with
> 
>   make TESTS=-test_afalg test
> 
> if that's more desirable.

I do like that better.

> [0] https://ci.guix.gnu.org/build/29270/details
> [1] https://github.com/openssl/openssl/issues/12242
> 
> --
> Sarah

-- 
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#50091; Package guix-patches. (Wed, 18 Aug 2021 07:13:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 19/21] gnu: texlive-updmap.cfg: Update hash.
Date: Wed, 18 Aug 2021 10:10:50 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 12:23:27PM -0300, Thiago Jung Bauermann wrote:
> Hi,
> 
> Em terça-feira, 17 de agosto de 2021, às 07:19:17 -03, Efraim Flashner 
> escreveu:
> > The hash seems to have changed.
> 
> That’s true. I get the same hash as the new one in this patch when I 
> manually download ‘updmap.cfg’.
> 
> How did you notice it? I didn’t get an error in my (admittedly basic) tests 
> of the TeX Live packages.

On some of my machines I build without substitutes, so when this one
changed upstream it showed up.

> Thanks for fixing it.

Don't thank me just yet, I still need to see what changed between the
two versions.

> -- 
> Thanks,
> Thiago
> 
> 

-- 
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#50091; Package guix-patches. (Wed, 18 Aug 2021 09:13:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 20/21] gnu: lz4: Build on riscv64-linux
 without valgrind.
Date: Wed, 18 Aug 2021 12:10:43 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 12:26:33PM -0300, Thiago Jung Bauermann wrote:
> Hello,
> 
> Em terça-feira, 17 de agosto de 2021, às 07:35:35 -03, Efraim Flashner 
> escreveu:
> > On Tue, Aug 17, 2021 at 01:19:18PM +0300, Efraim Flashner wrote:
> > > * gnu/packages/compression.scm (lz4)[native-inputs]: Don't use valgrind
> > > when building for riscv64-linux.
> > > ---
> > > 
> > >  gnu/packages/compression.scm | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/gnu/packages/compression.scm
> > > b/gnu/packages/compression.scm
> > > index 93d517abd5..1803237e6e 100644
> > > --- a/gnu/packages/compression.scm
> > > +++ b/gnu/packages/compression.scm
> > > @@ -819,7 +819,9 @@ decompression of some loosely related file formats
> > > used by Microsoft.")> 
> > >      (native-inputs
> > >      
> > >       `(;; For tests.
> > >       
> > >         ("python" ,python)
> > > 
> > > -       ("valgrind" ,valgrind)))
> > > +       ,@(if (target-riscv?)
> > > +           '()
> > > +           `(("valgrind" ,valgrind)))))
> > > 
> > >      (arguments
> > >      
> > >       `(;; Not designed for parallel testing.
> > >       
> > >         ;; See
> > >         https://github.com/lz4/lz4/issues/957#issuecomment-737419821
> > 
> > Valgrind added support for riscv64-linux after the last release, but the
> > patch isn't easy to backport. I've thought about adding a valgrind-next
> > and pulling from a recent commit but I'm not sure it's actually worth
> > it.
> 
> IMHO, either the commit message or the code would benefit from a note 
> mentioning that the current version of Valgrind doesn’t support
> riscv64-linux.
> 

Looks like I was mistaken, libunwind grew riscv64-linux support, not
valgrind.

-- 
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#50091; Package guix-patches. (Wed, 18 Aug 2021 10:44:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Thiago Jung Bauermann <bauermann <at> kolabnow.com>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 19/21] gnu: texlive-updmap.cfg: Update hash.
Date: Wed, 18 Aug 2021 13:41:06 +0300
[Message part 1 (text/plain, inline)]
On Wed, Aug 18, 2021 at 10:10:50AM +0300, Efraim Flashner wrote:
> On Tue, Aug 17, 2021 at 12:23:27PM -0300, Thiago Jung Bauermann wrote:
> > Hi,
> > 
> > Em terça-feira, 17 de agosto de 2021, às 07:19:17 -03, Efraim Flashner 
> > escreveu:
> > > The hash seems to have changed.
> > 
> > That’s true. I get the same hash as the new one in this patch when I 
> > manually download ‘updmap.cfg’.
> > 
> > How did you notice it? I didn’t get an error in my (admittedly basic) tests 
> > of the TeX Live packages.
> 
> On some of my machines I build without substitutes, so when this one
> changed upstream it showed up.
> 
> > Thanks for fixing it.
> 
> Don't thank me just yet, I still need to see what changed between the
> two versions.
> 

Turns out the wrong hash was because it was missed during the Tex Live
2021 update. I've pushed the updated patch to core-updates-frozen.


-- 
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#50091; Package guix-patches. (Wed, 18 Aug 2021 10:47:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Sarah Morgensen <iskarian <at> mgsn.dev>, 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 10/21] gnu: openssl: Fix build on
 riscv64-linux.
Date: Wed, 18 Aug 2021 13:44:55 +0300
[Message part 1 (text/plain, inline)]
On Wed, Aug 18, 2021 at 10:09:39AM +0300, Efraim Flashner wrote:
> On Tue, Aug 17, 2021 at 12:33:45PM -0700, Sarah Morgensen wrote:
> > Hi Efraim,
> > 
> > Efraim Flashner <efraim <at> flashner.co.il> writes:
> > 
> > > * gnu/packages/tls.scm (openssl)[arguments]: Add phase for riscv64-linux
> > > to skip failing test.
> > > (target->openssl-target): Add case for riscv64-linux.
> > > ---
> > >  gnu/packages/tls.scm | 11 ++++++++++-
> > >  1 file changed, 10 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
> > > index 4b8df04f17..f6cdeac363 100644
> > > --- a/gnu/packages/tls.scm
> > > +++ b/gnu/packages/tls.scm
> > > @@ -337,7 +337,10 @@ OpenSSL for TARGET."
> > >          ((string-prefix? "powerpc64" target)
> > >           "linux-ppc64")
> > >          ((string-prefix? "powerpc" target)
> > > -         "linux-ppc")))
> > > +         "linux-ppc")
> > > +        ((string-prefix? "riscv64" target)
> > > +         ;; linux64-riscv64 isn't recognized until 3.0.0.
> > > +         "linux-generic64")))
> > >  
> > >  (define-public openssl
> > >    (package
> > > @@ -380,6 +383,12 @@ OpenSSL for TARGET."
> > >                                 #$(target->openssl-target
> > >                                    (%current-target-system))))))
> > >                  #~())
> > > +         ;; Unclear why this test is failing.
> > > +         #$@(if (target-riscv?)
> > > +              #~((add-after 'unpack 'skip-failing-test
> > > +                   (lambda _
> > > +                     (delete-file "test/recipes/30-test_afalg.t"))))
> > > +              #~())
> > >           (replace 'configure
> > >             (lambda* (#:key configure-flags #:allow-other-keys)
> > >               (let* ((out #$output)
> > 
> > This test is also failing on aarch64 [0] and has been reported upstream
> > for some time [1] with no action.
> 
> I was able to build openssl without any problems on my pine64, I'll run
> it again and see what I come up with.
> 
> Looking at the bug report, it looks like it also might be kernel
> dependant and/or related to cross compiling. I'm pretty sure the aarch64
> builders are running Guix System, and my pine64 is running Armbian.
> 
> I'll go ahead and disable it for all the arm* architectures.
> 
> > Looks like it can also be disabled with
> > 
> >   make TESTS=-test_afalg test
> > 
> > if that's more desirable.
> 
> I do like that better.
> 
> > [0] https://ci.guix.gnu.org/build/29270/details
> > [1] https://github.com/openssl/openssl/issues/12242
> > 

I've pushed the arm* version to core-updates

-- 
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#50091; Package guix-patches. (Tue, 24 Aug 2021 11:56:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 02/21] gnu: bootstrap: Add support for riscv64-linux.
Date: Tue, 24 Aug 2021 14:53:15 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 01:19:00PM +0300, Efraim Flashner wrote:
> On 7d93b21ab1c132990054372a9677c1639d54e631
>     gnu: glibc-for-bootstrap: Update patch.
> 
> Run
>     ./pre-inst-env guix build --target=riscv64-linux-gnu bootstrap-tarballs
> 
> Producing
>     /gnu/store/4hdzva9i0wyyfbgj1lmqc1wkk644pv07-bootstrap-tarballs-0
> 
> With guix hash -rx
>     1nj0fdgj08bbmfny01mp2blv7c3p2iciqh31zmf04ap5s7ygsqlp

I tested this myself with two other machines, one x86_64 running Guix
System and aarch64, running Armbian (based on Debian 10)

From the x86_64 machine:

(ins)efraim <at> E5400 ~$ guix time-machine --commit=7d93b21ab1c132990054372a9677c1639d54e631 \
    -- build --no-substitutes --target=riscv64-linux-gnu bootstrap-tarballs
/gnu/store/4hdzva9i0wyyfbgj1lmqc1wkk644pv07-bootstrap-tarballs-0
(ins)efraim <at> E5400 ~$ guix hash -rx /gnu/store/4hdzva9i0wyyfbgj1lmqc1wkk644pv07-bootstrap-tarballs-0
1nj0fdgj08bbmfny01mp2blv7c3p2iciqh31zmf04ap5s7ygsqlp

(ins)efraim <at> pine64:~$ guix time-machine --commit=7d93b21ab1c132990054372a9677c1639d54e631 \
    -- build --no-substitutes --target=riscv64-linux-gnu bootstrap-tarballs
(ins)efraim <at> pine64:~$ guix hash -rx /gnu/store/my39g68c6g4czzzk0l1bw8jh8jgpsc9s-bootstrap-tarballs-0
07xa3r4ac1qi1vpilr7ia43ifw1yxv3hpi4vz4hjypgl12b8h8x7

So I got a different result from aarch64 than from x86_64.


-- 
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#50091; Package guix-patches. (Thu, 23 Sep 2021 07:31:02 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 07/21] gnu: bdb: Fix building on riscv64-linux.
Date: Thu, 23 Sep 2021 10:28:33 +0300
[Message part 1 (text/plain, inline)]
On Tue, Aug 17, 2021 at 11:58:44AM -0300, Thiago Jung Bauermann wrote:
> Hello Efraim,
> 
> Em terça-feira, 17 de agosto de 2021, às 07:19:05 -03, Efraim Flashner 
> escreveu:
> > * gnu/packages/dbm.scm (bdb)[arguments]: Modify configure to build for
> > the currect architecture when building for riscv64-linux.
> > ---
> >  gnu/packages/dbm.scm | 23 ++++++++++++-----------
> >  1 file changed, 12 insertions(+), 11 deletions(-)
> > 
> > diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm
> > index ce84ef9eda..c2bdaf782a 100644
> > --- a/gnu/packages/dbm.scm
> > +++ b/gnu/packages/dbm.scm
> > @@ -1,7 +1,7 @@
> >  ;;; GNU Guix --- Functional package management for GNU
> >  ;;; Copyright © 2012, 2013, 2014, 2016, 2020 Ludovic Courtès
> > <ludo <at> gnu.org> ;;; Copyright © 2013, 2015 Andreas Enge <andreas <at> enge.fr>
> > -;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner
> > <efraim <at> flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2020, 2021
> > 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 © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
> > @@ -28,7 +28,8 @@
> >    #:use-module (guix packages)
> >    #:use-module (guix download)
> >    #:use-module (guix build-system gnu)
> > -  #:use-module (guix utils))
> > +  #:use-module (guix utils)
> > +  #:use-module (ice-9 match))
> > 
> >  ;;; Commentary:
> >  ;;;
> > @@ -72,15 +73,15 @@
> >                         (string-append "CONFIG_SHELL=" (which "bash"))
> >                         (string-append "SHELL=" (which "bash"))
> > 
> > -                       ;; Bdb doesn't recognize aarch64 as an
> > architecture. -                       ,@(if (string=? "aarch64-linux"
> > (%current-system)) -                            
> > '("--build=aarch64-unknown-linux-gnu") -                            
> > '())
> > -
> > -                       ;; Bdb doesn't recognize powerpc64le as an
> > architecture. -                       ,@(if (string=?
> > "powerpc64le-linux" (%current-system)) -                            
> > '("--build=powerpc64le-unknown-linux-gnu") -                            
> > '())
> > +                       ;; Bdb doesn't recognize very many architectures.
> > +                       ,@(match (%current-system)
> > +                           ("aarch64-linux"
> > +                            '("--build=aarch64-unknown-linux-gnu"))
> > +                           ("powerpc64le-linux"
> > +                            '("--build=powerpc64le-unknown-linux-gnu"))
> > +                           ("riscv64-linux"
> > +                            '("--build=riscv64-unknown-linux-gnu"))
> > +                           (_ '()))
> > 
> >                         ,@(if (%current-target-system)         ; cross
> > building '((string-append "--host=" target))
> 
> Can this be fixed instead by updating ‘config.guess’ and ‘config.sub’ as 
> done in https://issues.guix.gnu.org/50086#1 ?
> 
> That could possibly even fix cross-building (as it does for ‘pth’) and 
> eliminate the need for all the “,@” forms in the ‘configure’ phase.
> 

Sorry for taking so long to get back to you. I finally tried this but
there seems to be a cycle somewhere between bdb and config, so using
config and dropping the custom --build flag isn't currently an option.

-- 
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#50091; Package guix-patches. (Thu, 23 Sep 2021 07:37:01 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 02/21] gnu: bootstrap: Add support for riscv64-linux.
Date: Thu, 23 Sep 2021 10:35:19 +0300
[Message part 1 (text/plain, inline)]
Anyone want to take a look at this patch? We're definitely past the 2
weeks mark but I'm not comfortable pushing a new architecture without
others chiming in.

Even just a 'I ran the guix time-machine command and got the same hash'
response would be helpful. Or a 'lets make sure to keep the sorting of
the architectures consistent across commencement.scm'.

-- 
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#50091; Package guix-patches. (Tue, 28 Sep 2021 04:02:01 GMT) Full text and rfc822 format available.

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

From: Thiago Jung Bauermann <bauermann <at> kolabnow.com>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: 50091 <at> debbugs.gnu.org
Subject: Re: [bug#50091] [PATCH 07/21] gnu: bdb: Fix building on riscv64-linux.
Date: Tue, 28 Sep 2021 01:01:06 -0300
Hello Efraim,

Em quinta-feira, 23 de setembro de 2021, às 04:28:33 -03, Efraim Flashner 
escreveu:
> On Tue, Aug 17, 2021 at 11:58:44AM -0300, Thiago Jung Bauermann wrote:
> > Hello Efraim,
> > 
> > Em terça-feira, 17 de agosto de 2021, às 07:19:05 -03, Efraim Flashner
> > 
> > escreveu:
> > > @@ -72,15 +73,15 @@
> > > 
> > >                         (string-append "CONFIG_SHELL=" (which
> > >                         "bash"))
> > >                         (string-append "SHELL=" (which "bash"))
> > > 
> > > -                       ;; Bdb doesn't recognize aarch64 as an
> > > architecture. -                       ,@(if (string=? "aarch64-linux"
> > > (%current-system)) -
> > > '("--build=aarch64-unknown-linux-gnu") -
> > > '())
> > > -
> > > -                       ;; Bdb doesn't recognize powerpc64le as an
> > > architecture. -                       ,@(if (string=?
> > > "powerpc64le-linux" (%current-system)) -
> > > '("--build=powerpc64le-unknown-linux-gnu") -
> > > '())
> > > +                       ;; Bdb doesn't recognize very many
> > > architectures. +                       ,@(match (%current-system)
> > > +                           ("aarch64-linux"
> > > +                            '("--build=aarch64-unknown-linux-gnu"))
> > > +                           ("powerpc64le-linux"
> > > +                           
> > > '("--build=powerpc64le-unknown-linux-gnu"))
> > > +                           ("riscv64-linux"
> > > +                            '("--build=riscv64-unknown-linux-gnu"))
> > > +                           (_ '()))
> > > 
> > >                         ,@(if (%current-target-system)         ;
> > >                         cross
> > > 
> > > building '((string-append "--host=" target))
> > 
> > Can this be fixed instead by updating ‘config.guess’ and ‘config.sub’
> > as
> > done in https://issues.guix.gnu.org/50086#1 ?
> > 
> > That could possibly even fix cross-building (as it does for ‘pth’) and
> > eliminate the need for all the “,@” forms in the ‘configure’ phase.
> 
> Sorry for taking so long to get back to you.

Not a problem.

> I finally tried this but there seems to be a cycle somewhere between bdb 
> and config, so using config and dropping the custom --build flag isn't 
> currently an option.

Thanks for trying it out. Interestingly, `guix graph --path` can’t find it, 
even with `-t bag`.

If you’d like to make a second try, some packages get the updated 
‘config.guess’ and ‘config.sub’ files from ‘automake’ instead (e.g., the 
‘indent’ package). I don’t know if there would be a cycle in that case as 
well or not.

-- 
Thanks,
Thiago






Information forwarded to guix-patches <at> gnu.org:
bug#50091; Package guix-patches. (Wed, 26 Mar 2025 09:32:01 GMT) Full text and rfc822 format available.

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

From: Andreas Enge <andreas <at> enge.fr>
To: Efraim Flashner <efraim <at> flashner.co.il>, 50091 <at> debbugs.gnu.org
Subject: Re: [PATCH 02/21] gnu: bootstrap: Add support for riscv64-linux.
Date: Wed, 26 Mar 2025 10:31:32 +0100
Hello Efraim,

I came upon this issue as it is tagged with team-science. I think we do
have Risc support in Guix now, can the issue be closed?

Andreas





Reply sent to Efraim Flashner <efraim <at> flashner.co.il>:
You have taken responsibility. (Wed, 26 Mar 2025 10:20:03 GMT) Full text and rfc822 format available.

Notification sent to Efraim Flashner <efraim <at> flashner.co.il>:
bug acknowledged by developer. (Wed, 26 Mar 2025 10:20:03 GMT) Full text and rfc822 format available.

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

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Andreas Enge <andreas <at> enge.fr>
Cc: 50091-done <at> debbugs.gnu.org
Subject: Re: [PATCH 02/21] gnu: bootstrap: Add support for riscv64-linux.
Date: Wed, 26 Mar 2025 12:19:41 +0200
[Message part 1 (text/plain, inline)]
On Wed, Mar 26, 2025 at 10:31:32AM +0100, Andreas Enge wrote:
> Hello Efraim,
> 
> I came upon this issue as it is tagged with team-science. I think we do
> have Risc support in Guix now, can the issue be closed?

Sounds good to me. Whatever else was left to do in this patch can be
done in a new one so it doesn't get lost again.

-- 
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)]

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

This bug report was last modified 41 days ago.

Previous Next


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