[bug #65533] gmake-4.4.1 has a performance regression: at least the nwchem project now builds much slower
Martin Dorey <[email protected]> Fri, 16 Jan 2026 14:00:27 -0500 (EST)
| Newsgroups | gmane.comp.gnu.make.bugs |
|---|---|
| Message-ID | <[email protected]> |
Follow-up Comment #8, bug #65533 (group make):
> we try to limit our use of recursively expanded variables
Goodness me, that's a radical lesson to draw. I wouldn't encourage that here,
except with respect to $(shell), where for decades I've found it to be a good
idea, in most circumstances, to arrange things so you can := rather than =.
> There seems to be [something] seriously wrong here.
If you wanted to try to pin it on the particular change cited here, the NEWS
entry was related to:
https://savannah.gnu.org/bugs/index.php?10593
... with the crux of the change being:
https://cgit.git.savannah.gnu.org/cgit/make.git/diff/?h=4.4&id=98da874c43035a490cdca81331724f233a3d0c9a
There was at least one later change in the same area:
https://savannah.gnu.org/bugs/index.php?63016
... so:
https://cgit.git.savannah.gnu.org/cgit/make.git/commit/?id=7d484017077089ac2642b89da8984ca46a07323d
You could try backing those out. I wondered if you could achieve a similar
result by initializing env_recursion to one instead of zero but that didn't
revert the behavior exhibited by my example here. A small hack that did is:
martind@stormy:~/download/make$ git diff
diff --git a/src/function.c b/src/function.c
index a1617793..b3648b74 100644
--- a/src/function.c
+++ b/src/function.c
@@ -1864,7 +1864,7 @@ func_shell_base (char *o, char **argv, int
trim_newlines)
errfd = (output_context && output_context->err >= 0
? output_context->err : FD_STDERR);
- child.environment = target_environment (NULL, 0);
+ child.environment = environ; //target_environment (NULL, 0);
#if MK_OS_DOS
fpipe = msdos_openpipe (pipedes, &pid, argv[0]);
@@ -1992,7 +1992,7 @@ func_shell_base (char *o, char **argv, int
trim_newlines)
free (command_argv);
}
- free_childbase (&child);
+ //free_childbase (&child);
return o;
}
martind@stormy:~/download/make$
I wouldn't put such a change into production but, if it doesn't help a test
build, then you're probably on the wrong track.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?65533>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
(application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQQk97aszIMMAvLLwm6qLAuaBUf3TgUCaWqKywAKCRCqLAuaBUf3 TmSDAP4rBX3QGTj3kNimK1x3+qxlv75l6qkvZEDxqzKeinPaygEAgFiAcA5urQMg 5xxoKljLWE6cwPg6M90HfkCqCmdDBAw= =ktZv -----END PGP SIGNATURE-----