emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Make cross-compiling temacs easier: drop gnulib for build intermediates,


From: James Luke
Subject: Make cross-compiling temacs easier: drop gnulib for build intermediates, or use recursive autoconf?
Date: Fri, 25 Jun 2021 19:22:10 -0700

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?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]