diff options
author | Mathieu Othacehe <m.othacehe@gmail.com> | 2019-11-16 18:14:31 +0100 |
---|---|---|
committer | Mathieu Othacehe <m.othacehe@gmail.com> | 2019-11-16 20:40:15 +0100 |
commit | 191a9a26b5d1204c32f906a4dd0b6fd4e1b38130 (patch) | |
tree | cc62e5b9df119b74b77c45a313d3e6f9f229e33d /gnu/packages/linux.scm | |
parent | 4edc4f57bdd29566fd0780353f3b247bb38a266f (diff) | |
download | guix-patches-191a9a26b5d1204c32f906a4dd0b6fd4e1b38130.tar guix-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.scm | 37 |
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") |