This is the mail archive of the
mailing list for the GCC project.
autom4te caching (was: PATCH libffi win64 support)
This discussion is verging on the off-list for the copied lists.
Please consider redirecting followups to <firstname.lastname@example.org>.
* Dave Korn wrote on Wed, Jun 17, 2009 at 02:13:13PM CEST:
> Ralf Wildenhues wrote:
> > * Andrew Haley wrote on Tue, Jun 16, 2009 at 08:19:39PM CEST:
> >> Ralf Wildenhues wrote:
> >>> autoconf without --force looks at time stamps of input files, yes.
> >> Oh, no! That is a classic case of an accident waiting to happen.
> > Well, it's also a nontrivial speedup in common use cases.
> ? I would have thought "running autoconf" doesn't count as a "common"
> operation but as a rare and almost always explicitly user-directed one. The
> risk/benefit tradeoff here seems wrong to me.
First off, whether autoconf, or any autotools for that matter, are run
commonly or not, depends on how a project handles this. Projects that
do not use maintainer-mode can run them quite often during development.
Now, all of aclocal, autoconf, autoheader, and automake, under the hood
use autom4te which in turn uses m4 in order to parse parts of the
configure.ac and various included and provided macro files. Only the
autoconf program actually creates the configure script as a result of
that, but the other programs may for example just use some trace output
(e.g., automake wants to know which variables are AC_SUBSTed, so that it
can build a list of "VARIABLE = @VARIABLE@" lines, and autoheader wants
to know symbols which are AC_DEFINEd). To cut a long story short, if
configure.ac is changed, it is very common that m4 would be invoked
several times. This would be quite costly. The caching which autom4te
implements improves this situation quite noticeably for common setups.
We are speaking not of 1-5% speedup here, but 30% or more, looking at
the time all autotools take to run.
You can turn off autom4te caching. This is documented in
As to explicit user direction: No, I hardly ever call any of the
autotools explicitly. One of my first steps for the autotools upgrade
for GCC will be to fix the rebuilding rules so that they run reliably
from 'make', and do _not_ require running autotools manually. Of
course, with --enable-maintainer-mode only, certainly, before anybody
gets all nervous here. And yes, I will post more about this soonish.