summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-05-27 22:23:21 +0200
committerLudovic Courtès <ludo@gnu.org>2013-05-27 23:43:00 +0200
commit47e74d6e9d7d3a5f72a2b67f1916a719c61c86f8 (patch)
treeb641b2ed6f21b339ea3cabe25fa7aad74c2421b6 /gnu
parent4bfc4ea34961894cbe46eed6f2003bfd79646b3c (diff)
gnu: cross-binutils: Build with `--with-sysroot'.
This fixes resolution of DT_NEEDED entries in cross-built libraries. For instance, if ltdl.so needs libdl.so and has it in its RUNPATH, then libdl.so is searched for in the right place. * gnu/packages/cross-base.scm (cross-binutils): Pass `--with-sysroot=/no-such-path'.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/cross-base.scm17
1 files changed, 15 insertions, 2 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 22878a20b07..5c46d00b201 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -44,8 +44,21 @@
44 `(cons ,(string-append "--target=" target) 44 `(cons ,(string-append "--target=" target)
45 ,flags)))))) 45 ,flags))))))
46 46
47(define cross-binutils 47(define (cross-binutils target)
48 (cut cross binutils <>)) 48 "Return a cross-Binutils for TARGET."
49 (let ((binutils (package (inherit binutils)
50 (arguments
51 (substitute-keyword-arguments (package-arguments
52 binutils)
53 ((#:configure-flags flags)
54 ;; Build with `--with-sysroot' so that ld honors
55 ;; DT_RUNPATH entries when searching for a needed
56 ;; library. This works because as a side effect
57 ;; `genscripts.sh' sets `USE_LIBPATH=yes', which tells
58 ;; elf32.em to use DT_RUNPATH in its search list.
59 `(cons "--with-sysroot=/no-such-path"
60 ,flags)))))))
61 (cross binutils target)))
49 62
50(define* (cross-gcc target 63(define* (cross-gcc target
51 #:optional (xbinutils (cross-binutils target)) libc) 64 #:optional (xbinutils (cross-binutils target)) libc)