[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)