Hi Magnus:
I think I figured out that precompile.pike takes a --base parameter, common_module_makefile.in uses it with $(MODNAME) as the value, and it's been this way for ages. In the source release tarballs, all files have the same timestamp, and what seems to have happened is that suddenly, make remakes targets with the same timestamp as their prerequisites. Or maybe one of the $(PMOD_TARGETS) somehow are older. The question now is why there seem to be several files in the source distribution generated with precompile.pike *without* --base.
The Makefile rule is (from common_module_makefile.in (Pike 9.0)):
| .cmod.c: | $(BUILD_BASE)/precompile.sh precompile.pike '--base=$(MODNAME)' $(PRECOMPILER_ARGS) >"$@" "$<" || { rm "$@"; exit 1; }
Note that src/modules/Gmp/Makefile.in contains the lines:
| # Reset the symbol prefix base to the empty string. | PRECOMPILER_ARGS="--base="
So the question is why the file is generated with a non-empty base for you. Please save the output from make(1) and identify the precompile command line used to regenerate mpq.c.
What implementation of make(1) are you using?
/grubba