Subject: [bug#75051] [PATCH 10/14] gnu: bash: Fix cross-compiling to loongarch64.

From: Zheng Junjie <[email-masked]>
Date: Tue, 24 Dec 2024 01:13:20 +0800

* gnu/packages/bash.scm (bash)[native-inputs]: When cross-compiling to
loongarch64, Add config.
[arguments]: When cross-compiling to loongarch64, Add update-config-scripts
phase.

Change-Id: Icadaace85a62582fcb0724dda8f5067d22257cd6
---
 gnu/packages/bash.scm | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 642a4059852..2d30af046ea 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -28,6 +28,7 @@
 (define-module (gnu packages bash)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages compression)
@@ -150,6 +151,10 @@ (define-public bash
      (outputs '("out"
                 "doc"                         ;1.7 MiB of HTML and extra files
                 "include"))                   ;headers used by extensions
+     (native-inputs (if (and (target-loongarch64?)
+                             (%current-target-system))
+                        (list config)
+                        '()))
      (inputs (list readline ncurses))             ;TODO: add texinfo
      (arguments
       `(;; When cross-compiling, `configure' incorrectly guesses that job
@@ -219,7 +224,19 @@ (define-public bash
                                             "/Makefile.inc")
                   (("^INSTALL =.*")
                    "INSTALL = install -c\n"))
-                #t))))))
+                #t)))
+          ,@(if (and (target-loongarch64?)
+                     (%current-target-system))
+                `((add-after 'unpack 'update-config-scripts
+                    (lambda* (#:key inputs native-inputs #:allow-other-keys)
+                      ;; Replace outdated config.guess and config.sub.
+                      (for-each (lambda (file)
+                                  (install-file
+                                   (search-input-file
+                                    (or native-inputs inputs)
+                                    (string-append "/bin/" file)) "./support"))
+                                '("config.guess" "config.sub")))))
+                '()))))
 
      (native-search-paths
       (list (search-path-specification            ;new in 4.4
-- 
2.46.0