gnu: linux-libre: Remove glibc from CPATH before the build.

Fixes <https://bugs.gnu.org/37593>.

* gnu/packages/linux.scm (make-linux-libre*)[arguments]: Drop "libc" from CPATH.
This commit is contained in:
Marius Bakke 2019-10-04 21:36:42 +02:00 committed by Marius Bakke
parent dd69897113
commit c5ceec4150
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA

View file

@ -663,6 +663,7 @@ (define* (make-linux-libre* version source supported-systems
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
#:phases
(modify-phases %standard-phases
@ -679,6 +680,18 @@ (define* (make-linux-libre* version source supported-systems
,@(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"))
;; Avoid introducing timestamps
(setenv "KCONFIG_NOTIMESTAMP" "1")
(setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))