On core-updates (4d1436b0ea65) the flite package is failing to build, with log output like
making ../build/aarch64-linux-gnu/lib/libflite.so make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'. Stop. make[1]: *** Waiting for unfinished jobs.... make: *** [config/common_make_rules:133: build/aarch64-linux-gnu/obj//.make_build_dirs] Error 2 This is caused by the upgrade to make 4.4 along with what appears to be an error in one of the project's makefiles. The workaround is to build flite with parallel build jobs disabled, using e.g. "./pre-inst-env guix build --cores=1 flite". The underlying issue appears to be a misuse of the ".NOTPARALLEL" special make target in the project's main/Makefile. Changing line 107 from .NOTPARALLEL: $(ALL) to simply .NOTPARALLEL: solves the problem: The entire project builds in parallel except for targets in the "main" subfolder, which are built serially instead. (These targets have to be built serially as they delete and re-create the same "flite_voice_list.o" object file in different ways.) With make versions 4.3 and earlier any prerequisites specified for ".NOTPARALLEL" ("$(ALL)" as shown above) were ignored, and make would unconditionally build all remaining targets in series. With make 4.4 this behaviour has changed and the prerequisites list is now honoured. However, this doesn't specify a list of targets to build serially, as it seems the flite authors expected. Rather, If the .NOTPARALLEL special target has prerequisites, then each of those prerequisites will be considered a target and all prerequisites of these targets will be run serially.[0] That is, it is the _prerequisites_ of the specified targets and not the targets themselves that are built serially. The targets themselves may still be built in parallel, which is how the upgrade to make 4.4 has caused this problem to appear. I'll add for completeness that getting clever and changing the makefile with something like notparallel: $(ALL) .NOTPARALLEL: notparallel doesn't work, as (for one reason or another) this doesn't sufficiently protect the targets from clobbering one another. -- Simon South si...@simonsouth.net [0] https://www.gnu.org/software/make/manual/html_node/Parallel-Disable.html