From 6454208222d6e7760daa964b590f35ea75ffe0e5 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 6 Dec 2022 20:44:54 -0500 Subject: [PATCH] build: gnu-build-system: Remove source from native inputs. Fixes , in a cross-compilation context. Having the source in inputs when computing search paths can break builds. One example is a git checkout of the Linux source tree, where the source (a directory) 'include' subdirectory gets picked up in C_INCLUDE_PATH and causes conflicts with the includes provided by glibc. * guix/build/gnu-build-system.scm (set-paths): Remove any "source" native input. Signed-off-by: Maxim Cournoyer --- guix/build/gnu-build-system.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index b5b4468a45..ef5873d793 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -83,10 +83,12 @@ there are none." dir))) (define native-input-directories - (match native-inputs + ;; When cross-compiling, the source appears in native-inputs rather than + ;; inputs. + (match (and=> native-inputs (cut alist-delete "source" <>)) (((_ . dir) ...) dir) - (#f ; not cross compiling + (#f ;not cross-compiling '()))) ;; Tell 'ld-wrapper' to disallow non-store libraries.