Hi Eric, thank you for looking into this.
* Eric Blake wrote on Sat, Oct 09, 2010 at 12:41:39AM CEST: > On 08/18/2010 11:31 AM, Ralf Wildenhues wrote: > > > >[ http://bugs.debian.org/592892 ] > The problem here is that the string: > > ompi_cv_f77_alignment_LOGICAL*1 > > is not a shell literal (it contains a globbing character, so unless > you use it in a quoted context or do the transliteration yourself, > we can't guarantee that the shell code would be safe). Meanwhile, > AS_LITERAL_IF, which forms the backbone of AS_VAR_PUSHDEF, was > documented in 2.66 as being tightened to be more conservative about > what it considers as a shell literal. [...] > Unfortunately, I don't see any way to make autoconf revert back to > the 2.65 behavior without losing the additional safety that was > documented in the change for AS_LITERAL_IF being more picky about > what forms a literal. So, all I can suggest is that > OMPI_F77_GET_ALIGNMENT do the transliteration in advance: In that case, at least AC_CHECK_ALIGNOF will need fixing too, the testsuite patch below exposes a similar (I think) failure. Thanks, Ralf Extend alignof test to cover failure with pointers and arrays. * tests/semantics.at (AC_CHECK_ALIGNOF struct): Extend test. diff --git a/tests/semantics.at b/tests/semantics.at index 0e28737..e12912f 100644 --- a/tests/semantics.at +++ b/tests/semantics.at @@ -358,11 +358,14 @@ AC_CHECK_ALIGNOF(charcharchar) AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF struct], [[AC_CHECK_ALIGNOF([struct { char c; }]) AC_CHECK_ALIGNOF([struct nosuchstruct]) +AC_CHECK_ALIGNOF([[struct { int *p; double x[2]; }]]) ]], [AT_CHECK([[grep "#define ALIGNOF_STRUCT___CHAR_C___ [1-9]" config.h]], 0, ignore) AT_CHECK([[grep "#define ALIGNOF_STRUCT_NOSUCHSTRUCT 0" config.h]], 0, ignore) +AT_CHECK([[grep "#define ALIGNOF_STRUCT___INT_PP__DOUBLE_X2___ [1-9]" config.h]], + 0, ignore) ]) # AC_CHECK_SIZEOF