autoconf
[Top][All Lists]
Advanced

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

Re: regression in autoconf 2.65 ?


From: Eric Blake
Subject: Re: regression in autoconf 2.65 ?
Date: Sat, 28 Nov 2009 06:02:36 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Vincent Torri on 11/27/2009 3:26 PM:
> AC_DEFUN([EVAS_CHECK_IMAGE_LOADER],
> [
> 
> m4_pushdef([UP], m4_toupper([[$1]]))
> m4_pushdef([DOWN], m4_tolower([[$1]]))

See my other mail - the quoting of m4_toupper changed, so losing the extra
layer of quotes will probably resolve this issue, too.

> AC_MSG_CHECKING([whether to enable $1 image loader])
> AC_MSG_RESULT([${want_loader}])

Stylistic point - it is simpler to use $want_loader rather than
${want_loader} in this case.  And there are some places in autoconf code
where indirection requires the former instead of the latter (for example,
in config.log, autoconf decides whether to expand or escape $ sequences
when outputting a line about what is about to be executed); in those
cases, autoconf will expand $want_loader, but refuses to expand anything
containing "${" because it would be unsafe to attempt expansion of
${foo-`command`}.


> if test "x${want_loader}" = "xyes" -o "x${want_loader}" = "xstatic" -o
> "x${want_loader}" = "xauto"; then

Portability bug.  Not all shells support test -o.  And on those that do,
you risk failure if one of the strings being compared looks like an
operator recognized by test.  The manual recommends that you write this as:

if test "x$want_loader" = xyes || test "x$want_loader" = xstatic \
  || test "x$want_loader" = xauto; then

> if test "x${have_dep}" = "xyes" ; then
>   m4_default([$3], [:])
> else
>   m4_default([$4], [:])
> fi

This could be written as AS_IF([test "x$have_dep" = xyes], [$3], [$4]) to
be more compact (and to avoid an unused branch of the if, when $4 is empty).

> Is it a problem in the m4 code (then older autoconf were less strict) ?
> Or is it a problem in the 2.65 version of autoconf ?

Rather, a documented change in semantics of m4_toupper in autoconf 2.65.

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

iEYEARECAAYFAksRH2wACgkQ84KuGfSFAYD+GwCfdZvQIa3YTu6fgKbdrnxl9PEg
E34AoKK7lIHH5jdQw2JZbgpM9RIV/v/A
=L0iH
-----END PGP SIGNATURE-----




reply via email to

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