Subject: [PATCH] gnu: gdb: Ensure configure-flags are appended to original package

From: Rutherther <[email-masked]>
Date: Wed, 11 Dec 2024 20:35:45 +0100

Since recently there has been a change to gdb package that introduced
configure-flags, three gdb packages broke, since they assumed there are no
configure-flags in gdb. That means they produced the same gdb as gdb-14.

* gnu/packages/embedded.scm (make-gdb-arm-none-eabi)[arguments]: Append
configure-flags to original flags.
* gnu/packages/gdb.scm (gdb-multiarch)[arguments]: Append
configure-flags to original flags.
* gnu/packages/gdb.scm (avr-gdb)[arguments]: Append
configure-flags to original flags.

Change-Id: Ia8748b86dc72197bd4eef307d091b6af44fc5611
---
 gnu/packages/embedded.scm | 14 ++++++++------
 gnu/packages/gdb.scm      | 32 ++++++++++++++++----------------
 2 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 0dcfc6669f..930857d0aa 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -741,12 +741,14 @@ (define make-gdb-arm-none-eabi
       (inherit gdb)
       (name "gdb-arm-none-eabi")
       (arguments
-       `(#:configure-flags '("--target=arm-none-eabi"
-                             "--enable-multilib"
-                             "--enable-interwork"
-                             "--enable-languages=c,c++"
-                             "--disable-nls")
-         ,@(package-arguments gdb))))))
+       (substitute-keyword-arguments (package-arguments gdb)
+         ((#:configure-flags flags '())
+          #~(cons* "--target=arm-none-eabi"
+                   "--enable-multilib"
+                   "--enable-interwork"
+                   "--enable-languages=c,c++"
+                   "--disable-nls"
+                   #$flags)))))))
 
 (define-public libjaylink
   (package
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index af5ebde3f6..ef100306b4 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -184,14 +184,14 @@ (define-public gdb-multiarch
   (package/inherit gdb-14
     (name "gdb-multiarch")
     (arguments
-     (append
-      (list #:configure-flags
-            #~(list "--enable-targets=all"
-                    "--enable-multilib"
-                    "--enable-interwork"
-                    "--enable-languages=c,c++"
-                    "--disable-nls"))
-      (package-arguments gdb-14)))
+     (substitute-keyword-arguments (package-arguments gdb-14)
+       ((#:configure-flags flags '())
+        #~(cons* "--enable-targets=all"
+                 "--enable-multilib"
+                 "--enable-interwork"
+                 "--enable-languages=c,c++"
+                 "--disable-nls"
+                 #$flags))))
     (synopsis "The GNU debugger (with all architectures enabled)")))
 
 (define-public gdb-minimal
@@ -210,14 +210,14 @@ (define-public avr-gdb
   (package/inherit gdb-14
     (name "avr-gdb")
     (arguments
-     (append
-      (list #:configure-flags
-            #~(list "--target=avr"
-                    "--disable-nls"
-                    "--enable-languages=c,c++"
-                    "--with-system-readline"
-                    "--enable-source-highlight"))
-      (package-arguments gdb-14)))
+     (substitute-keyword-arguments (package-arguments gdb-14)
+       ((#:configure-flags flags '())
+        #~(cons* "--target=avr"
+                 "--disable-nls"
+                 "--enable-languages=c,c++"
+                 "--with-system-readline"
+                 "--enable-source-highlight"
+                 #$flags))))
     (synopsis "The GNU Debugger for AVR")
     (description
      "GDB is the GNU debugger.  With it, you can monitor what a program is

base-commit: 27750bd0cddddab9e900f289a5520314ef66487e
-- 
2.46.0