aboutsummaryrefslogtreecommitdiff
path: root/gnu
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:36:25 +0100
commiteacd072c09f8e4b5e0264d39ea9afe7814247f46 (patch)
treed41f424f17a3672d29a1d7c0110dfc7de64684e8 /gnu
parent154d97abdd16674fdebc763351f661bbcdc869a4 (diff)
downloadguix-eacd072c09f8e4b5e0264d39ea9afe7814247f46.tar
guix-eacd072c09f8e4b5e0264d39ea9afe7814247f46.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')
-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 19432817ca..3552c2e281 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")