> From: Paul Smith <psm...@gnu.org> > Date: Sat, 25 Jun 2022 17:47:47 -0400 > > I had a discussion about this with the Gnulib maintainers a while ago: > > https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00041.html > > However the gnulib maintainers were disinclined to modify the practices > of the gnulib modules.
It is sad that Gnulib maintainers aren't prepared to cater to a GNU project, and an important one such as Make. These are special requirements that only a handful of GNU project could ever have, and for good reasons, so supporting their needs should be a no-brainer. > This leaves me with two options: > > 1. Stop using gnulib, or at least sharply limit the modules we will > include to those with trivial-enough configurations. > 2. Abandon the build.sh script and require an existing make program > in order to build a new version of GNU make. > > #1 is what I followed for GNU make 4.3, which has a limited subset of > carefully-chosen modules. However this becomes harder over time. For > example any module that needs unistd.h requires a very complex automake > rule. > > If #2 is chosen, then a bootstrap process would involve first obtaining > an older version of make, such as GNU make 4.3 or lower, and building > that with its build.sh, then using the resulting make to build the > newer version. > > I'm interested in thoughts about these options. #2 would require that we promise to have Make 4.3 available from here to eternity. Is that feasible? Can you list the Gnulib functions we currently use? I mean only those which Make calls directly, not their Gnulib dependencies. Perhaps we could then prepare a fake-gnulib module with trivial implementations of those functions, which could be used by build.sh instead of the real Gnulib functions. (Some Gnulib functions are replacements for those found in every C library, and those could be simply ignored in the build.sh build, relying on libc to do a reasonably good job.) Of course, this would mean the need to add such stubs every time another Gnulib function is added to Make, so it is still a maintenance burden of sorts. But maybe it isn't too heavy?