diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-12-06 20:44:54 -0500 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-12-07 09:47:08 -0500 |
commit | 6454208222d6e7760daa964b590f35ea75ffe0e5 (patch) | |
tree | 78f7bdbbf72da87cfa89e0395e062d821d240fb1 | |
parent | f27d4c9a78b64a5290cca905a5ad56d7b82ddbf4 (diff) |
build: gnu-build-system: Remove source from native inputs.
Fixes <https://issues.guix.gnu.org/44924>, 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 <maxim.cournoyer@gmail.com>
-rw-r--r-- | guix/build/gnu-build-system.scm | 6 |
1 files 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. |