Could you try out the patch in this email?
Now, the problem is that GCC is configured with the native ld.so as the
target system's dynamic linker.
I'm not sure what code is responsible for that, but on the wip-hurd
branch, this exact same problem happens for other platforms as well.
In particular, it happened when I tried:
$ ./pre-inst-env guix build coreutils --target=i686-pc-linux-gnu -K
on an x86_64 box.
--
Marek.
--- guix.old/gnu/packages/cross-base.scm 2015-01-31 11:06:42.025984113 +0100
+++ guix/gnu/packages/cross-base.scm 2015-01-31 10:37:35.290053633 +0100
@@ -151,21 +151,33 @@
`(alist-cons-before
'configure 'set-cross-path
(lambda* (#:key inputs #:allow-other-keys)
- ;; Add the cross Linux headers to CROSS_CPATH, and remove
+ ;; Add the cross kernel headers to CROSS_CPATH, and remove
;; them from CPATH.
(let ((libc (assoc-ref inputs "libc"))
(linux (assoc-ref inputs
- "libc/cross-linux-headers")))
+ "libc/cross-linux-headers"))
+ (mach (assoc-ref inputs
+ "libc/cross-gnumach-headers"))
+ (hurd (assoc-ref inputs
+ "libc/cross-hurd-headers"))
+ (hurd-minimal (assoc-ref inputs
+ "libc/cross-hurd-minimal")))
(define (cross? x)
- ;; Return #t if X is a cross-libc or cross Linux.
+ ;; Return #t if X is a cross-libc or a cross-kernel.
(or (string-prefix? libc x)
- (string-prefix? linux x)))
+ (if linux (string-prefix? linux x) #f)
+ (if hurd (string-prefix? hurd x) #f)
+ (if mach (string-prefix? mach x) #f)
+ (if hurd-minimal (string-prefix? hurd-minimal x) #f)))
(setenv "CROSS_CPATH"
- (string-append libc "/include:"
- linux "/include"))
+ (string-append libc "/include"
+ (if linux (string-append ":" linux "/include") "")
+ (if hurd (string-append ":" hurd "/include"
+ ":" mach "/include") "")))
(setenv "CROSS_LIBRARY_PATH"
- (string-append libc "/lib"))
+ (string-append libc "/lib"
+ (if hurd-minimal (string-append ":" hurd-minimal "/lib") "")))
(let ((cpath (search-path-as-string->list
(getenv "CPATH")))