Disregard the previous mail, I figured most of it out. The attached patch does the following: 1.) Adds the name of the dynamic linker to gnu/packages/bootstrap.scm 2.) Adds code to gnu/package/gcc to substitute the default dynamic linker in gcc/config/arch/gnu.h for the one to be used. 3.) Changes how the build system arguments for cross-gcc are created: A.) They're now in a separate procedure, reflecting how it's done in vanilla guix. B.) A bug is fixed that caused the native ld.so to be picked over the target one. C.) Fixed the 'set-cross-path phase so that it also checks for hurd-related packages, and checks package existence before passing anything to the string-handling functions. The current issue is that, when building cross-gcc, when it reaches libgomp, configure fails when trying to create a dummy binary. For some reason, the compiled cross-compiler needs --rpath to specify where shared libraries are, as without it, it can't find libmachuser.so and libhurduser.so, which causes it to fail. -- Marek.