Subject: [PATCH v2 10/15] gnu: libatomic-ops: Fix build to loongarch64.

From: Zheng Junjie <[email-masked]>
Date: Sat, 25 Jan 2025 00:39:08 +0800

From: Zheng Junjie <[email-masked]>

* gnu/packages/bdw-gc.scm (libatomic-ops)[native-inputs]: When target is
loongarch64, Add config.
[arguments]: When target is loongarch64, Add update-config-scripts phase.

Change-Id: I7a56860910e38985573482d4a4cfa622d8158f7c
---
 gnu/packages/bdw-gc.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index 8eed98d1fd7..71103d1c77f 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -29,6 +29,7 @@ (define-module (gnu packages bdw-gc)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages hurd))
 
 (define-public libgc
@@ -155,6 +156,22 @@ (define-public libatomic-ops
                 "0glzah695wsf6c27hs5wwlw4mnq1vfivdshz1rb8pq7w4mp5dazh"))))
     (build-system gnu-build-system)
     (outputs '("out" "debug"))
+    (native-inputs (if (target-loongarch64?)
+                       (list config)
+                       '()))
+    (arguments (if (target-loongarch64?)
+                   (list #:phases
+                         #~(modify-phases %standard-phases
+                             (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)) "."))
+                                           '("config.guess" "config.sub"))))))
+                   '()))
     (synopsis "Accessing hardware atomic memory update operations")
     (description
      "This C library provides semi-portable access to hardware-provided atomic
-- 
2.47.1