aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2019-11-16 18:14:31 +0100
committerMathieu Othacehe <m.othacehe@gmail.com>2019-11-16 20:40:15 +0100
commit191a9a26b5d1204c32f906a4dd0b6fd4e1b38130 (patch)
treecc62e5b9df119b74b77c45a313d3e6f9f229e33d /gnu/packages/linux.scm
parent4edc4f57bdd29566fd0780353f3b247bb38a266f (diff)
downloadpatches-191a9a26b5d1204c32f906a4dd0b6fd4e1b38130.tar
patches-191a9a26b5d1204c32f906a4dd0b6fd4e1b38130.tar.gz
gnu: linux-libre: Remove cross-libc from CROSS_CPATH.
* gnu/packages/linux.scm (make-linux-libre*)[arguments]: Do not unset CROSS_CPATH completely, instead remove cross-libc from CROSS_CPATH in the same way that libc is removed from CPATH.
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm37
1 files changed, 20 insertions, 17 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8097cf29c5..a5b0ce455f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -679,23 +679,26 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
#t))
(replace 'configure
(lambda* (#:key inputs native-inputs target #:allow-other-keys)
- ;; Unset CROSS_CPATH to make sure that cross-libc is not
- ;; found. Otherwise, some of its header would conflict with the
- ;; one from linux (stdint.h and linux/types.h)
- ,@(if (%current-target-system)
- '((unsetenv "CROSS_CPATH"))
- '())
-
- ;; On AArch64 (at least), we need to remove glibc headers from CPATH
- ;; (they are still available as "system headers"), so that the kernel
- ;; can override uint64_t. See <https://bugs.gnu.org/37593>.
- (setenv "CPATH"
- (string-join
- (remove (cut string-prefix? (assoc-ref inputs "libc") <>)
- (string-split (getenv "CPATH") #\:))
- ":"))
- (format #t "environment variable `CPATH' changed to `~a'~%"
- (getenv "CPATH"))
+ ;; On AArch64 (at least), we need to remove glibc headers from
+ ;; CPATH (they are still available as "system headers"), so that
+ ;; the kernel can override uint64_t. See
+ ;; <https://bugs.gnu.org/37593>. This is also true when
+ ;; cross-compiling, except in that case, cross-libc must be
+ ;; removed from CROSS_CPATH.
+ (let ((var ,(if (%current-target-system)
+ "CROSS_CPATH"
+ "CPATH"))
+ (libc ,(if (%current-target-system)
+ "cross-libc"
+ "libc")))
+ (setenv var
+ (string-join
+ (remove
+ (cut string-prefix? (assoc-ref inputs libc) <>)
+ (string-split (getenv var) #\:))
+ ":"))
+ (format #t "environment variable `~a' changed to `~a'~%"
+ var (getenv var)))
;; Avoid introducing timestamps
(setenv "KCONFIG_NOTIMESTAMP" "1")