Hi Jan, Jan Nieuwenhuizen <jann...@gnu.org> writes:
> * gnu/packages/patches/gcc-cross-environment-variables.patch: Also use CROSS_ > variants: CROSS_C_INCLUDE_PATH, CROSS_CPLUS_INCLUDE_PATH, > CROSS_OBJC_INCLUDE_PATH, CROSS_OBJCPLUS_INCLUDE_PATH to be used for system > libraries, see > https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00620.html. > * gnu/packages/cross-base.scm (cross-gcc, cross-gcc-arguments, cross-libc): > Use CROSS_*_INCLUDE_PATH (WAS: CPATH). This patch, pushed to master about two weeks ago as commit efc4eb147512fa7a2c6d74d9b296cfc22b1ef198, broke 79 cross-compiled builds on hydra: http://hydra.gnu.org/eval/108933#tabs-now-fail The problem is that 'cross-libc' creates build-side code that uses 'cut' from srfi-26, although (srfi srfi-26) is not loaded on the build side: > @@ -316,9 +330,13 @@ XBINUTILS and the cross tool chain." > `(alist-cons-before > 'configure 'set-cross-linux-headers-path > (lambda* (#:key inputs #:allow-other-keys) > - (let ((linux (assoc-ref inputs "linux-headers"))) > - (setenv "CROSS_CPATH" > - (string-append linux "/include")) > + (let* ((linux (assoc-ref inputs "linux-headers")) > + (cpath (string-append linux "/include"))) > + (for-each (cut setenv <> cpath) > + '("CROSS_C_INCLUDE_PATH" > + "CROSS_CPLUS_INCLUDE_PATH" > + "CROSS_OBJC_INCLUDE_PATH" > + "CROSS_OBJCPLUS_INCLUDE_PATH")) > #t)) > ,phases)))) Leading to "ERROR: Unbound variable: cut". http://hydra.gnu.org/build/1185432/nixlog/3/tail-reload In contrast, 'cross-gcc', which also uses 'cut' in its build-side code, arranges to have (srfi srfi-26) loaded via the '#:modules' argument (lines 232-240 of cross-base.scm): (arguments `(#:implicit-inputs? #f #:modules ((guix build gnu-build-system) (guix build utils) (ice-9 regex) (srfi srfi-1) (srfi srfi-26)) ,@(cross-gcc-arguments target libc))) In addition to this problem with 'cut', there was also a syntax error corrected by Ludovic in commit 0a0884c9916d2d4632c6b86a917ce1fa038cf7a7: commit 0a0884c9916d2d4632c6b86a917ce1fa038cf7a7 Author: Ludovic Courtès <l...@gnu.org> Date: Tue May 3 23:43:49 2016 +0200 gnu: cross: Fix typo. * gnu/packages/cross-base.scm (cross-gcc-arguments): Remove erroneous 'else' introduced in efc4eb147512fa7a2c6d74d9b296cfc22b1ef198. diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 7c76f60..73ac76a 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -199,8 +199,8 @@ may be either a libc package or #f.)" "OBJCPLUS_INCLUDE_PATH" "LIBRARY_PATH")) #t)) - ,phases)) - (else phases))))))) + ,phases) + phases))))))) (define (cross-gcc-patches target) "Return GCC patches needed for TARGET." Given the non-trivial nature of these changes, I assume that you tested your patch set before submitting it, which leads me to conclude that you accidentally sent us a different, untested version of this patch. Can you try to find the version that you tested? Anyway, thanks for your efforts on this important work! Mark