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.
This commit is contained in:
Mathieu Othacehe 2019-11-16 18:14:31 +01:00
parent 154d97abdd
commit eacd072c09
No known key found for this signature in database
GPG key ID: 8354763531769CA6

View file

@ -679,23 +679,26 @@ (define* (make-linux-libre* version source supported-systems
#t)) #t))
(replace 'configure (replace 'configure
(lambda* (#:key inputs native-inputs target #:allow-other-keys) (lambda* (#:key inputs native-inputs target #:allow-other-keys)
;; Unset CROSS_CPATH to make sure that cross-libc is not ;; On AArch64 (at least), we need to remove glibc headers from
;; found. Otherwise, some of its header would conflict with the ;; CPATH (they are still available as "system headers"), so that
;; one from linux (stdint.h and linux/types.h) ;; the kernel can override uint64_t. See
,@(if (%current-target-system) ;; <https://bugs.gnu.org/37593>. This is also true when
'((unsetenv "CROSS_CPATH")) ;; cross-compiling, except in that case, cross-libc must be
'()) ;; removed from CROSS_CPATH.
(let ((var ,(if (%current-target-system)
;; On AArch64 (at least), we need to remove glibc headers from CPATH "CROSS_CPATH"
;; (they are still available as "system headers"), so that the kernel "CPATH"))
;; can override uint64_t. See <https://bugs.gnu.org/37593>. (libc ,(if (%current-target-system)
(setenv "CPATH" "cross-libc"
"libc")))
(setenv var
(string-join (string-join
(remove (cut string-prefix? (assoc-ref inputs "libc") <>) (remove
(string-split (getenv "CPATH") #\:)) (cut string-prefix? (assoc-ref inputs libc) <>)
(string-split (getenv var) #\:))
":")) ":"))
(format #t "environment variable `CPATH' changed to `~a'~%" (format #t "environment variable `~a' changed to `~a'~%"
(getenv "CPATH")) var (getenv var)))
;; Avoid introducing timestamps ;; Avoid introducing timestamps
(setenv "KCONFIG_NOTIMESTAMP" "1") (setenv "KCONFIG_NOTIMESTAMP" "1")