guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/04: gnu: gdb: Remove headers and libraries already in Binutils.


From: Ludovic Courtès
Subject: 04/04: gnu: gdb: Remove headers and libraries already in Binutils.
Date: Wed, 09 Sep 2015 21:27:31 +0000

civodul pushed a commit to branch master
in repository guix.

commit 2fecbdbd82efda717d0e56101afcf41b79404a4f
Author: Ludovic Courtès <address@hidden>
Date:   Wed Sep 9 23:25:22 2015 +0200

    gnu: gdb: Remove headers and libraries already in Binutils.
    
    * gnu/packages/gdb.scm (gdb)[arguments]: Add #:modules.  Rename
      'post-install' phase to 'remove-libs-already-in-binutils'.  Change it
      to compute the intersection of the set of headers and libraries of GDB
      vs. Binutils and to remove each of the files found in both.
---
 gnu/packages/gdb.scm |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 5849831..f17b398 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -46,7 +46,11 @@
                "1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ; FIXME "make check" fails on single-processor systems.
+     `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
+
+       #:modules ((srfi srfi-1)
+                  ,@%gnu-build-system-modules)
+
        #:phases (modify-phases %standard-phases
                   (add-after
                    'configure 'post-configure
@@ -54,15 +58,25 @@
                      (for-each patch-makefile-SHELL
                                (find-files "." "Makefile\\.in"))))
                   (add-after
-                   'install 'post-install
-                   (lambda* (#:key outputs #:allow-other-keys)
-                     ;; Like Binutils, GDB installs libbfd and libopcodes.
+                   'install 'remove-libs-already-in-binutils
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     ;; Like Binutils, GDB installs libbfd, libopcodes, etc.
                      ;; However, this leads to collisions when both are
                      ;; installed, and really is none of its business,
                      ;; conceptually.  So remove them.
-                     (for-each delete-file
-                               (find-files (assoc-ref outputs "out")
-                                           "^lib(opcodes|bfd)\\.")))))))
+                     (let* ((binutils (assoc-ref inputs "binutils"))
+                            (out      (assoc-ref outputs "out"))
+                            (files1   (with-directory-excursion binutils
+                                        (append (find-files "lib")
+                                                (find-files "include"))))
+                            (files2   (with-directory-excursion out
+                                        (append (find-files "lib")
+                                                (find-files "include"))))
+                            (common   (lset-intersection string=?
+                                                         files1 files2)))
+                       (with-directory-excursion out
+                         (for-each delete-file common)
+                         #t)))))))
     (inputs
      `(("expat" ,expat)
        ("mpfr" ,mpfr)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]