diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-09-09 23:25:22 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-09-09 23:27:10 +0200 |
commit | 2fecbdbd82efda717d0e56101afcf41b79404a4f (patch) | |
tree | 9770573838438d9cd7bc9d77edf68cc8a017196a | |
parent | f19b9b96cda5ff45810f1363ef30df8d163451ad (diff) | |
download | gnu-guix-2fecbdbd82efda717d0e56101afcf41b79404a4f.tar gnu-guix-2fecbdbd82efda717d0e56101afcf41b79404a4f.tar.gz |
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.
-rw-r--r-- | 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 5849831f04..f17b398048 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) |