Ralf Wildenhues <ralf.wildenh...@gmx.de> writes:

> Well, AS_VAR_GET is (intentionally) undocumented, so your use of
> AS_VAR_COPY is the right thing to do (which is why I'll leave the
> original bug for openmpi).  Still, this is a regression in upstream
> Autoconf that I think should be fixed.  The issue is that '*' needs to
> be translated to 'p' here and the string treated as literal here:

> cat >configure.ac <<\EOF
> AC_DEFUN([OMPI_F77_GET_ALIGNMENT],[
>     AS_VAR_PUSHDEF([type_var], [ompi_cv_f77_alignment_$1])
>     $2=AS_VAR_GET([type_var])
>     AS_VAR_POPDEF([type_var])dnl
> ])

> AC_INIT
> OMPI_F77_GET_ALIGNMENT([LOGICAL*1], [result])
> EOF

> autoconf
> tail configure

> should contain a line like:
>   result=$ompi_cv_f77_alignment_LOGICALp1

> but instead has something like:
>     as_type_var=`$as_echo "ompi_cv_f77_alignment_LOGICAL*1" | $as_tr_sh`
>     result=`eval 'as_val=${'type_var'};$as_echo "$as_val"'`

This smells like fallout from:

** The macros AS_TR_SH and AS_TR_CPP no longer expand their results.

in 2.66.  I tracked this down in another project the other day.  The other
project was using AR_TR_CPP directly to generate content which was
eventually passed into one of the autoheader macros (like AH_BOTTOM).

I'm not sure why this change was made, but it does seem to be breaking
assumptions made by real-world Autoconf macros.

-- 
Russ Allbery (r...@stanford.edu)             <http://www.eyrie.org/~eagle/>

Reply via email to