(define* (cross-libc/hurd target #:optional (xgcc (cross-gcc/hurd target)) (xbinutils (cross-binutils target)) (xmig (cross-mig target))) "Return a libc cross-built for TARGET, a GNU triplet. Use XGCC and XBINUTILS and the cross tool chain." (define xgnumach-headers (package (inherit gnumach-headers) (name (string-append (package-name gnumach-headers) "-cross-" target)) (native-inputs `(("cross-gcc-hurd" ,xgcc) ("cross-binutils" ,xbinutils) ,@(package-native-inputs gnumach-headers))))) (define xhurd-headers (package (inherit gnumach-headers) (name (string-append (package-name hurd-headers) "-cross-" target)) (native-inputs `(("cross-gcc-hurd" ,xgcc) ("cross-binutils" ,xbinutils) ("cross-mig" ,xmig) ,@(alist-delete "mig"(package-native-inputs hurd-headers)))))) (package (inherit glibc/hurd) (name (string-append "glibc-hurd-cross-" target)) (arguments (substitute-keyword-arguments `(#:strip-binaries? #f ; disable stripping (see above) ,@(package-arguments glibc/hurd)) ((#:configure-flags flags) `(cons ,(string-append "--target=" target) ,flags)))) (propagated-inputs `(("cross-gnumach-headers" ,xgnumach-headers) ("cross-hurd-headers" ,xhurd-headers))) (native-inputs `(("cross-gcc-hurd" ,xgcc) ("cross-binutils" ,xbinutils) ("cross-mig" ,xmig) ,@(alist-delete "mig"(package-native-inputs glibc/hurd))))))