[Top][All Lists]

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

Re: AC_FC_LIBRARY_LDFLAGS: quoting bug on Solaris with gfortran

From: Ralf Wildenhues
Subject: Re: AC_FC_LIBRARY_LDFLAGS: quoting bug on Solaris with gfortran
Date: Fri, 17 Sep 2010 20:24:25 +0200
User-agent: Mutt/1.5.20 (2010-08-04)


* Eric Blake wrote on Thu, Sep 16, 2010 at 10:37:01PM CEST:
> +     * lib/autoconf/fortran.m4 (_AC_PROG_FC_V): Ignore leading and
> +     trailing single and double quotes, as a last ditch effort.

> --- i/lib/autoconf/fortran.m4
> +++ w/lib/autoconf/fortran.m4
> @@ -566,6 +566,11 @@ for ac_verb in -v -verbose --verbose -V -\#\#\#; do
>    _AC_PROG_FC_V_OUTPUT($ac_verb)
>    # look for -l* and *.a constructs in the output
>    for ac_arg in $ac_[]_AC_LANG_ABBREV[]_v_output; do
> +    case $ac_arg in
> +      [\'\"]* | *[\'\"])
> +     ac_sed='s/^['\''"]//;s/['\''"]$//'
> +     ac_arg=`echo "$ac_arg" | sed "$ac_sed"`;;
> +    esac
>       case $ac_arg in
>       [[\\/]]*.a | ?:[[\\/]]*.a | -[[lLRu]]*)
>         ac_cv_prog_[]_AC_LANG_ABBREV[]_v=$ac_verb
> Also, if it _does_ fix your issue, does anyone see a huge risk in
> applying this before 2.68?

I'm glad you didn't need this after all (and thanks for looking into
it!), because it's somewhat of a rat's nest.  Some compilers' verbose
output expects to be eval'ed, and I suppose some other may even be
quoted completely inconsistently.

With our current sort of testing, it is fairly hard to improve code like
this consistently: one would have to have all sorts of compilers and
versions on several systems available to even be half-way sure for
nontrivial changes.  The same holds for some Libtool code.

One strategy is to avoid exploiting compiler internals as much as
possible and instead demand compiler API for anything we might need
(and for GCC, that is probably the best thing in the long run).

Another is to collect sample output from compilers and use that to
unit-test our macros by feeding it collected samples.  That way at
least we can be reasonably sure to not regress for one compiler by
changing things to work for another.


reply via email to

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