summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 22878a20b0..5c46d00b20 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -44,8 +44,21 @@
`(cons ,(string-append "--target=" target)
,flags))))))
-(define cross-binutils
- (cut cross binutils <>))
+(define (cross-binutils target)
+ "Return a cross-Binutils for TARGET."
+ (let ((binutils (package (inherit binutils)
+ (arguments
+ (substitute-keyword-arguments (package-arguments
+ binutils)
+ ((#:configure-flags flags)
+ ;; Build with `--with-sysroot' so that ld honors
+ ;; DT_RUNPATH entries when searching for a needed
+ ;; library. This works because as a side effect
+ ;; `genscripts.sh' sets `USE_LIBPATH=yes', which tells
+ ;; elf32.em to use DT_RUNPATH in its search list.
+ `(cons "--with-sysroot=/no-such-path"
+ ,flags)))))))
+ (cross binutils target)))
(define* (cross-gcc target
#:optional (xbinutils (cross-binutils target)) libc)