Closed smalltalkman closed 4 months ago
I see what the problem is, I just need to figure out how to fix it.
Pretty much everything in the m4-1.4.19
lib
directory depends on config.h
, and config.h
depends on stamp-h1
.
The first run of make
sees that stamp-h1
doesn't exist so it runs the rule to create it. This rule first creates config.h
then creates stamp-h1
.
On subsequent runs, config.h
is seen to be out-of-date relative to its prerequisite stamp-h1
so the rule to create it is run. But since config.h
already exists that rule doesn't actually do anything.
At this point busybox-w32 make
, thinking that config.h
has been updated, records the current time as its modification time. Thus all the files that depend on config.h
are considered out-of-date and are rebuilt. Other versions of make
are cleverer (and probably more POSIX compliant) and don't do all the unnecessary rebuilding.
I've applied a quick patch which solves the immediate problem. Let's hope it doesn't break anything else.
Try the latest prerelease (PRE-5331 or above).
I've applied a quick patch which solves the immediate problem. Let's hope it doesn't break anything else.
Try the latest prerelease (PRE-5331 or above).
Recompiled, tested and installed on m4-1.4.19
. Judging from the results, the patch worked very well and no problems were found.
I will make additional verifications on diffutils-3.10
and make-4.4.1
tomorrow.
I will make additional verifications on
diffutils-3.10
andmake-4.4.1
tomorrow.
No issues found so far.
busybox-w32 make
will perform the same task repeatedly when compiling, testing and installingm4-1.4.19
. This phenomenon was not found when usinggnu make
. I recorded this phenomenon here so that I can retest it later.It is obvious that
CC asyncsafe-spin.o
and similar tasks are executed repeatedly.