I am working on the cross-base patch so we can merge it with wip-hurd as well, but some problems need to be discussed. First, in glibc/hurd headers we need to redeclare #:configure-flags with less flags. We shouldn't but because we use the same configure flags as in glibc and glibc/hurd, we get an error at (string-append "--localedir=" (assoc-ref %outputs "locales") "/share/locale") when it tries to find the locales output. >In unknown file: > ?: 0 [string-append "--localedir=" #f "/share/locale"] I attached the log. Second, in glibc/hurd headers again, because we Don't use the same phases as in glibc and glibc/hurd, and as a result we don't have the pre-configure phase of glibc, /bin/pwd is not substituted with pwd and we get a "no such file" error. >checking for i686-pc-gnu-readelf... i686-pc-gnu-readelf >../glibc-hurd-2.18/configure: line 3312: /bin/pwd: No such file or directory >../glibc-hurd-2.18/configure: line 3312: /bin/pwd: No such file or directory >configure: error: you must configure in a separate build directory >phase `configure' failed after 1 seconds In order to solve this I just need to add a pre-configure phase with just (lambda _ (substitute* "configure" (("/bin/pwd") "pwd"))) attached log. Third, in glibc/hurd the permissions in chmod "bits/pthreadtypes.h" should be 666 not 555. With this changes glibc/hurd can be built using the i686-pc-gnu cross toolchain. I attached the patch and I made sure that there will be no regressions with the cross-base patch. I wrote a simple commit message because it needs to be merged with the current glibc/hurd patch in wip-hurd. Thank you, Manolis