diff --git a/NEWS b/NEWS index b17ed136..000570e0 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ GNU Autoconf NEWS - User visible changes. -* Noteworthy changes in release 2.69b (2020-07-13) [beta] +* Noteworthy changes in release ?.? (????-??-??) [?] ** config.log properly escapes arguments in the header comment; config.status --config output is now quoted in a more readable fashion @@ -92,8 +92,8 @@ GNU Autoconf NEWS - User visible changes. local M4 macros. This macro overcomes some of the shortfalls in the older AC_CONFIG_MACRO_DIR, which could only be used once; although the older macro remains for compatibility with older tools. The - newer macro will be used by the upcoming Automake 1.13 release to - eliminate the need to specify ACLOCAL_AMFLAGS in Makefile.am. + newer macro is used by Automake 1.13 and later to eliminate the + need to specify ACLOCAL_AMFLAGS in Makefile.am. - AC_PROG_CC now prefers C11 if available, falling back on C99 and then on C89 as before. Similarly, AC_PROG_CXX now prefers C++11 @@ -104,9 +104,12 @@ GNU Autoconf NEWS - User visible changes. - AC_PROG_CC_STDC, AC_PROG_CC_C89, AC_PROG_CC_C99 have been marked as obsolete. Applications should use AC_PROG_CC. -- AC_PROG_YACC now uses 'bison -o y.tab.c' instead of 'bison -y', so that - by default it no longer warns about Bison extensions. Add -Wyacc to - YFLAGS to enable these warnings. +- AC_PROG_LEX no longer looks for a library providing the function + ‘yywrap’. LEXLIB will only be set to ‘-lfl’ or ‘-ll’ if a + scanner that defines both ‘main’ and ‘yywrap’ itself still needs + something else from that library. + + Packages should define yywrap themselves, or use %noyywrap. - AC_USE_SYSTEM_EXTENSIONS now enables more extensions on HP-UX, macOS, and MINIX, as well as on systems conforming to recent @@ -188,6 +191,9 @@ GNU Autoconf NEWS - User visible changes. diagnosed as obsolete, and replaced with AC_CONFIG_HEADERS by autoupdate. +- AC_FC_LINE_LENGTH now documents the maximum portable length of + "unlimited" Fortran source code lines to be 250 columns, not 254. + * Noteworthy changes in release 2.69 (2012-04-24) [stable] ** Autoconf now requires perl 5.6 or better (but generated configure diff --git a/doc/autoconf.texi b/doc/autoconf.texi index b133dd28..8497f46f 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -4177,30 +4177,51 @@ The result of the test can be overridden by setting the variable @cvindex YYTEXT_POINTER @ovindex LEX_OUTPUT_ROOT @caindex prog_LEX -If @code{flex} is found, set output variable @code{LEX} to @samp{flex} -and @code{LEXLIB} to @option{-lfl}, if that library is in a standard -place. Otherwise set @code{LEX} to @samp{lex} and @code{LEXLIB} to -@option{-ll}, if found. If neither variant is available, set @code{LEX} -to @samp{:}; for packages that ship the generated @file{file.yy.c} +If @code{flex} is found, set output variable @code{LEX} to @samp{flex}. +Otherwise set @code{LEX} to @samp{lex}, if found. +If neither variant is available, set @code{LEX} to @samp{:}; +for packages that ship the generated @file{file.yy.c} alongside the source @file{file.l}, this default allows users without a lexer generator to still build the package even if the timestamp for @file{file.l} is inadvertently changed. -Define @code{YYTEXT_POINTER} if @code{yytext} defaults to @samp{char *} instead -of to @samp{char []}. Also set output variable @code{LEX_OUTPUT_ROOT} to -the base of the file name that the lexer generates; usually -@file{lex.yy}, but sometimes something else. These results vary -according to whether @code{lex} or @code{flex} is being used. +The result of this test can be influenced by setting the variable +@code{LEX} or the cache variable @code{ac_cv_prog_LEX}. -You are encouraged to use Flex in your sources, since it is both more -pleasant to use than plain Lex and the C source it produces is portable. -In order to ensure portability, however, you must either provide a -function @code{yywrap} or, if you don't use it (e.g., your scanner has -no @samp{#include}-like feature), simply include a @samp{%noyywrap} -statement in the scanner's source. Once this done, the scanner is -portable (unless @emph{you} felt free to use nonportable constructs) and -does not depend on any library. In this case, and in this case only, it -is suggested that you use this Autoconf snippet: +If either @code{flex} or @code{lex} is found, this macro performs +additional checks for common portability pitfalls. If these additional +checks fail, @code{LEX} is also set to @samp{:}. + +Output variable @code{LEX_OUTPUT_ROOT} is set to the base of the file +name that the lexer generates; this is usually either @file{lex.yy} or +@file{lexyy}. Preprocessor macro @code{YYTEXT_POINTER} is defined if +the lexer skeleton, by default, declares @code{yytext} as a @samp{char +*} rather than a @samp{char []}. Finally, if generated lexers need a +library to work, set output variable @code{LEXLIB} to an option for that +library (e.g., @option{-ll}); otherwise define @code{LEXLIB} to empty. +A library that merely defines @code{main} and @code{yywrap} placeholder +functions is not considered to be needed. + +@strong{Caution:} As a side-effect of the test, this macro may delete +any file in the configure script's current working directory named +@file{lex.yy.c} or @file{lexyy.c}. + +@strong{Caution:} Packages that ship a generated @file{lex.yy.c} +cannot assume that the definition of @code{YYTEXT_POINTER} matches +the code in that file. They also cannot assume that @code{LEXLIB} +provides the library routines required by the code in that file. + +If you use Flex to generate @file{lex.yy.c}, you can work around these +limitations by defining @code{yywrap} and @code{main} yourself +(rendering @code{-lfl} unnecessary), and by using either the +@option{--array} or @option{--pointer} options to control how +@code{yytext} is declared. The code generated by Flex is also more +portable than the code generated by historical versions of Lex. + +If you have used Flex to generate @file{lex.yy.c}, and especially if +your scanner depends on Flex features, we recommend you use this +Autoconf snippet to prevent the scanner being regenerated with +historical Lex: @example AC_PROG_LEX @@ -4218,17 +4239,6 @@ Remember that the user may have supplied an alternate location in @env{LEX}, so if Flex is required, it is better to check that the user provided something sufficient by parsing the output of @samp{$LEX --version} than by simply relying on @code{test "x$LEX" = xflex}. - -To ensure backward compatibility, Automake's @code{AM_PROG_LEX} invokes -(indirectly) this macro twice, which causes an annoying but benign -``@code{AC_PROG_LEX} invoked multiple times'' warning. Future versions -of Automake will fix this issue; meanwhile, just ignore this message. - -As part of running the test, this macro may delete any file in the -configuration directory named @file{lex.yy.c} or @file{lexyy.c}. - -The result of this test can be influenced by setting the variable -@code{LEX} or the cache variable @code{ac_cv_prog_LEX}. @end defmac @anchor{AC_PROG_LN_S} @@ -4287,7 +4297,7 @@ and is cached in the @code{ac_cv_path_SED} variable. @ovindex YACC @caindex prog_YACC If @code{bison} is found, set output variable @code{YACC} to @samp{bison --o y.tab.c}. Otherwise, if @code{byacc} is found, set @code{YACC} to +-y}. Otherwise, if @code{byacc} is found, set @code{YACC} to @samp{byacc}. Otherwise set @code{YACC} to @samp{yacc}. The result of this test can be influenced by setting the variable @code{YACC} or the cache variable @code{ac_cv_prog_YACC}. @@ -4374,12 +4384,12 @@ uses to produce objects, archives or executables}. Like @code{AC_CHECK_PROG}, but first looks for @var{prog-to-check-for} with a prefix of the host type as specified by @option{--host}, followed by a dash. For example, if the user runs -@samp{configure --build=x86_64-gnu --host=i386-gnu}, then this call: +@samp{configure --build=x86_64-gnu --host=aarch64-linux-gnu}, then this call: @example AC_CHECK_TOOL([RANLIB], [ranlib], [:]) @end example @noindent -sets @code{RANLIB} to @file{i386-gnu-ranlib} if that program exists in +sets @code{RANLIB} to @file{aarch64-linux-gnu-ranlib} if that program exists in @var{path}, or otherwise to @samp{ranlib} if that program exists in @var{path}, or to @samp{:} if neither program exists. @@ -8331,7 +8341,7 @@ the @code{ac_cv_fc_fixedform} variable. Try to ensure that the Fortran compiler (@code{$FC}) accepts long source code lines. The @var{length} argument may be given as 80, 132, or -unlimited, and defaults to 132. Note that line lengths above 254 +unlimited, and defaults to 132. Note that line lengths above 250 columns are not portable, and some compilers do not accept more than 132 columns at least for fixed format source. If necessary, it may add some additional flags to @code{FCFLAGS}. @@ -9392,6 +9402,8 @@ If the output of running the preprocessor on the system header file @var{header-file} matches the extended regular expression @var{pattern}, execute shell commands @var{action-if-found}, otherwise execute @var{action-if-not-found}. + +See below for some problems involving this macro. @end defmac @anchor{AC_EGREP_CPP} @@ -9403,8 +9415,36 @@ variable, back quote, and backslash substitutions are performed. If the output of running the preprocessor on @var{program} matches the extended regular expression @var{pattern}, execute shell commands @var{action-if-found}, otherwise execute @var{action-if-not-found}. + +See below for some problems involving this macro. @end defmac +@code{AC_EGREP_CPP} and @code{AC_EGREP_HEADER} should be used with care, +as preprocessors can insert line breaks between output tokens. For +example, the preprocessor might transform this: + +@example +#define MAJOR 2 +#define MINOR 23 +Version MAJOR . MINOR +@end example + +@noindent +into this: + +@example +Version + 2 + . + 23 +@end example + +@noindent +Because preprocessors are allowed to insert white space, change escapes +in string contants, insert backlash-newline pairs, or do any of a number +of things that do not change the meaning of the preprocessed program, it +is better to rely on @code{AC_PREPROC_IFELSE} than to resort to +@code{AC_EGREP_CPP} or @code{AC_EGREP_HEADER}. @node Running the Compiler @@ -16153,11 +16193,16 @@ j a0 @end example @item $@{@var{var}:-@var{value}@} +@itemx $@{@var{var}:=@var{value}@} +@itemx $@{@var{var}:?@var{value}@} +@itemx $@{@var{var}:+@var{value}@} @c Info cannot handle ':' in index entries. @ifnotinfo @cindex @code{$@{@var{var}:-@var{value}@}} +@cindex @code{$@{@var{var}:=@var{value}@}} +@cindex @code{$@{@var{var}:?@var{value}@}} +@cindex @code{$@{@var{var}:+@var{value}@}} @end ifnotinfo -@cindex @code{$@{@var{var}-@var{value}@}} Old BSD shells, including the Ultrix @code{sh}, don't accept the colon for any shell substitution, and complain and die. Similarly for @code{$@{@var{var}:=@var{value}@}}, @@ -16166,13 +16211,31 @@ However, all shells that support functions allow the use of colon in shell substitution, and since m4sh requires functions, you can portably use null variable substitution patterns in configure scripts. -@item $@{@var{var}+@var{value}@} +@item $@{@var{var}-@var{value}@} +@itemx $@{@var{var}:-@var{value}@} +@itemx $@{@var{var}=@var{value}@} +@itemx $@{@var{var}:=@var{value}@} +@itemx $@{@var{var}?@var{value}@} +@itemx $@{@var{var}:?@var{value}@} +@itemx $@{@var{var}+@var{value}@} +@itemx $@{@var{var}:+@var{value}@} +@cindex @code{$@{@var{var}-@var{value}@}} +@cindex @code{$@{@var{var}=@var{value}@}} +@cindex @code{$@{@var{var}?@var{value}@}} @cindex @code{$@{@var{var}+@var{value}@}} +@c Info cannot handle ':' in index entries. +@ifnotinfo +@cindex @code{$@{@var{var}:-@var{value}@}} +@cindex @code{$@{@var{var}:=@var{value}@}} +@cindex @code{$@{@var{var}:?@var{value}@}} +@cindex @code{$@{@var{var}:+@var{value}@}} +@end ifnotinfo When using @samp{$@{@var{var}-@var{value}@}} or -@samp{$@{@var{var}-@var{value}@}} for providing alternate substitutions, -@var{value} must either be a single shell word, quoted, or in the -context of an unquoted here-document. Solaris -@command{/bin/sh} complains otherwise. +similar notations that modify a parameter expansion, +Posix requires that @var{value} must be a single shell word, +which can contain quoted strings but cannot contain unquoted spaces. +If this requirement is not met Solaris 10 @command{/bin/sh} +sometimes complains, and anyway the behavior is not portable. @example $ @kbd{/bin/sh -c 'echo $@{a-b c@}'} @@ -16295,19 +16358,7 @@ user 0m0.002s sys 0m0.003s @end example -As with @samp{+} and @samp{-}, you must use quotes when using @samp{=} -if the @var{value} contains more than one shell word; either single -quotes for just the @var{value}, or double quotes around the entire -expansion: - -@example -$ @kbd{: $@{var1='Some words'@}} -$ @kbd{: "$@{var2=like this@}"} -$ @kbd{echo $var1 $var2} -Some words like this -@end example - -@noindent +As with @samp{+} and @samp{-}, @var{value} must be a single shell word, otherwise some shells, such as Solaris @command{/bin/sh} or on Digital Unix V 5.0, die because of a ``bad substitution''. Meanwhile, Posix requires that with @samp{=}, quote removal happens prior to the @@ -21929,24 +21980,39 @@ cross-compilation mode. @item --host=@var{host-type} the type of system on which the package runs. By default it is the -same as the build machine. Specifying a @var{host-type} that differs +same as the build machine. The tools that get used to build and +manipulate binaries will, by default, all be prefixed with +@code{@var{host-type}-}, such as @code{@var{host-type}-gcc}, +@code{@var{host-type}-g++}, @code{@var{host-type}-ar}, and +@code{@var{host-type}-nm}. If the binaries produced by these tools can +be executed by the build system, the configure script will make use of +it in @code{AC_RUN_IFELSE} invocations; otherwise, cross-compilation +mode is enabled. Specifying a @var{host-type} that differs from @var{build-type}, when @var{build-type} was also explicitly -specified, enables cross-compilation mode. +specified, equally enables cross-compilation mode. @item --target=@var{target-type} the type of system for which any compiler tools in the package produce code (rarely needed). By default, it is the same as host. @end table -If you mean to override the result of @command{config.guess}, use -@option{--build}, not @option{--host}, since the latter enables -cross-compilation. For historical reasons, -whenever you specify @option{--host}, -be sure to specify @option{--build} too; this will be fixed in the -future. So, to enter cross-compilation mode, use a command like this +If you mean to override the result of @command{config.guess} but +still produce binaries for the build machine, use @option{--build}, +not @option{--host}. + +So, for example, to produce binaries for 64-bit MinGW, use a command +like this: + +@example +./configure --host=x86_64-w64-mingw64 +@end example + +If your system has the ability to execute MinGW binaries but you don't +want to make use of this feature and instead prefer cross-compilation +guesses, use a command like this: @example -./configure --build=i686-pc-linux-gnu --host=m68k-coff +./configure --build=x86_64-pc-linux-gnu --host=x86_64-w64-mingw64 @end example @noindent @@ -21955,7 +22021,7 @@ fails if it can't run the code generated by the specified compiler. For example, configuring as follows fails: @example -./configure CC=m68k-coff-gcc +./configure CC=x86_64-w64-mingw64-gcc @end example When cross-compiling, @command{configure} will warn about any tools @@ -21964,7 +22030,8 @@ host type. This is an aid to users performing cross-compilation. Continuing the example above, if a cross-compiler named @command{cc} is used with a native @command{pkg-config}, then libraries found by @command{pkg-config} will likely cause subtle build failures; but using -the names @command{m68k-coff-cc} and @command{m68k-coff-pkg-config} +the names @command{x86_64-w64-mingw64-gcc} and +@command{x86_64-w64-mingw64-pkg-config} avoids any confusion. Avoiding the warning is as simple as creating the correct symlinks naming the cross tools. @@ -22612,10 +22679,10 @@ perform @code{sed} substitution @var{expression} on the names. These transformations are useful with programs that can be part of a cross-compilation development environment. For example, a -cross-assembler running on a Sun 4 configured with -@option{--target=i960-vxworks} is normally installed as -@file{i960-vxworks-as}, rather than @file{as}, which could be confused -with a native Sun 4 assembler. +cross-assembler running on x86-64 configured with +@option{--target=aarch64-linux-gnu} is normally installed as +@file{aarch64-linux-gnu-as}, rather than @file{as}, which could be confused +with a native x86-64 assembler. You can force a program name to begin with @file{g}, if you don't want GNU programs installed on your system to shadow other programs with @@ -24757,7 +24824,7 @@ Therefore, whenever you specify @option{--host}, be sure to specify @option{--build} too. @example -./configure --build=i686-pc-linux-gnu --host=m68k-coff +./configure --build=x86_64-pc-linux-gnu --host=x86_64-w64-mingw64 @end example @noindent @@ -24768,7 +24835,7 @@ fails if it can't run the code generated by the specified compiler if you configure as follows: @example -./configure CC=m68k-coff-gcc +./configure CC=x86_64-w64-mingw64-gcc @end example diff --git a/lib/autoconf/fortran.m4 b/lib/autoconf/fortran.m4 index 5654f60e..0a0c4168 100644 --- a/lib/autoconf/fortran.m4 +++ b/lib/autoconf/fortran.m4 @@ -1455,7 +1455,7 @@ AC_LANG_POP([Fortran])dnl # Look for a compiler flag to make the Fortran (FC) compiler accept long lines # in the current (free- or fixed-format) source code, and adds it to FCFLAGS. # The optional LENGTH may be 80, 132 (default), or `unlimited' for longer -# lines. Note that line lengths above 254 columns are not portable, and some +# lines. Note that line lengths above 250 columns are not portable, and some # compilers (hello ifort) do not accept more than 132 columns at least for # fixed format. Call ACTION-IF-SUCCESS (defaults to nothing) if successful # (i.e. can compile code using new extension) and ACTION-IF-FAILURE (defaults diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 index 645a7c60..718503f5 100644 --- a/lib/autoconf/functions.m4 +++ b/lib/autoconf/functions.m4 @@ -1526,7 +1526,8 @@ AC_DEFUN([AC_FUNC_SELECT_ARGTYPES], [AC_CHECK_HEADERS_ONCE([sys/select.h sys/socket.h]) AC_CACHE_CHECK([types of arguments for select], [ac_cv_func_select_args], -[for ac_arg234 in 'fd_set *' 'int *' 'void *'; do +[ac_cv_func_select_args='int,int *,struct timeval *' +for ac_arg234 in 'fd_set *' 'int *' 'void *'; do for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do AC_COMPILE_IFELSE( @@ -1546,8 +1547,6 @@ AC_CACHE_CHECK([types of arguments for select], done done done -# Provide a safe default value. -: "${ac_cv_func_select_args=int,int *,struct timeval *}" ]) ac_save_IFS=$IFS; IFS=',' set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` diff --git a/lib/autoconf/lang.m4 b/lib/autoconf/lang.m4 index e39c30b0..631e3cbc 100644 --- a/lib/autoconf/lang.m4 +++ b/lib/autoconf/lang.m4 @@ -595,21 +595,11 @@ ac_exeext=$ac_cv_exeext # detect cross-compiling on Blue Gene. Note also that AC_COMPUTE_INT # requires programs that create files when not cross-compiling, so it # is safe and not a bad idea to check for this capability in general. -# -# Another false negative would occur on many modern linux distributions, -# which would have Wine run automatically for Windows binaries. This is -# a default configuration on several Debian-derivated distributions for -# instance (see `update-binfmts`). -# As a consequence the simple test program would run without errors, -# even though we are on an obvious cross-compilation case and further -# more complicated tests would fail. m4_define([_AC_COMPILER_EXEEXT_CROSS], [# Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. AC_MSG_CHECKING([whether we are cross compiling]) -if test "$cross_compiling" = maybe && test "x$build" != "x$host"; then - cross_compiling=yes -elif test "$cross_compiling" != yes; then +if test "$cross_compiling" != yes; then _AC_DO_VAR(ac_link) if _AC_DO_TOKENS([./conftest$ac_cv_exeext]); then cross_compiling=no diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4 index 9deb62e8..0ad3ddd1 100644 --- a/lib/autoconf/programs.m4 +++ b/lib/autoconf/programs.m4 @@ -735,43 +735,54 @@ f { unput (yytext[0]); } extern char *yytext; #endif int +yywrap (void) +{ + return 1; +} +int main (void) { - return ! yylex () + ! yywrap (); + return ! yylex (); } ]_ACEOF -_AC_DO_VAR(LEX conftest.l) AC_CACHE_CHECK([for lex output file root], [ac_cv_prog_lex_root], [ +ac_cv_prog_lex_root=unknown +_AC_DO_VAR(LEX conftest.l) && if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy -else - AC_MSG_ERROR([cannot find output from $LEX; giving up]) fi]) +AS_IF([test "$ac_cv_prog_lex_root" = unknown], + [AC_MSG_WARN([cannot find output from $LEX; giving up on $LEX]) + LEX=: LEXLIB=]) AC_SUBST([LEX_OUTPUT_ROOT], [$ac_cv_prog_lex_root])dnl AS_VAR_SET_IF([LEXLIB], [], [ AC_CACHE_CHECK([for lex library], [ac_cv_lib_lex], [ - ac_cv_lib_lex='not found' ac_save_LIBS=$LIBS - for ac_lib in '' -lfl -ll; do - LIBS="$ac_lib $ac_save_LIBS" + for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do + case $ac_cv_lib_lex in + 'none needed') ;; + 'not found') break;; + *) LIBS="$ac_cv_lib_lex $ac_save_LIBS";; + esac AC_LINK_IFELSE([AC_LANG_DEFINES_PROVIDED[`cat $LEX_OUTPUT_ROOT.c`]], - [ac_cv_lib_lex="${ac_lib:-none needed}" - break]) + [break]) done LIBS=$ac_save_LIBS ]) AS_IF( [test "$ac_cv_lib_lex" = 'not found'], - [AC_MSG_ERROR([required lex library not found])], + [AC_MSG_WARN([required lex library not found; giving up on $LEX]) + LEX=: LEXLIB=], [test "$ac_cv_lib_lex" = 'none needed'], [LEXLIB=''], [LEXLIB=$ac_cv_lib_lex]) ]) AC_SUBST(LEXLIB) +AS_IF([test "$LEX" != :], [ AC_CACHE_CHECK(whether yytext is a pointer, ac_cv_prog_lex_yytext_pointer, [# POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since @@ -791,6 +802,7 @@ if test $ac_cv_prog_lex_yytext_pointer = yes; then [Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'.]) fi +]) rm -f conftest.l $LEX_OUTPUT_ROOT.c ])# _AC_PROG_LEX_YYTEXT_DECL @@ -899,10 +911,10 @@ AN_PROGRAM([yacc], [AC_PROG_YACC]) AN_PROGRAM([byacc], [AC_PROG_YACC]) AN_PROGRAM([bison], [AC_PROG_YACC]) AC_DEFUN([AC_PROG_YACC], -[AC_CHECK_PROGS(YACC, 'bison -o y.tab.c' byacc, yacc)dnl +[AC_CHECK_PROGS(YACC, 'bison -y' byacc, yacc)dnl AC_ARG_VAR(YACC, [The `Yet Another Compiler Compiler' implementation to use. Defaults to -the first program found out of: `bison -o y.tab.c', `byacc', `yacc'.])dnl +the first program found out of: `bison -y', `byacc', `yacc'.])dnl AC_ARG_VAR(YFLAGS, [The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4 index 5d89d0c0..6a6d1a47 100644 --- a/lib/autotest/general.m4 +++ b/lib/autotest/general.m4 @@ -1642,12 +1642,15 @@ else else at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" fi + at_msg1a=${at_xpass_list:+', '} + at_msg1=$at_fail_list${at_fail_list:+" failed$at_msg1a"} + at_msg2=$at_xpass_list${at_xpass_list:+" passed unexpectedly"} + AS_ECHO(["Please send $at_msg and all information you think might help: To: Subject: @<:@AT_PACKAGE_STRING@:>@ $as_me: dnl -$at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}dnl -$at_xpass_list${at_xpass_list:+ passed unexpectedly} +$at_msg1$at_msg2 You may investigate any problem if you feel able to do so, in which case the test suite provides a good starting point. Its output may diff --git a/tests/autotest.at b/tests/autotest.at index 7734277f..7d09ae37 100644 --- a/tests/autotest.at +++ b/tests/autotest.at @@ -1913,13 +1913,13 @@ AT_DATA([Makefile.in], CFLAGS=@CFLAGS@ testprog@EXEEXT@: testprog.o + $(CC) -o testprog@EXEEXT@ testprog.o + testprog.o: testprog.c -.SUFFIXES: .c .o @EXEEXT@ +.SUFFIXES: .c .o .c.o: $(CC) -c $< -.o@EXEEXT@: - $(CC) -o $@ $^ ]]) AT_CHECK_AT_PREP([suite], @@ -1974,13 +1974,13 @@ AT_DATA([Makefile.in], CFLAGS=@CFLAGS@ testprog@EXEEXT@: testprog.o + $(CC) -o testprog@EXEEXT@ testprog.o + testprog.o: testprog.c -.SUFFIXES: .c .o @EXEEXT@ +.SUFFIXES: .c .o .c.o: $(CC) -c $< -.o@EXEEXT@: - $(CC) -o $@ $^ ]]) AT_CHECK_AT_PREP([suite], diff --git a/tests/fortran.at b/tests/fortran.at index 46ffadd8..241d9b0d 100644 --- a/tests/fortran.at +++ b/tests/fortran.at @@ -1012,20 +1012,25 @@ clean: rm -f *.@OBJEXT@ prog@EEXEXT@ ]]) +# When preceded by 7 spaces and followed by newline, line_80 generates +# a line of exactly 79 columns, line_132 generates a line of exactly 131 +# coluns, and line_250 generates a line of exactly 250 columns. +# FIXME: Shouldn't line_80 and line_132 generate lines that are one column +# longer, so that their contents match the variable names? line_80=\ 'subroutine foo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11)' line_132=\ 'subroutine foo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,'\ 'arg12,arg13,arg14,arg15,arg16,arg17,arg18,arg19)' -line_254=\ -'subroutine foo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,'\ +line_250=\ +'subroutine foofoo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,'\ 'arg12,arg13,arg14,arg15,arg16,arg17,arg18,arg19,arg20,arg21,arg22,arg23,'\ 'arg24,arg25,arg26,arg27,arg28,arg29,arg30,arg31,arg32,arg33,arg34,arg35,'\ -'arg36,arg37,arg38,arg39,arg40)' +'arg36,arg37,arg38,arg39)' -for len in 80 132 254 +for len in 80 132 250 do - if test $len -eq 254; then arg=unlimited; else arg=$len; fi + if test $len -eq 250; then arg=unlimited; else arg=$len; fi eval long_line=\$line_$len # Try free-form first, it has a bigger chance of succeeding. diff --git a/tests/local.at b/tests/local.at index 9ec61ead..308eae32 100644 --- a/tests/local.at +++ b/tests/local.at @@ -137,7 +137,8 @@ m4_case([$4], [], [], [ignore], [], s/: C\(annot open \)\([^`:]*\):/: c\1`\2'\'':/ s/: include:\( cannot open\)/:\1/ s/^autom4te: [^ ]*m4[.ex]* /autom4te: m4 / - s!^.*/\([^/][^/]*\)\.m4: *\([0-9][0-9]*:\)*!\1.m4:! + s!^.*/\([^/][^/]*\)\.m4: *[0-9][0-9]*: *!\1.m4: ! + s!^.*/\([^/][^/]*\)\.m4: *[0-9][0-9]*: *[0-9][0-9]*: *!\1.m4: ! s/ (E[A-Z]*)$// ' stderr-raw >&2]], [0], [], [$4])]) ])