summaryrefslogtreecommitdiff
path: root/gnu/packages/cross-base.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-07-19 00:15:44 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-19 00:15:44 +0200
commitaa27987f71cb8afa698ede551e20b1248f160113 (patch)
treeed6f3cc1e79aa849db010f21debccde09a04f9e4 /gnu/packages/cross-base.scm
parent2e839545c7f363b50ae760c9b9c15da9e7619da9 (diff)
gnu: cross-base: Distinguish cross Linux headers from native headers.
Commit c6d33a9 provided an incorrect fix, whereby the "linux-headers" key would be used twice in %BUILD-INPUTS and the 'set-cross-path' phase would refer to the first one of them, which happened to be the native headers, and not the target headers. This patch solves the problem by removing the ambiguity. * gnu/packages/cross-base.scm (cross-gcc-arguments)[set-cross-path]: Remove to "xlinux-headers" instead of "linux-headers". (cross-gcc): When LIBC is true, add explicit "xlinux-headers" input, taken from LIBC's propagated inputs.
Diffstat (limited to 'gnu/packages/cross-base.scm')
-rw-r--r--gnu/packages/cross-base.scm5
1 files changed, 4 insertions, 1 deletions
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 712aa9d585..eda44cea41 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -165,7 +165,7 @@ may be either a libc package or #f.)"
;; Add the cross Linux headers to CROSS_CPATH, and remove them
;; from CPATH.
(let ((libc (assoc-ref inputs "libc"))
- (linux (assoc-ref inputs "linux-headers")))
+ (linux (assoc-ref inputs "xlinux-headers")))
(define (cross? x)
;; Return #t if X is a cross-libc or cross Linux.
(or (string-prefix? libc x)
@@ -244,6 +244,9 @@ GCC that does not target a libc; otherwise, target that libc."
(alist-delete "libc" %final-inputs))))
(if libc
`(("libc" ,libc)
+ ("xlinux-headers" ;the target headers
+ ,@(assoc-ref (package-propagated-inputs libc)
+ "linux-headers"))
,@inputs)
inputs))))