Re: Question about autoreconf to regenerate configuration files

Mike Frysinger <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <YesvIbASVE4XeGwH@vapier>
On 21 Jan 2022 17:09, R. Diez via Newlib wrote:
> > [...]
> > The bootstrap time was large enough to
> > negatively impact our ability to do automated regression testing.
> 
> A very long bootstrap time could be an issue.
> 
> However, compilation time normally outweighs by far the Autotools regeneration step. Is that a problem in Newlib at the moment?

autotools (autoreconf really) doesn't run in parallel, so every subdir
with a configure script needs a separate serialized run of all the tools.
newlib has many many of these (arguably, too many).

on my quad core 4.2GHz AMD that is otherwise idle ...

$ time (cd newlib && autoreconf)
real    5m22.170s
user    3m13.709s
sys     0m12.332s

$ time (cd libgloss && autoreconf)
real    1m41.754s
user    0m43.505s
sys     0m3.618s
<this errored out, not sure why, so it might normally take even longer :p>

# Blackfin builds 8 copies (multilib) of newlib+libgloss by default.
$ time (cd build; ../configure --host=bfin-elf; make -j4)
real    1m40.950s
user    0m58.032s
sys     0m30.968s

so yeah, autotools generation here is significant.

> If Newlib wishes to depart from best practice, it would be nice to know the concrete issues in the context of this project, and not just some general "all solutions in this area seem to suck" justification.

again, this isn't "just newlib".  newlib is part of the historically combined
toolchain tree/ecosystem.  that means you can take binutils, gdb, gcc, newlib,
libgloss, cgen, sim, zlib, etc... and have a single monolithic source tree and
build them all at once.  the projects have separated a little bit in that they
have diff git repos, but the top-level dir and a few subdirs are still shared,
and some folks still hand merge them.  newlib is part of that ecosystem and as
such, follows its conventions.  changing newlib behavior would have a ripple
effect and is why consensus across all of them is desirable.  although usually
if you can convince gcc to change, the rest will follow to keep things simple.

i'm not advocating for this system, but i understand the trade-offs, and it's
been around longer than i've been a programmer.
-mike
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEuQK1JxMl+JKsJRrUQWM7n+g39YEFAmHrLyAACgkQQWM7n+g3
9YGC9g/+PEH5eTdIiO4W6Wm3OlWYwXLajlDZkK7E4gFfuCNhVeOaq8siphesb4MR
NbR1y9wus7aeB9j4TMSUymougSGgZMPT8skUeuv7q64hq6xproo23lTHOoLaTnOz
UXk4GehWwOJDMc77JKnnxf4p7XApaeRsXeJTzWb/TnoFJbnWBN8gsscuo+9yYN0A
iVA8l4c90qHbD21Aa72vmzOH5K7foDPTfPPltB5D8v6aN9QWYJ+zmbMZwfNLhLoy
P/OiKBirzl7kbyV57RR9lK9YG+U7zNIm4FIEEFaH5hM7gVRqco6HMtBIE+DzPKFm
zEePwAFlSMZEOMpDL1qe5TNnPlJOV4tJ8kXlMnzpCoQbd547LrP8RKawpyamNbXp
d1EA7wkCIW5Ju+LJIjM3WX3Z4zPpzxZxvsBSdnQ1HuZ8NmWRNfUBB2UsoIUTPuup
eQfKfyKE/SQicxbfcxr7q7T31SYTPuKuW8ym2idCqU2iI55H/A+zDZC0it69KWNs
+KJbYehOPR3MuMKdVceluolrmzmxQBKziMvA0xe4gP9XwMU57jy2QsYvdDM0jqJU
rZH8GgEAFmUhT7z1Dzkec7PAI5SCYyUPU4wR7X67ZRLM4APIsqNS/ws1yXFjGXKc
fhzXDVQBo1jysSQp/7gydhy8wVVaGrrrppY+P4bFVjeqNFEqXkg=
=MdrO
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.