[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNU Autoconf 2.59c] testsuite: 75 78 89 102 failed

From: Paul Eggert
Subject: Re: [GNU Autoconf 2.59c] testsuite: 75 78 89 102 failed
Date: Wed, 19 Apr 2006 12:32:59 -0700
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Ralf Wildenhues <address@hidden> writes:

> OK to apply?

I applied that fix (my fault I think, since I introduced that bug).
Thanks for tracking this down and fixing it.

> one underlying issue -- that the testsuite already exports CONFIG_SHELL
> and thus may skew testsuite results -- may need to be revisited as well
> eventually.  (I'd like to avoid to do that now, if possible, but am open
> to suggestions here.  Ideally, we should do we both with the skewy
> setting of CONFIG_SHELL and without, given that users are equally likely
> to screw this up. ;-)

On a related topic, I tried to reproduced Dalibor Topic's problem on
Solaris 8 with CONFIG_SHELL=/bin/ksh.  I didn't reproduce it, as
Solaris 8 uses ksh88 whereas NetBSD evidently uses a clone.  However,
I discovered that "make check" is incredibly slow -- and this is even
after I fixed the /bin/sh -n bug.  I think this is because ksh88 still
creates lots of files in /tmp for here documents.  I couldn't wait for
it to finish, but I expect "make check" would take about 10 hours.

Even when I reverted to the default, which uses /bin/bash, "make
check" still takes about an hour on my 1 GHz 4-CPU sparc server.  (I'm
estimating this -- I don't have the patience to wait for it to
finish.)  This is so long, that I expect that people won't bother to
run it on traditional Unix hosts.  We therefore won't get test results
back.  This is not a good thing.

Part of the problem is that each call to configure does the search for
the right shell to use.  This is an expensive search.  It should be
cheaper.  And we shouldn't do it for every test case: one test is
enough.  I think this severe performance bug is worth fixing before
2.60 comes out.

Part of the problem is that Sun's /usr/bin/perl does globbing of
PATTERN by forking and running "sh -c /usr/bin/csh -cf 'set nonomatch;
glob PATTERN'" (yup, that's how Perl historically did things, and perl
5.005_03 fits the mold.  I wish I'd advised Larry Wall way back when
that this was a dumb idea!).  And csh starts up by doing the
equivalent of pwd, which walks up the file tree.  This performance
black hole is fixed in Solaris 10 (which uses perl 5.8.4), but not in
Solaris 9 (which uses 5.6.1).  I'm not sure we can do much about this,
except perhaps by avoiding globbing in our Perl scripts whenever
possible -- i.e., use the shell to glob, not Perl.

Part of the problem is that GNU m4 also does its fair share of
creating and removing lots of silly little files in /tmp.

But the main problem is that Autoconf itself is too slow, and it has
too many tests.

One possible workaround is to throw out 90% of the tests for most
people, reserving the other tests for the maintainers.  This will make
"make check" ten times faster, and then it will be more likely to get
used.  This might be worth doing before 2.60 comes out.  As things
stand, "make check" simply won't get used, at least not by most

reply via email to

[Prev in Thread] Current Thread [Next in Thread]