~ruther/guix-local

6454208222d6e7760daa964b590f35ea75ffe0e5 — Maxim Cournoyer 3 years ago f27d4c9
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>
1 files changed, 4 insertions(+), 2 deletions(-)

M guix/build/gnu-build-system.scm
M guix/build/gnu-build-system.scm => guix/build/gnu-build-system.scm +4 -2
@@ 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.