summary refs log tree commit diff
path: root/gnu/packages/gdb.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-09-14 16:09:47 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-11-11 10:31:32 -0500
commit41f058d10d17802632a1354eb02dd363057ded4b (patch)
tree65e34e9403412298625b245b1c35f57f6f0e53c3 /gnu/packages/gdb.scm
parent472da854f100263a7d62705fecabad7c968454bc (diff)
downloadguix-41f058d10d17802632a1354eb02dd363057ded4b.tar.gz
gnu: gdb: Patch references to /bin/sh and add debug output.
* gnu/packages/gdb.scm (gdb-10)[outputs]: Add a debug output.
[phases]{patch-paths}: New phase.
[inputs]: Add bash.
(gdb-9.2)[phases]{patch-paths}: Override phase.
Diffstat (limited to 'gnu/packages/gdb.scm')
-rw-r--r--gnu/packages/gdb.scm30
1 files changed, 28 insertions, 2 deletions
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index e51e17d5da..064572995e 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -24,6 +24,7 @@
 
 (define-module (gnu packages gdb)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
@@ -35,9 +36,10 @@
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages pkg-config)
+  #:use-module (guix download)
   #:use-module ((guix licenses) #:select (gpl3+))
   #:use-module (guix packages)
-  #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (srfi srfi-1))
@@ -57,6 +59,7 @@
               (search-patches "gdb-hurd.patch"))))
 
     (build-system gnu-build-system)
+    (outputs '("out" "debug"))
     (arguments
      `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
 
@@ -66,6 +69,14 @@
                   ,@%gnu-build-system-modules)
 
        #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-paths
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((sh (string-append (assoc-ref inputs "bash")
+                                               "/bin/sh")))
+                        (substitute* '("gdb/ser-pipe.c"
+                                       "gdbsupport/pathstuff.cc")
+                          (("\"/bin/sh\"")
+                           (format #f "~s" sh))))))
                   (add-after
                    'configure 'post-configure
                    (lambda _
@@ -95,7 +106,8 @@
                          (for-each delete-file common)
                          #t)))))))
     (inputs
-     `(("expat" ,expat)
+     `(("bash" ,bash)
+       ("expat" ,expat)
        ("mpfr" ,mpfr)
        ("gmp" ,gmp)
        ("readline" ,readline)
@@ -151,6 +163,20 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
               (sha256
                (base32
                 "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments gdb-11)
+       ((#:phases phases)
+        ;; Override the patch-paths phase as the pathstuff.c file was later
+        ;; renamed.
+        `(modify-phases ,phases
+           (replace 'patch-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((sh (string-append (assoc-ref inputs "bash")
+                                        "/bin/sh")))
+                 (substitute* '("gdb/gdbsupport/pathstuff.c"
+                                "gdb/ser-pipe.c")
+                   (("\"/bin/sh\"")
+                    (format #f "~s" sh))))))))))
     (inputs
      (alist-replace "guile" (list guile-2.0)
                     (package-inputs gdb-10)))))