[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: _AC_FEATURE_CHECK_LENGTH bug (Was: Re: 4-gary-AC_PROG_GREP.patch)
From: |
Gary V. Vaughan |
Subject: |
Re: _AC_FEATURE_CHECK_LENGTH bug (Was: Re: 4-gary-AC_PROG_GREP.patch) |
Date: |
Wed, 21 Apr 2004 13:59:57 +0100 |
User-agent: |
Mozilla Thunderbird 0.5 (X11/20040208) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Albert,
Albert Chin wrote:
| On Tue, Apr 20, 2004 at 10:06:01PM +0100, Gary V.Vaughan wrote:
|>On 20 Apr 2004, at 21:08, Albert Chin wrote:
|>
|>>On Tue, Apr 20, 2004 at 06:23:40PM +0100, Gary V. Vaughan wrote:
|>>
|>>>Applied the relevant part of Alberts original patch.
|>>
|>>What about the rest of the patch?
|>
|>It hasn't arrived in the mailman archives yet, but a few minutes after I
|>posted the above, I posted this:
|
| Huh? I posted a link to the patch in the mailman archive:
| http://mail.gnu.org/archive/html/autoconf-patches/2004-03/msg00026.html
http://mail.gnu.org/archive/html/autoconf-patches/2004-04/msg00029.html hadn't
arrived in the archive when I made that post, so I pasted it in:
|>Gary V. Vaughan wrote:
|>>Alexandre Duret-Lutz wrote:
|>>| My impressions is that your change will cause the test to exit
|>>| as soon as a working tool is found, although the intent was to
|>>| try many names of the tool and return the better one. The
|>>| original `break 2' looks correct to me: it exits the tests for
|>>| the current name of the tool and continues with other names.
|>>
|>>Agreed.
|>>The encapsulation within that macro set isn't ideal, but the break 2 is
|>>an optimisation.
|
| The 'break 2' assumes too much. The changelog entry reasons why.
|
| * lib/autoconf/programs.m4 (_AC_FEATURE_CHECK_LENGTH):
| Don't assume `break 2' will break out of parent loop as
| we don't know how deeply nested we are (AC_PROG_GREP
| nests 3-deep).
All of the users of _AC_PATH_PROG_FEATURE_CHECK are 3 for loops deep.
1: _AS_PATH_WALK([$4],
2: [for ac_prog in $2; do
3: for ac_exec_ext in '' $ac_executable_extensions; do
| Am I missing something? Should we not break out early so we can test
| all values in $2?
Hmmm... actually I think it should be a 'break 3', since we don't want
to check the rest of $PATH for another suitable ac_prog. I think I
forgot to update it after I put the ac_exec_ext loop in when I was
factoring the original libtool macros...
However, if _AC_PATH_PROG_FLAVOR_GNU fails on every tool found, we can't
break out of the nested for loops just as soon as ac_cv_path_$1 is set
because the while loop in _AC_FEATURE_CHECK_LENGTH keeps setting it every
time it finds a better $ac_path_$1. Breaking out early would find the
first tool, rather than the best.
Cheers,
Gary.
- --
Gary V. Vaughan ())_. address@hidden,gnu.org}
Research Scientist ( '/ http://tkd.kicks-ass.net
GNU Hacker / )= http://www.gnu.org/software/libtool
Technical Author `(_~)_ http://sources.redhat.com/autobook
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFAhnBNFRMICSmD1gYRAvpoAJ4gcsn3DGramnz8jhVpKFoh3trvgwCfdpFO
zrxelTnJExWSjmWQpKMcyUY=
=19Dp
-----END PGP SIGNATURE-----