autoconf-patches
[Top][All Lists]
Advanced

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




reply via email to

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