I'm interested in making cross-compilation of emacs easier. Or rather, making cross-compilation of temacs easier, such that one can run temacs on the host machine to finish the build. This would make it easier to create reproducible builds (particularly with Guix/NixOS as the build machine), and means one doesn't need a C compiler on the host. Right now the problem I'm running into is caused by build intermediates that must be built then run on the builder: the programs "lib-src/make-docfile.c" and "lib-src/make-fingerprint.c".

These intermediates both use gnulib (with #include <config.h> etc), but configure.ac only configures gnulib for the host machine. So the headers, #defines, and library are all wrong for the build machine and compilation fails. To fix this, I'd like to rewrite make-fingerprint.c and make-docfile.c to avoid non-portable constructs and thus the dependency on gnulib, but I don't know if this is considered acceptable for a GNU project. The alternative is a larger overhaul of the build system, with a nested configure script (to run configure for the builder when doing a cross build), another makefile, and another gnulib tree (for the modules needed only for the intermediates). I suspect the latter would be more fragile and produce a much larger maintenance burden than the former.

Would there be any objections to the simple rewrite?