From 12cff5a32336dfdee0cf95f8abf55d020bb3fac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= Date: Tue, 14 Feb 2023 15:38:11 +0100 Subject: [PATCH] tests: Port to modern C Fix various tests in order to make them compatible with C99. Part of the patches have been accepted upstream already, some are still being reviewed. --- ...efaults-error-in-link_cond-due-to-ma.patch | 31 + ...sure-make_ok-fails-when-run_make-fai.patch | 34 + automake.spec | 17 +- ...ry-to-prevent-flex-to-include-unistd.patch | 1184 +++++++++++++++++ ...implicit-function-declaration-errors.patch | 265 ++++ ...licit-function-declaration-in-ax-dep.patch | 58 + 6 files changed, 1588 insertions(+), 1 deletion(-) create mode 100644 0001-tests-Fix-type-defaults-error-in-link_cond-due-to-ma.patch create mode 100644 0001-tests-depcomp-ensure-make_ok-fails-when-run_make-fai.patch create mode 100644 v2-0001-tests-Don-t-try-to-prevent-flex-to-include-unistd.patch create mode 100644 v2-0002-tests-Fix-implicit-function-declaration-errors.patch create mode 100644 v3-0003-tests-Fix-implicit-function-declaration-in-ax-dep.patch diff --git a/0001-tests-Fix-type-defaults-error-in-link_cond-due-to-ma.patch b/0001-tests-Fix-type-defaults-error-in-link_cond-due-to-ma.patch new file mode 100644 index 0000000..e08b977 --- /dev/null +++ b/0001-tests-Fix-type-defaults-error-in-link_cond-due-to-ma.patch @@ -0,0 +1,31 @@ +From 2a9908da9dbc075ee6c4e853cf3be0365b15f202 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= +Date: Mon, 12 Dec 2022 08:05:53 +0100 +Subject: [PATCH] tests: Fix 'type defaults' error in link_cond due to main not + being properly declared + +This is related to an effort to prepare Automake for future GCC/Clang +versions which set c99 as default standard to be used. +Not properly declaring main as "int main(...)" is rejected since c99. + +* t/link_cond.sh: Add (void) to main definition. +--- + t/link_cond.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/link_cond.sh b/t/link_cond.sh +index 45d0d7f40..889623131 100644 +--- a/t/link_cond.sh ++++ b/t/link_cond.sh +@@ -52,7 +52,7 @@ $AUTOCONF + rm -f *.c++ + cat > less.c <<'END' + /* Valid C but deliberately invalid C++ */ +-main () ++int main (void) + { + int new = 0; + return new; +-- +2.39.1 + diff --git a/0001-tests-depcomp-ensure-make_ok-fails-when-run_make-fai.patch b/0001-tests-depcomp-ensure-make_ok-fails-when-run_make-fai.patch new file mode 100644 index 0000000..5ffb9c6 --- /dev/null +++ b/0001-tests-depcomp-ensure-make_ok-fails-when-run_make-fai.patch @@ -0,0 +1,34 @@ +From 6d6fc91c472fd84bd71a1b012fa9ab77bd94efea Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= +Date: Mon, 12 Dec 2022 07:32:13 +0100 +Subject: [PATCH] tests: depcomp: ensure make_ok() fails when run_make fails + +While running automake tests with -std-gnu=c99, the compiler report +errors which lead to make to fail. Yet, these failures are ignored +during the tests, which considers them to be successful as stderror is +check for one specific pattern. + +If make fails, investigation should be made to discover why, whatever +the reason for the failure is. + +* t/ax/depcomp.sh: Make make_ok fail when make fails. +--- + t/ax/depcomp.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/ax/depcomp.sh b/t/ax/depcomp.sh +index 3c4db10e3..7a3ac63a7 100644 +--- a/t/ax/depcomp.sh ++++ b/t/ax/depcomp.sh +@@ -160,7 +160,7 @@ case $depcomp_with_libtool in + echo lib_LTLIBRARIES = libfoo.la >> Makefile.am + make_ok () + { +- run_make -M -- ${1+"$@"} ++ run_make -M -- ${1+"$@"} || return 1 + $FGREP 'unknown directive' output && return 1 + rm -f output + # Checks for stray files possibly left around by less common +-- +2.39.1 + diff --git a/automake.spec b/automake.spec index f570007..87ff6d7 100644 --- a/automake.spec +++ b/automake.spec @@ -23,7 +23,7 @@ Summary: A GNU tool for automatically creating Makefiles Name: automake # Any bump here requires libtool rebuild, rhbz#1813010 Version: %{api_version}.5 -Release: 11%{?dist} +Release: 12%{?dist} # docs ~> GFDL, sources ~> GPLv2+, mkinstalldirs ~> PD and install-sh ~> MIT License: GPLv2+ and GFDL and Public Domain and MIT @@ -38,6 +38,18 @@ Patch0: fort2.patch # From upstream: ed1368e8803e8934a8bbab52a38753484dba2a37 Patch1: 0001-test-avoid-apostrophe-in-test-document.patch +# From upstream: 2a9908da9dbc075ee6c4e853cf3be0365b15f202 +Patch2: 0001-tests-Fix-type-defaults-error-in-link_cond-due-to-ma.patch +# Proposed upstream: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59993#23 +Patch3: v2-0002-tests-Fix-implicit-function-declaration-errors.patch +# Proposed upstream: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60962#5 +Patch4: v3-0003-tests-Fix-implicit-function-declaration-in-ax-dep.patch +# Proposed upstream: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59994#29 +Patch5: v2-0001-tests-Don-t-try-to-prevent-flex-to-include-unistd.patch + +# From upstream: 6d6fc91c472fd84bd71a1b012fa9ab77bd94efea +# Reveals failures due to C99 porting that wouldn't be seen otherwise +Patch6: 0001-tests-depcomp-ensure-make_ok-fails-when-run_make-fai.patch URL: http://www.gnu.org/software/automake/ Requires: autoconf >= 2.65 @@ -141,6 +153,9 @@ make -k %{?_smp_mflags} check %{?TESTS_FLAGS: TESTS="%{TESTS_FLAGS}"} \ %changelog +* Tue Feb 14 2023 Frederic Berat - 1.16.5-12 +- Port to modern C: various fixes + * Fri Jan 20 2023 Frederic Berat - 1.16.5-11 - Fix test failure due to texinfo 7.0 update diff --git a/v2-0001-tests-Don-t-try-to-prevent-flex-to-include-unistd.patch b/v2-0001-tests-Don-t-try-to-prevent-flex-to-include-unistd.patch new file mode 100644 index 0000000..368b88d --- /dev/null +++ b/v2-0001-tests-Don-t-try-to-prevent-flex-to-include-unistd.patch @@ -0,0 +1,1184 @@ +From d67b6386552672527cb6048cc5f0c08cac9423a5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= +Date: Thu, 8 Dec 2022 10:12:56 +0100 +Subject: [PATCH v2] tests: Don't try to prevent flex to include unistd.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +In-Reply-To: <20221212070752.1635797-1-fberat@redhat.com> + +Hello, + +Changes since v1: + - The "--never-interactive" option is added to AM_LFLAGS whenever a + yacc or lex test needs to execute make. + +Since there is quite a lot of files being modified, please review carefully. +Hopefully, I didn't forget anything, nor edited files that were not needed, +multiple sets of eyes may be useful here. + +-- 8< -- + +This patch is related to an effort to prepare Automake for future +GCC/Clang versions which set c99 as default standard to be used. + +Future version of flex make the "NO_UNISTD" flag a no-op, and include +unistd.h by default. + +In current version of flex, not having this header leads to implicit +function declarations that are not compatible with c99 standard. + +On top of that, while flex dedicated test were having this macro set, +the yacc ones didn't have it despise their use of Flex. + +For consistency, all the YACC/Flex related tests now have the +"--never-interactive" option set in AM_LFLAGS. + +Modified files: + * t/cond35.sh + * t/lex-clean-cxx.sh + * t/lex-clean.sh + * t/lex-depend-cxx.sh + * t/lex-depend.sh + * t/lex-header.sh + * t/lex-lib-external.sh + * t/lex-lib.sh + * t/lex-libobj.sh + * t/lex-line.sh + * t/lex-multiple.sh + * t/lex-nodist.sh + * t/lex-noyywrap.sh + * t/lex-pr204.sh + * t/lex-subobj-nodep.sh + * t/lex3.sh + * t/lex5.sh + * t/lexvpath.sh + * t/silent-lex.sh + * t/silent-many-languages.sh + * t/silent-yacc-headers.sh + * t/silent-yacc.sh + * t/subpkg-yacc.sh + * t/suffix10.tap + * t/yacc-auxdir.sh + * t/yacc-basic.sh + * t/yacc-bison-skeleton-cxx.sh + * t/yacc-bison-skeleton.sh + * t/yacc-clean-cxx.sh + * t/yacc-clean.sh + * t/yacc-cxx-grepping.sh + * t/yacc-cxx.sh + * t/yacc-d-basic.sh + * t/yacc-d-cxx.sh + * t/yacc-d-vpath.sh + * t/yacc-deleted-headers.sh + * t/yacc-depend.sh + * t/yacc-depend2.sh + * t/yacc-dist-nobuild-subdir.sh + * t/yacc-dist-nobuild.sh + * t/yacc-dry.sh + * t/yacc-grepping.sh + * t/yacc-grepping2.sh + * t/yacc-headers-and-dist-pr47.sh + * t/yacc-line.sh + * t/yacc-misc.sh + * t/yacc-mix-c-cxx.sh + * t/yacc-nodist.sh + * t/yacc-pr204.sh + * t/yacc-subdir.sh + * t/yacc-vpath.sh + * t/yacc-weirdnames.sh + * t/yflags-cmdline-override.sh + * t/yflags-cxx.sh + * t/yflags-d-false-positives.sh + * t/yflags-force-conditional.sh + * t/yflags-force-override.sh + * t/yflags-var-expand.sh + * t/yflags.sh +--- + t/cond35.sh | 4 +--- + t/lex-clean-cxx.sh | 4 ++-- + t/lex-clean.sh | 5 ++--- + t/lex-depend-cxx.sh | 4 ++-- + t/lex-depend.sh | 5 ++--- + t/lex-header.sh | 6 ++---- + t/lex-lib-external.sh | 5 ++--- + t/lex-lib.sh | 5 ++--- + t/lex-libobj.sh | 5 ++--- + t/lex-line.sh | 7 ++++--- + t/lex-multiple.sh | 7 +++---- + t/lex-nodist.sh | 5 ++--- + t/lex-noyywrap.sh | 5 ++--- + t/lex-pr204.sh | 5 ++--- + t/lex-subobj-nodep.sh | 5 ++--- + t/lex3.sh | 5 ++--- + t/lex5.sh | 4 +--- + t/lexvpath.sh | 11 ++--------- + t/silent-lex.sh | 7 ++++--- + t/silent-many-languages.sh | 1 + + t/silent-yacc-headers.sh | 1 + + t/silent-yacc.sh | 4 ++++ + t/subpkg-yacc.sh | 2 ++ + t/suffix10.tap | 2 ++ + t/yacc-auxdir.sh | 4 ++++ + t/yacc-basic.sh | 2 ++ + t/yacc-bison-skeleton-cxx.sh | 2 ++ + t/yacc-bison-skeleton.sh | 2 ++ + t/yacc-clean-cxx.sh | 2 ++ + t/yacc-clean.sh | 2 ++ + t/yacc-cxx-grepping.sh | 2 ++ + t/yacc-cxx.sh | 2 ++ + t/yacc-d-basic.sh | 2 ++ + t/yacc-d-cxx.sh | 2 ++ + t/yacc-d-vpath.sh | 2 ++ + t/yacc-deleted-headers.sh | 2 ++ + t/yacc-depend.sh | 2 ++ + t/yacc-depend2.sh | 2 ++ + t/yacc-dist-nobuild-subdir.sh | 2 ++ + t/yacc-dist-nobuild.sh | 2 ++ + t/yacc-dry.sh | 2 ++ + t/yacc-grepping.sh | 2 ++ + t/yacc-grepping2.sh | 2 ++ + t/yacc-headers-and-dist-pr47.sh | 2 ++ + t/yacc-line.sh | 4 ++++ + t/yacc-misc.sh | 2 ++ + t/yacc-mix-c-cxx.sh | 2 ++ + t/yacc-nodist.sh | 2 ++ + t/yacc-pr204.sh | 2 ++ + t/yacc-subdir.sh | 2 ++ + t/yacc-vpath.sh | 2 ++ + t/yacc-weirdnames.sh | 2 ++ + t/yflags-cmdline-override.sh | 2 ++ + t/yflags-cxx.sh | 2 ++ + t/yflags-d-false-positives.sh | 2 ++ + t/yflags-force-conditional.sh | 2 ++ + t/yflags-force-override.sh | 2 ++ + t/yflags-var-expand.sh | 2 ++ + t/yflags.sh | 2 ++ + 59 files changed, 125 insertions(+), 63 deletions(-) + +diff --git a/t/cond35.sh b/t/cond35.sh +index dc3b8aae9..8b044644e 100644 +--- a/t/cond35.sh ++++ b/t/cond35.sh +@@ -30,6 +30,7 @@ EOF + + cat > Makefile.am <<'EOF' + AM_YFLAGS = -d ++AM_LFLAGS = --never-interactive + + BUILT_SOURCES = tparse.h + +@@ -58,9 +59,6 @@ $FGREP 'tparse.h' Makefile.in # For debugging. + test $($FGREP -c 'tparse.h:' Makefile.in) -eq 1 + + cat > tscan.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + %% +diff --git a/t/lex-clean-cxx.sh b/t/lex-clean-cxx.sh +index 3632d5c87..9f628accd 100644 +--- a/t/lex-clean-cxx.sh ++++ b/t/lex-clean-cxx.sh +@@ -29,6 +29,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar baz qux + + foo_SOURCES = mainfoo.cc parsefoo.lxx +@@ -55,8 +57,6 @@ cat > parsefoo.lxx << 'END' + %{ + #define YY_DECL int yylex (void) + extern "C" YY_DECL; +-#define YY_NO_UNISTD_H 1 +-int isatty (int fd) { return 0; } + %} + %% + "GOOD" return EOF; +diff --git a/t/lex-clean.sh b/t/lex-clean.sh +index 1ee7d8f5b..4668e97c7 100644 +--- a/t/lex-clean.sh ++++ b/t/lex-clean.sh +@@ -29,6 +29,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar baz qux + + foo_SOURCES = main.c lexer.l +@@ -52,9 +54,6 @@ LDADD = $(LEXLIB) + END + + cat > lexer.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "GOOD" return EOF; + . +diff --git a/t/lex-depend-cxx.sh b/t/lex-depend-cxx.sh +index 60615a54e..51bd67b7b 100644 +--- a/t/lex-depend-cxx.sh ++++ b/t/lex-depend-cxx.sh +@@ -27,6 +27,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + noinst_PROGRAMS = joe moe + joe_SOURCES = joe.ll + moe_SOURCES = moe.l++ +@@ -48,8 +50,6 @@ cat > joe.ll << 'END' + %{ + #define YY_DECL int yylex (void) + extern "C" YY_DECL; +-#define YY_NO_UNISTD_H 1 +-int isatty (int fd) { return 0; } + %} + %% + "foo" return EOF; +diff --git a/t/lex-depend.sh b/t/lex-depend.sh +index 16f937ef1..68cc5ee7b 100644 +--- a/t/lex-depend.sh ++++ b/t/lex-depend.sh +@@ -27,6 +27,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = zoo + zoo_SOURCES = joe.l + LDADD = $(LEXLIB) +@@ -42,9 +44,6 @@ test-obj-updated: joe.$(OBJEXT) + END + + cat > joe.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "foo" return EOF; + . +diff --git a/t/lex-header.sh b/t/lex-header.sh +index 22567642e..48b42457a 100644 +--- a/t/lex-header.sh ++++ b/t/lex-header.sh +@@ -33,6 +33,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = lexer.l main.c mylex.h + foo_LFLAGS = --header-file=mylex.h +@@ -45,9 +47,6 @@ END + + cat > lexer.l << 'END' + %option noyywrap +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "GOOD" return EOF; + . +@@ -55,7 +54,6 @@ cat > lexer.l << 'END' + END + + cat > main.c <<'END' +-#define YY_NO_UNISTD_H 1 + #include "mylex.h" + int main (void) + { +diff --git a/t/lex-lib-external.sh b/t/lex-lib-external.sh +index 85403612f..25ad2a39b 100644 +--- a/t/lex-lib-external.sh ++++ b/t/lex-lib-external.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = lexer + lexer_SOURCES = foo.l + lexer_LDADD = $(LEXLIB) +@@ -42,9 +44,6 @@ have-lexlib: + END + + cat > foo.l <<'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "GOOD" return EOF; + . +diff --git a/t/lex-lib.sh b/t/lex-lib.sh +index f0a0d37f6..7734fd228 100644 +--- a/t/lex-lib.sh ++++ b/t/lex-lib.sh +@@ -31,6 +31,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = lexer + lexer_SOURCES = foo.l + lexer_LDADD = $(LEXLIB) +@@ -47,9 +49,6 @@ int yywrap (void) + END + + cat > foo.l <<'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/lex-libobj.sh b/t/lex-libobj.sh +index b26381fcf..6e36a98ed 100644 +--- a/t/lex-libobj.sh ++++ b/t/lex-libobj.sh +@@ -32,6 +32,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + noinst_PROGRAMS = foo + foo_SOURCES = foo.l + foo_LDADD = $(LEXLIB) $(LIBOBJS) +@@ -45,9 +47,6 @@ int yywrap (void) + END + + cat > foo.l <<'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/lex-line.sh b/t/lex-line.sh +index 340800ef2..5f9145847 100644 +--- a/t/lex-line.sh ++++ b/t/lex-line.sh +@@ -32,6 +32,8 @@ END + mkdir dir sub sub/dir + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + SUBDIRS = sub + bin_PROGRAMS = foo bar + LDADD = $(LEXLIB) +@@ -44,6 +46,8 @@ bar-quux.@OBJEXT@: bar-quux.c + END + + cat > sub/Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + AUTOMAKE_OPTIONS = subdir-objects + noinst_PROGRAMS = foo bar + ## We already used $(LEXLIB) above, so try @LEXLIB@ now. +@@ -57,9 +61,6 @@ dir/quux.@OBJEXT@: dir/quux.c + END + + cat > zardoz.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/lex-multiple.sh b/t/lex-multiple.sh +index 9565bd6b8..6486a012f 100644 +--- a/t/lex-multiple.sh ++++ b/t/lex-multiple.sh +@@ -31,7 +31,9 @@ AC_PROG_RANLIB + AC_OUTPUT + END + +-cat > Makefile.am << 'END' ++cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = zardoz + + zardoz_SOURCES = main.c +@@ -72,9 +74,6 @@ int main (int argc, char *argv[]) + END + + cat > 0.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "VANILLA" { printf (":%s:\n", yytext); return 121; } + . { printf (":%s:\n", yytext); return 1; } +diff --git a/t/lex-nodist.sh b/t/lex-nodist.sh +index 73e23a13e..d499aea7f 100644 +--- a/t/lex-nodist.sh ++++ b/t/lex-nodist.sh +@@ -31,6 +31,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + .PHONY: test-build test-dist + test-build: all + ls -l +@@ -45,9 +47,6 @@ check-local: test-build test-dist + lexer.l: + rm -f $@ $@-t + :; { : \ +- && echo '%{' \ +- && echo '#define YY_NO_UNISTD_H 1' \ +- && echo '%}' \ + && echo '%%' \ + && echo '"GOOD" return EOF;' \ + && echo '.'; \ +diff --git a/t/lex-noyywrap.sh b/t/lex-noyywrap.sh +index 1c61a1ab3..5ec68b9ba 100644 +--- a/t/lex-noyywrap.sh ++++ b/t/lex-noyywrap.sh +@@ -26,6 +26,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = foo.l + +@@ -37,9 +39,6 @@ END + + cat > foo.l << 'END' + %option noyywrap +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "GOOD" return EOF; + . +diff --git a/t/lex-pr204.sh b/t/lex-pr204.sh +index ebfaafef5..cbad1c266 100644 +--- a/t/lex-pr204.sh ++++ b/t/lex-pr204.sh +@@ -35,6 +35,8 @@ EOF + # The LEXER2 intermediate variable is there to make sure Automake + # matches 'nodist_' against the right variable name... + cat > Makefile.am << 'EOF' ++AM_LFLAGS = --never-interactive ++ + EXTRA_PROGRAMS = foo + LEXER2 = lexer2.l + nodist_foo_SOURCES = lexer.l $(LEXER2) +@@ -49,9 +51,6 @@ distdirtest: distdir + EOF + + cat > lexer.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "GOOD" return EOF; + . +diff --git a/t/lex-subobj-nodep.sh b/t/lex-subobj-nodep.sh +index f8bb87a9c..8ef4d68b1 100644 +--- a/t/lex-subobj-nodep.sh ++++ b/t/lex-subobj-nodep.sh +@@ -28,6 +28,8 @@ END + + cat >Makefile.am <<\END + AUTOMAKE_OPTIONS = subdir-objects ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = p1 p2 + p1_SOURCES = sub1/s1.l + p2_SOURCES = sub2/s2.l +@@ -37,9 +39,6 @@ END + mkdir sub1 sub2 + + cat >sub1/s1.l <<\END +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/lex3.sh b/t/lex3.sh +index 41b87dc06..4a20f85da 100644 +--- a/t/lex3.sh ++++ b/t/lex3.sh +@@ -28,14 +28,13 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + noinst_PROGRAMS = foo + foo_SOURCES = foo.l + END + + cat > foo.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "GOOD" return EOF; + . +diff --git a/t/lex5.sh b/t/lex5.sh +index 3d84d9b41..687903e65 100644 +--- a/t/lex5.sh ++++ b/t/lex5.sh +@@ -28,6 +28,7 @@ END + cat > Makefile.am << 'END' + AUTOMAKE_OPTIONS = subdir-objects + LDADD = @LEXLIB@ ++AM_LFLAGS = --never-interactive + + bin_PROGRAMS = foo/foo + foo_foo_SOURCES = foo/foo.l +@@ -36,9 +37,6 @@ END + mkdir foo + + cat > foo/foo.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/lexvpath.sh b/t/lexvpath.sh +index 5185a1f71..d064fd2bd 100644 +--- a/t/lexvpath.sh ++++ b/t/lexvpath.sh +@@ -37,6 +37,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = lexer.l foo.c + LDADD = $(LEXLIB) +@@ -44,9 +46,6 @@ END + + # Original lexer, with a "foobar" comment + cat > lexer.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +@@ -89,9 +88,6 @@ $sleep + + # New lexer, with 'fubar' comment. + cat > ../lexer.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +@@ -112,9 +108,6 @@ $sleep + + # New lexer, with 'maude' comment. + cat > ../lexer.l << 'END' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/silent-lex.sh b/t/silent-lex.sh +index cfe1a9b5d..e424afc38 100644 +--- a/t/silent-lex.sh ++++ b/t/silent-lex.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + EOF + + cat > Makefile.am <<'EOF' ++AM_LFLAGS = --never-interactive ++ + # Need generic and non-generic rules. + bin_PROGRAMS = foo1 foo2 + foo1_SOURCES = foo.l +@@ -40,6 +42,8 @@ EOF + + cat > sub/Makefile.am <<'EOF' + AUTOMAKE_OPTIONS = subdir-objects ++AM_LFLAGS = --never-interactive ++ + # Need generic and non-generic rules. + bin_PROGRAMS = bar1 bar2 + bar1_SOURCES = bar.l +@@ -50,9 +54,6 @@ LDADD = $(LEXLIB) + EOF + + cat > foo.l <<'EOF' +-%{ +-#define YY_NO_UNISTD_H 1 +-%} + %% + "END" return EOF; + . +diff --git a/t/silent-many-languages.sh b/t/silent-many-languages.sh +index 4edb46884..85773d339 100644 +--- a/t/silent-many-languages.sh ++++ b/t/silent-many-languages.sh +@@ -151,6 +151,7 @@ ba2_YFLAGS = -v + ba2_LFLAGS = -n + ba2_LDADD = $(LEXLIB) + AM_YFLAGS = -d ++AM_LFLAGS = --never-interactive + BUILT_SOURCES = baz6.h + EOF + +diff --git a/t/silent-yacc-headers.sh b/t/silent-yacc-headers.sh +index 98ae45b8a..f64342c82 100644 +--- a/t/silent-yacc-headers.sh ++++ b/t/silent-yacc-headers.sh +@@ -31,6 +31,7 @@ EOF + cat > Makefile.am <<'EOF' + # Need generic and non-generic rules. + AM_YFLAGS = -d ++AM_LFLAGS = --never-interactive + bin_PROGRAMS = foo bar + foo_SOURCES = parse.y + bar_SOURCES = $(foo_SOURCES) +diff --git a/t/silent-yacc.sh b/t/silent-yacc.sh +index 9645aff83..d89ff49a7 100644 +--- a/t/silent-yacc.sh ++++ b/t/silent-yacc.sh +@@ -29,6 +29,8 @@ AC_OUTPUT + EOF + + cat > Makefile.am <<'EOF' ++AM_LFLAGS = --never-interactive ++ + # Need generic and non-generic rules. + bin_PROGRAMS = foo1 foo2 + foo1_SOURCES = foo.y +@@ -40,6 +42,8 @@ EOF + + cat > sub/Makefile.am <<'EOF' + AUTOMAKE_OPTIONS = subdir-objects ++AM_LFLAGS = --never-interactive ++ + # Need generic and non-generic rules. + bin_PROGRAMS = bar1 bar2 + bar1_SOURCES = bar.y +diff --git a/t/subpkg-yacc.sh b/t/subpkg-yacc.sh +index edd14532b..782ee0957 100644 +--- a/t/subpkg-yacc.sh ++++ b/t/subpkg-yacc.sh +@@ -61,6 +61,8 @@ AC_OUTPUT + EOF + + cat >lib/Makefile.am <<'EOF' ++AM_LFLAGS = --never-interactive ++ + noinst_LIBRARIES = liblib.a + liblib_a_SOURCES = src/x.c foo.y + EXTRA_liblib_a_SOURCES = bar.y +diff --git a/t/suffix10.tap b/t/suffix10.tap +index 3869d07fd..8d3dc1756 100644 +--- a/t/suffix10.tap ++++ b/t/suffix10.tap +@@ -31,6 +31,8 @@ AC_OUTPUT + EOF + + cat >Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + lib_LTLIBRARIES = libfoo.la + libfoo_la_SOURCES = foo.x_ + .x_.y: +diff --git a/t/yacc-auxdir.sh b/t/yacc-auxdir.sh +index be8ac4fd4..f6ff7de48 100644 +--- a/t/yacc-auxdir.sh ++++ b/t/yacc-auxdir.sh +@@ -35,12 +35,16 @@ cat > Makefile.am << 'END' + SUBDIRS = sub + bin_PROGRAMS = foo + AM_YFLAGS = -d ++AM_LFLAGS = --never-interactive ++ + foo_SOURCES = foo.y + END + + cat > sub/Makefile.am << 'END' + bin_PROGRAMS = bar + AM_YFLAGS = -d ++AM_LFLAGS = --never-interactive ++ + bar_SOURCES = bar.y main.c + END + +diff --git a/t/yacc-basic.sh b/t/yacc-basic.sh +index b7a35bd39..51ee5f6a3 100644 +--- a/t/yacc-basic.sh ++++ b/t/yacc-basic.sh +@@ -27,6 +27,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar + foo_SOURCES = parse.y foo.c + bar_SOURCES = $(foo_SOURCES) +diff --git a/t/yacc-bison-skeleton-cxx.sh b/t/yacc-bison-skeleton-cxx.sh +index bded1a34f..da76238fa 100644 +--- a/t/yacc-bison-skeleton-cxx.sh ++++ b/t/yacc-bison-skeleton-cxx.sh +@@ -27,6 +27,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = zardoz + zardoz_SOURCES = zardoz.yy foo.cc + +diff --git a/t/yacc-bison-skeleton.sh b/t/yacc-bison-skeleton.sh +index b77b29f1e..11b64b831 100644 +--- a/t/yacc-bison-skeleton.sh ++++ b/t/yacc-bison-skeleton.sh +@@ -31,6 +31,8 @@ cat > Makefile.am << 'END' + bin_PROGRAMS = zardoz + zardoz_SOURCES = zardoz.y foo.c + AM_YFLAGS = -d --skeleton glr.c ++AM_LFLAGS = --never-interactive ++ + BUILT_SOURCES = zardoz.h + END + +diff --git a/t/yacc-clean-cxx.sh b/t/yacc-clean-cxx.sh +index d12e02308..71eb4f315 100644 +--- a/t/yacc-clean-cxx.sh ++++ b/t/yacc-clean-cxx.sh +@@ -39,6 +39,8 @@ END + mkdir sub1 sub2 + + cat > sub1/Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar baz qux + + foo_SOURCES = mainfoo.cc parsefoo.yxx +diff --git a/t/yacc-clean.sh b/t/yacc-clean.sh +index 0baf0afd8..d0f793843 100644 +--- a/t/yacc-clean.sh ++++ b/t/yacc-clean.sh +@@ -38,6 +38,8 @@ END + mkdir sub1 sub2 + + cat > sub1/Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar baz qux + + foo_SOURCES = main.c parse.y +diff --git a/t/yacc-cxx-grepping.sh b/t/yacc-cxx-grepping.sh +index 7b3a6bc5e..e094d5f16 100644 +--- a/t/yacc-cxx-grepping.sh ++++ b/t/yacc-cxx-grepping.sh +@@ -27,6 +27,8 @@ AC_PROG_YACC + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar baz qux + foo_SOURCES = foo.y++ + bar_SOURCES = bar.ypp +diff --git a/t/yacc-cxx.sh b/t/yacc-cxx.sh +index 1bf75a975..52fca8c01 100644 +--- a/t/yacc-cxx.sh ++++ b/t/yacc-cxx.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo1 foo2 foo3 foo4 + foo1_SOURCES = parse1.yy foo.cc + foo2_SOURCES = parse2.y++ bar.c++ +diff --git a/t/yacc-d-basic.sh b/t/yacc-d-basic.sh +index fe80a0888..166111fdb 100644 +--- a/t/yacc-d-basic.sh ++++ b/t/yacc-d-basic.sh +@@ -35,6 +35,8 @@ END + mkdir foo bar baz + + cat > foo/Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = zardoz + zardoz_SOURCES = parse.y main.c + .PHONY: echo-distcom +diff --git a/t/yacc-d-cxx.sh b/t/yacc-d-cxx.sh +index 56f43c940..5f9a09a46 100644 +--- a/t/yacc-d-cxx.sh ++++ b/t/yacc-d-cxx.sh +@@ -67,6 +67,8 @@ mkdir foo bar baz qux baz/sub + + # These makefiles will be extended later. + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + .PHONY: echo-distcom + echo-distcom: + @echo ' ' $(DIST_COMMON) ' ' +diff --git a/t/yacc-d-vpath.sh b/t/yacc-d-vpath.sh +index dced4818f..3dcf17ade 100644 +--- a/t/yacc-d-vpath.sh ++++ b/t/yacc-d-vpath.sh +@@ -32,6 +32,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = parse.y foo.c + AM_YFLAGS = -d +diff --git a/t/yacc-deleted-headers.sh b/t/yacc-deleted-headers.sh +index c3fdbeee4..8c27dcefb 100644 +--- a/t/yacc-deleted-headers.sh ++++ b/t/yacc-deleted-headers.sh +@@ -26,6 +26,8 @@ AC_OUTPUT + END + + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = p1 p2 p3 p4 + # The order in which files are listed in the p*_SOURCES variables + # below is significant, since it causes make failures whenever +diff --git a/t/yacc-depend.sh b/t/yacc-depend.sh +index cf544359f..d1e09bc39 100644 +--- a/t/yacc-depend.sh ++++ b/t/yacc-depend.sh +@@ -29,6 +29,8 @@ END + cat > Makefile.am << 'END' + bin_PROGRAMS = foo + AM_YFLAGS = -d ++AM_LFLAGS = --never-interactive ++ + foo_SOURCES = foo.y main.c + BUILT_SOURCES = foo.h + END +diff --git a/t/yacc-depend2.sh b/t/yacc-depend2.sh +index a61e4957d..a52d4489f 100644 +--- a/t/yacc-depend2.sh ++++ b/t/yacc-depend2.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + AM_YFLAGS = -d + foo_SOURCES = foo.y main.c +diff --git a/t/yacc-dist-nobuild-subdir.sh b/t/yacc-dist-nobuild-subdir.sh +index d1788811f..56320fe48 100644 +--- a/t/yacc-dist-nobuild-subdir.sh ++++ b/t/yacc-dist-nobuild-subdir.sh +@@ -49,6 +49,8 @@ END + + cat > Makefile.am <<'END' + AUTOMAKE_OPTIONS = subdir-objects ++AM_LFLAGS = --never-interactive ++ + noinst_PROGRAMS = foo bar + foo_SOURCES = sub/parse.y + bar_SOURCES = $(foo_SOURCES) +diff --git a/t/yacc-dist-nobuild.sh b/t/yacc-dist-nobuild.sh +index a30fefec2..71be0d52c 100644 +--- a/t/yacc-dist-nobuild.sh ++++ b/t/yacc-dist-nobuild.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foobar zardoz + foobar_SOURCES = parse.y main.c + zardoz_SOURCES = $(foobar_SOURCES) +diff --git a/t/yacc-dry.sh b/t/yacc-dry.sh +index 9b08d3863..6500ba811 100644 +--- a/t/yacc-dry.sh ++++ b/t/yacc-dry.sh +@@ -26,6 +26,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + AM_YFLAGS = -d + bin_PROGRAMS = foo + foo_SOURCES = foo.c parse.y +diff --git a/t/yacc-grepping.sh b/t/yacc-grepping.sh +index b0cf91353..67381ba89 100644 +--- a/t/yacc-grepping.sh ++++ b/t/yacc-grepping.sh +@@ -35,6 +35,8 @@ END + $ACLOCAL + + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = zardoz + zardoz_SOURCES = zardoz.y + END +diff --git a/t/yacc-grepping2.sh b/t/yacc-grepping2.sh +index 159dd3e15..4af321fbe 100644 +--- a/t/yacc-grepping2.sh ++++ b/t/yacc-grepping2.sh +@@ -25,6 +25,8 @@ AC_PROG_YACC + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = maude + maude_SOURCES = sub/maude.y + END +diff --git a/t/yacc-headers-and-dist-pr47.sh b/t/yacc-headers-and-dist-pr47.sh +index 57c8251ad..74ec525f9 100644 +--- a/t/yacc-headers-and-dist-pr47.sh ++++ b/t/yacc-headers-and-dist-pr47.sh +@@ -30,6 +30,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = foo.y + AM_YFLAGS = -d +diff --git a/t/yacc-line.sh b/t/yacc-line.sh +index e7a4d6244..2319c9791 100644 +--- a/t/yacc-line.sh ++++ b/t/yacc-line.sh +@@ -32,6 +32,8 @@ END + mkdir dir sub sub/dir + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + SUBDIRS = sub + bin_PROGRAMS = foo bar + AM_YFLAGS = -d +@@ -45,6 +47,8 @@ END + + cat > sub/Makefile.am << 'END' + AUTOMAKE_OPTIONS = subdir-objects ++AM_LFLAGS = --never-interactive ++ + noinst_PROGRAMS = foo bar + foo_YFLAGS = -d + foo_SOURCES = zardoz.y +diff --git a/t/yacc-misc.sh b/t/yacc-misc.sh +index 2bfb0c55e..fcc19aa49 100644 +--- a/t/yacc-misc.sh ++++ b/t/yacc-misc.sh +@@ -26,6 +26,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar + foo_SOURCES = parse.y foo.c + bar_SOURCES = bar.y foo.c +diff --git a/t/yacc-mix-c-cxx.sh b/t/yacc-mix-c-cxx.sh +index a73935c39..bb58bb6fa 100644 +--- a/t/yacc-mix-c-cxx.sh ++++ b/t/yacc-mix-c-cxx.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = c1 c2 cxx1 cxx2 cxx3 + AM_YFLAGS = -d + +diff --git a/t/yacc-nodist.sh b/t/yacc-nodist.sh +index dbb86bdb2..8e5338e94 100644 +--- a/t/yacc-nodist.sh ++++ b/t/yacc-nodist.sh +@@ -31,6 +31,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + SUBDIRS = sub1 sub2 + .PHONY: test-build test-dist + test-build: all +diff --git a/t/yacc-pr204.sh b/t/yacc-pr204.sh +index 91882e4d7..89acb1ee0 100644 +--- a/t/yacc-pr204.sh ++++ b/t/yacc-pr204.sh +@@ -34,6 +34,8 @@ EOF + # sure Automake match 'nodist_' against the right + # variable name... + cat > Makefile.am << 'EOF' ++AM_LFLAGS = --never-interactive ++ + AM_YFLAGS = -d + EXTRA_PROGRAMS = foo + PARSE2 = parse2.y +diff --git a/t/yacc-subdir.sh b/t/yacc-subdir.sh +index df31a3c51..d6c3f0cc8 100644 +--- a/t/yacc-subdir.sh ++++ b/t/yacc-subdir.sh +@@ -28,6 +28,8 @@ END + + cat > Makefile.am << 'END' + AUTOMAKE_OPTIONS = subdir-objects ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo/foo + foo_foo_SOURCES = foo/parse.y + AM_YFLAGS = -d +diff --git a/t/yacc-vpath.sh b/t/yacc-vpath.sh +index 52d2c45bd..42044ecf2 100644 +--- a/t/yacc-vpath.sh ++++ b/t/yacc-vpath.sh +@@ -32,6 +32,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = parse.y foo.c + END +diff --git a/t/yacc-weirdnames.sh b/t/yacc-weirdnames.sh +index 60f199d2d..8397bc636 100644 +--- a/t/yacc-weirdnames.sh ++++ b/t/yacc-weirdnames.sh +@@ -27,6 +27,8 @@ AC_OUTPUT + END + + cat > Makefile.am << 'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar foo2 bar2 + + foo_SOURCES = parse.y.y +diff --git a/t/yflags-cmdline-override.sh b/t/yflags-cmdline-override.sh +index 37304645c..73982753a 100644 +--- a/t/yflags-cmdline-override.sh ++++ b/t/yflags-cmdline-override.sh +@@ -27,6 +27,8 @@ AC_OUTPUT + END + + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = foo.y + # A minor automake wart: automake doesn't generate code to clean +diff --git a/t/yflags-cxx.sh b/t/yflags-cxx.sh +index 9bd28b8ce..2596a95e3 100644 +--- a/t/yflags-cxx.sh ++++ b/t/yflags-cxx.sh +@@ -39,6 +39,8 @@ END + + cat > Makefile.am <<'END' + AUTOMAKE_OPTIONS = no-dependencies ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar + foo_SOURCES = main.cc foo.yy + bar_SOURCES = main.cc bar.y++ +diff --git a/t/yflags-d-false-positives.sh b/t/yflags-d-false-positives.sh +index 21efb2345..666dbe938 100644 +--- a/t/yflags-d-false-positives.sh ++++ b/t/yflags-d-false-positives.sh +@@ -26,6 +26,8 @@ END + $ACLOCAL + + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = zardoz foobar + zardoz_SOURCES = zardoz.y + foobar_SOURCES = foobar.y +diff --git a/t/yflags-force-conditional.sh b/t/yflags-force-conditional.sh +index 3f9a13293..976b6f782 100644 +--- a/t/yflags-force-conditional.sh ++++ b/t/yflags-force-conditional.sh +@@ -38,6 +38,8 @@ YACC=fake-yacc; export YACC + + cat > Makefile.am <<'END' + AUTOMAKE_OPTIONS = no-dependencies ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar + foo_SOURCES = foo.y main.c + bar_SOURCES = $(foo_SOURCES) +diff --git a/t/yflags-force-override.sh b/t/yflags-force-override.sh +index b1c36ef0f..7c865935b 100644 +--- a/t/yflags-force-override.sh ++++ b/t/yflags-force-override.sh +@@ -28,6 +28,8 @@ AC_OUTPUT + END + + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo + foo_SOURCES = foo.y + # Don't do this in a real-life Makefile.am! +diff --git a/t/yflags-var-expand.sh b/t/yflags-var-expand.sh +index 0e06e0d9c..bf34922a6 100644 +--- a/t/yflags-var-expand.sh ++++ b/t/yflags-var-expand.sh +@@ -29,6 +29,8 @@ END + $ACLOCAL + + cat > Makefile.am <<'END' ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar + foo_SOURCES = foo.y + bar_SOURCES = bar.y +diff --git a/t/yflags.sh b/t/yflags.sh +index 1f73776f8..2359a76b7 100644 +--- a/t/yflags.sh ++++ b/t/yflags.sh +@@ -39,6 +39,8 @@ END + + cat > Makefile.am <<'END' + AUTOMAKE_OPTIONS = no-dependencies ++AM_LFLAGS = --never-interactive ++ + bin_PROGRAMS = foo bar + foo_SOURCES = main.c foo.y + bar_SOURCES = main.c bar.y +-- +2.39.0 + diff --git a/v2-0002-tests-Fix-implicit-function-declaration-errors.patch b/v2-0002-tests-Fix-implicit-function-declaration-errors.patch new file mode 100644 index 0000000..b882e03 --- /dev/null +++ b/v2-0002-tests-Fix-implicit-function-declaration-errors.patch @@ -0,0 +1,265 @@ +From 38f4f6dcdb907e0006a8e83246e010d5d5cad98d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= +Date: Thu, 8 Dec 2022 10:09:14 +0100 +Subject: [PATCH v2 2/3] tests: Fix implicit function declaration errors +In-Reply-To: <20221212070554.1635775-3-fberat@redhat.com> + +Changes from v1: + Modifications to "t/ax/depcomp.sh" have been moved to a dedicated patch + +-- 8< -- + +This is related to an effort to prepare Automake for future GCC/Clang +versions which set c99 as default standard to be used. + +Function should be properly declared prior to use in order to be +compatible with c99 standard. +This is valid for both local functions and standard functions (as +printf). + +Modified files: + + * t/c-demo.sh + * t/cond35.sh + * t/dist-vs-built-sources.sh + * t/lex-clean.sh + * t/lex-multiple.sh + * t/lex-nodist.sh + * t/ltcond2.sh + * t/ltconv.sh + * t/subobj-clean-lt-pr10697.sh + * t/subobj-clean-pr10697.sh + * t/tags-pr12372.sh + * t/yacc-basic.sh + * t/yacc-clean.sh + * t/yacc-nodist.sh +--- + t/c-demo.sh | 1 + + t/cond35.sh | 2 ++ + t/dist-vs-built-sources.sh | 1 + + t/lex-clean.sh | 1 + + t/lex-multiple.sh | 4 ++++ + t/lex-nodist.sh | 2 ++ + t/ltcond2.sh | 2 ++ + t/ltconv.sh | 6 ++++++ + t/subobj-clean-lt-pr10697.sh | 10 +++++++++- + t/subobj-clean-pr10697.sh | 10 +++++++++- + t/tags-pr12372.sh | 3 ++- + t/yacc-basic.sh | 1 + + t/yacc-clean.sh | 4 ++++ + t/yacc-nodist.sh | 2 ++ + 14 files changed, 46 insertions(+), 3 deletions(-) + +diff --git a/t/c-demo.sh b/t/c-demo.sh +index 7e0e8d64f..d25bf214b 100644 +--- a/t/c-demo.sh ++++ b/t/c-demo.sh +@@ -113,6 +113,7 @@ test -f build-aux/compile # We have per-target flags on C sources. + ./configure --enable-dependency-tracking + + cat > src/main.c << 'END' ++#include + #include "foo.h" + #include "bar.h" + int main (void) +diff --git a/t/cond35.sh b/t/cond35.sh +index 215a22548..bad133970 100644 +--- a/t/cond35.sh ++++ b/t/cond35.sh +@@ -73,6 +73,8 @@ END + + cat > tparse.y << 'END' + %{ ++extern int yylex(void); ++ + void yyerror (const char *s) {} + %} + %token EOF +diff --git a/t/dist-vs-built-sources.sh b/t/dist-vs-built-sources.sh +index d038e66dd..db2776f9a 100644 +--- a/t/dist-vs-built-sources.sh ++++ b/t/dist-vs-built-sources.sh +@@ -41,6 +41,7 @@ foo_SOURCES = foo.c + END + + cat > foo.c << 'END' ++#include + #include "h.h" + int main (void) { printf ("%s\n", F); return 0; } + END +diff --git a/t/lex-clean.sh b/t/lex-clean.sh +index 5aa199338..e53da8fd2 100644 +--- a/t/lex-clean.sh ++++ b/t/lex-clean.sh +@@ -61,6 +61,7 @@ cat > lexer.l << 'END' + END + + cat > main.c << 'END' ++extern int yylex (void); + int main (void) + { + return yylex (); +diff --git a/t/lex-multiple.sh b/t/lex-multiple.sh +index 2655b633e..bf119ec84 100644 +--- a/t/lex-multiple.sh ++++ b/t/lex-multiple.sh +@@ -56,6 +56,10 @@ cat > main.c << 'END' + #include + #include + ++extern int yylex (void); ++extern int foolex (void); ++extern int bar_lex (void); ++ + int main (int argc, char *argv[]) + { + if (argc != 2) +diff --git a/t/lex-nodist.sh b/t/lex-nodist.sh +index 599539405..187dd5437 100644 +--- a/t/lex-nodist.sh ++++ b/t/lex-nodist.sh +@@ -62,6 +62,8 @@ CLEANFILES = $(nodist_prog_SOURCES) + END + + cat > main.c << 'END' ++extern int yylex (void); ++ + int main () + { + return yylex (); +diff --git a/t/ltcond2.sh b/t/ltcond2.sh +index 29244c9b3..7e7bcadc4 100644 +--- a/t/ltcond2.sh ++++ b/t/ltcond2.sh +@@ -73,6 +73,8 @@ void print (void) + END + + cat > main.c <<'END' ++extern void print(void); ++ + int main (void) + { + print(); +diff --git a/t/ltconv.sh b/t/ltconv.sh +index 2c4cc47a1..ec79ef80e 100644 +--- a/t/ltconv.sh ++++ b/t/ltconv.sh +@@ -91,6 +91,12 @@ echo 'int sub22 () { return 22; }' > sub2/sub22/sub22.c + + cat >test.c <<'EOF' + #include ++ ++extern int sub1 (void); ++extern int sub2 (void); ++extern int sub21 (void); ++extern int sub22 (void); ++ + int main () + { + if (1 != sub1 ()) +diff --git a/t/subobj-clean-lt-pr10697.sh b/t/subobj-clean-lt-pr10697.sh +index bb656c43f..53fc02f09 100644 +--- a/t/subobj-clean-lt-pr10697.sh ++++ b/t/subobj-clean-lt-pr10697.sh +@@ -83,7 +83,15 @@ libfoo_la_SOURCES = \ + END + + mkdir sub1 sub2 +-echo 'int libmain (void)' > main.c ++ ++echo "/* Subobj clean: libtool case*/" > main.c ++for i in 1 2; do ++ for j in a b c d e f; do ++ echo "extern void $j$i (void);" >> main.c ++ done ++done ++ ++echo 'int libmain (void)' >> main.c + echo '{' >> main.c + for i in 1 2; do + for j in a b c d e f; do +diff --git a/t/subobj-clean-pr10697.sh b/t/subobj-clean-pr10697.sh +index f77de8c92..a7f97f6d1 100644 +--- a/t/subobj-clean-pr10697.sh ++++ b/t/subobj-clean-pr10697.sh +@@ -81,7 +81,15 @@ foo_SOURCES = \ + END + + mkdir sub1 sub2 +-echo 'int main (void)' > main.c ++ ++echo "/* Subobj clean: generic case*/" > main.c ++for i in 1 2; do ++ for j in a b c d e f; do ++ echo "extern void $j$i (void);" >> main.c ++ done ++done ++ ++echo 'int main (void)' >> main.c + echo '{' >> main.c + for i in 1 2; do + for j in a b c d e f; do +diff --git a/t/tags-pr12372.sh b/t/tags-pr12372.sh +index b9c022f70..1a9e1e026 100644 +--- a/t/tags-pr12372.sh ++++ b/t/tags-pr12372.sh +@@ -53,7 +53,8 @@ noinst_PROGRAMS = zap + zap_SOURCES = zardoz.pc + END + +-echo 'int main(void) [ return bar(1); ]' > foo-main.pc ++echo 'extern int bar(int);' > foo-main.pc ++echo 'int main(void) [ return bar(1); ]' >> foo-main.pc + echo 'int bar(int x) { return !x; }' > barbar.c + echo 'int m@in(void) { return 0; }' > sub/zardoz.pc + +diff --git a/t/yacc-basic.sh b/t/yacc-basic.sh +index 5b258a30c..8cc0d06a2 100644 +--- a/t/yacc-basic.sh ++++ b/t/yacc-basic.sh +@@ -49,6 +49,7 @@ a : 'a' { exit(0); }; + END + + cat > foo.c << 'END' ++extern int yyparse(void); + int main () { yyparse (); return 1; } + END + +diff --git a/t/yacc-clean.sh b/t/yacc-clean.sh +index 373774b6a..fef079cf3 100644 +--- a/t/yacc-clean.sh ++++ b/t/yacc-clean.sh +@@ -65,6 +65,8 @@ END + + cat > sub1/parse.y << 'END' + %{ ++#include ++ + int yylex () { return (getchar ()); } + void yyerror (const char *s) {} + %} +@@ -74,6 +76,8 @@ END + cp sub1/parse.y sub2/parse.y + + cat > sub1/main.c << 'END' ++extern int yyparse(void); ++ + int main () + { + return yyparse (); +diff --git a/t/yacc-nodist.sh b/t/yacc-nodist.sh +index d350a80f9..4a8ebe9ca 100644 +--- a/t/yacc-nodist.sh ++++ b/t/yacc-nodist.sh +@@ -78,6 +78,8 @@ BUILT_SOURCES = parse.h + END + + cat > sub1/main.c << 'END' ++extern int yyparse(void); ++ + int main () + { + return yyparse (); +-- +2.38.1 + diff --git a/v3-0003-tests-Fix-implicit-function-declaration-in-ax-dep.patch b/v3-0003-tests-Fix-implicit-function-declaration-in-ax-dep.patch new file mode 100644 index 0000000..4ff1f4e --- /dev/null +++ b/v3-0003-tests-Fix-implicit-function-declaration-in-ax-dep.patch @@ -0,0 +1,58 @@ +From 5e74354030fe88e038a6fc1b3f4c2321df150352 Mon Sep 17 00:00:00 2001 +From: Frederic Berat +Date: Fri, 16 Dec 2022 06:42:45 +0100 +Subject: [PATCH v3] tests: Fix implicit function declaration in ax/depcomp.sh +In-Reply-To: <20230113064804.580F5340B54@smtp.gentoo.org> + +Change since v2: + - Replace the mv operation by a cp operation to ensure that subfoo.h is + considered being modified. + +-- 8< -- + +In depcomp.sh, the following occurs: + +1. Files are created so that headers and units are available in + subdirectories +2. Multiple "make" are executed, while modifying the content of the + headers, some should fail, others should succeed. +3. At the end, the "sub/subfoo.h" header gets removed. +4. make is executed again, which is expected to succeed. + +Yet, with c99, this can't work as the subfoo.h header contains +declaration that are used by foo.c. +Thus, we need to get them back, either by inserting the declaration in +foo.c (or any other header/unit), or by restoring subfoo.h to its +original state. + +The later solution seems the easiest path, being less intrusive in +depcomp.sh. +--- + t/ax/depcomp.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/t/ax/depcomp.sh b/t/ax/depcomp.sh +index 7a3ac63a7..c92f7c8df 100644 +--- a/t/ax/depcomp.sh ++++ b/t/ax/depcomp.sh +@@ -243,6 +243,7 @@ cat > sub/subfoo.h <<'END' + #include + extern int subfoo (void); + END ++cp sub/subfoo.h sub/subfoo.save + + cat > src/baz.c <<'END' + #include "baz.h" +@@ -399,8 +400,7 @@ do_test () + && rewrite "$srcdir"/sub/subfoo.h echo 'choke me' \ + && not $MAKE \ + && delete "$srcdir"/sub/subfoo.h \ +- && edit "$srcdir"/sub/subfoo.c -e 1d \ +- && edit "$srcdir"/foo.h -e 2d \ ++ && cp "$srcdir"/sub/subfoo.save "$srcdir"/sub/subfoo.h \ + && make_ok \ + || r='not ok' + result_ "$r" "$pfx dependency tracking works" +-- +2.39.0 +