[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem with AC_REQUIRE expansion order
From: |
Eric Blake |
Subject: |
Re: Problem with AC_REQUIRE expansion order |
Date: |
Wed, 06 Aug 2008 19:56:03 -0600 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.16) Gecko/20080708 Thunderbird/2.0.0.16 Mnenhy/0.7.5.666 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Ralf Wildenhues on 8/6/2008 3:06 PM:
| Sorry, then that was a bad example on my part. The second could just as
| well be "gcc -m64". My point was that arguments can exist, and that
| both single- and double-quoting can happen.
Yes, I agree that the current code path happened to allow both forms of
quoting, but I think it was by accident, not documented that way, and not
very prevalent in the wild.
|> That's not to say that this behavior is wrong. Perhaps we should let
|> AC_PROG_CC use AC_PATH_PROGS_FEATURE_CHECK rather than AC_CHECK_TOOLS
|> under the hood, to allow the search to continue until all suggestions in
|> the list have been exhausted. Or even introduce
|> AC_PATH_TOOLS_FEATURE_CHECK. But this is starting to get much bigger than
|> my original patch.
|
| Let's not go that much bigger way. My remark was not a bug report.
| We don't have to get things working that don't work ATM, we should
| concentrate on fixing regressions without introducing new ones.
Nice to hear that.
|
| Is the bug originally reported even a regression?
The real regression occurs when mixing direct invocation of AC_PROG_CC (no
arguments) and AC_GNU_SOURCE within an AC_DEFUN'd macro. Since AC_PROG_CC
is not required, it emits certain compiler checks in place, instead of
prior to the macro's body. AC_GNU_SOURCE used to be compiler-agnostic,
but as of 2.62, includes a compiler check; it also outputs its entire body
prior to the macro. Thus, the regression occurs that AC_GNU_SOURCE now
tries to check features of the compiler before the compiler has been
discovered.
| I don't know how to measure or decide that. I believe I've seen such
| usage before but I really can't say for sure, or point to an actual
| example. Sorry.
I know I've seen it for other tools (for example, egrep vs. grep -E), but
not really for compilers. And the nice thing about my patch is that you
can still do "./configure CC='gcc -m64'"; it is only the list of compiler
defaults where you would be limited on passing arguments as part of the
compiler name.
- --
Don't work too hard, make some time for fun as well!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkiaVjMACgkQ84KuGfSFAYBmngCbBC8pSbewLmc5hW7d/CBAVoa2
sDkAnisUBoxPuy/kNKfXpg5Yo7NLPgOC
=+Cby
-----END PGP SIGNATURE-----