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-----