diff options
Diffstat (limited to 'main/autoconf/0001-Fix-regression-of-AC_CONFIG_SUBDIRS-with-multiple-ar.patch')
-rw-r--r-- | main/autoconf/0001-Fix-regression-of-AC_CONFIG_SUBDIRS-with-multiple-ar.patch | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/main/autoconf/0001-Fix-regression-of-AC_CONFIG_SUBDIRS-with-multiple-ar.patch b/main/autoconf/0001-Fix-regression-of-AC_CONFIG_SUBDIRS-with-multiple-ar.patch new file mode 100644 index 000000000..ca73d2d34 --- /dev/null +++ b/main/autoconf/0001-Fix-regression-of-AC_CONFIG_SUBDIRS-with-multiple-ar.patch @@ -0,0 +1,122 @@ +From 49a6f8a8b52060d8fe0f97aa6f1d5c47b40b65c1 Mon Sep 17 00:00:00 2001 +From: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +Date: Tue, 6 Jul 2010 22:31:33 +0200 +Subject: [PATCH 1/5] Fix regression of AC_CONFIG_SUBDIRS with multiple arguments. + +* lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS): Do not assume the +argument is a single word. +* tests/torture.at (Deep Package): Extend test to cover this. +(Non-literal AC_CONFIG_SUBDIRS): New test. +* doc/autoconf.texi (Subdirectories): Add example marker. +* NEWS: Update. +Report by Bruno Haible. + +Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +--- + ChangeLog | 12 ++++++++++ + NEWS | 2 + + doc/autoconf.texi | 1 + + lib/autoconf/status.m4 | 2 +- + tests/torture.at | 54 +++++++++++++++++++++++++++++++++++++++++++++++- + 5 files changed, 69 insertions(+), 2 deletions(-) + +diff --git a/doc/autoconf.texi b/doc/autoconf.texi +index 0c106c7..39c2ba6 100644 +--- a/doc/autoconf.texi ++++ b/doc/autoconf.texi +@@ -3617,6 +3617,7 @@ Make @code{AC_OUTPUT} run @command{configure} in each subdirectory + be a literal, i.e., please do not use: + + @example ++@c If you change this example, adjust tests/torture.at:Non-literal AC_CONFIG_SUBDIRS. + if test "x$package_foo_enabled" = xyes; then + my_subdirs="$my_subdirs foo" + fi +diff --git a/lib/autoconf/status.m4 b/lib/autoconf/status.m4 +index 52b7a3d..b9e7026 100644 +--- a/lib/autoconf/status.m4 ++++ b/lib/autoconf/status.m4 +@@ -1102,7 +1102,7 @@ AC_DEFUN([AC_CONFIG_SUBDIRS], + _AC_CONFIG_COMPUTE_DEST(], [))])]dnl + [m4_append([_AC_LIST_SUBDIRS], [$1], [ + ])]dnl +-[AS_LITERAL_WORD_IF([$1], [], ++[AS_LITERAL_IF([$1], [], + [AC_DIAGNOSE([syntax], [$0: you should use literals])])]dnl + [AC_SUBST([subdirs], ["$subdirs m4_normalize([$1])"])]) + +diff --git a/tests/torture.at b/tests/torture.at +index 5f13874..e7f61ed 100644 +--- a/tests/torture.at ++++ b/tests/torture.at +@@ -1567,7 +1567,9 @@ AC_ARG_VAR([INNER2], [an inner2 variable]) + AC_OUTPUT + ]]) + +-AT_CHECK([autoreconf -Wall -v], [0], [ignore], [ignore]) ++AT_CHECK([autoreconf -Wall -v], [0], [ignore], [stderr]) ++# We should not warn about nonliteral argument to AC_CONFIG_SUBDIRS here. ++AT_CHECK([grep 'AC_CONFIG_SUBDIRS:.*literals' stderr], [1]) + AT_CHECK([test -f inner/configure]) + AT_CHECK([test -f inner/innermost/configure]) + AT_CHECK([test -f inner/innermost/config.hin]) +@@ -1693,6 +1695,56 @@ AT_CHECK([test -f inner/myfile], 0) + AT_CLEANUP + + ++## ------------------------------- ## ++## Non-literal AC_CONFIG_SUBDIRS. ## ++## ------------------------------- ## ++ ++AT_SETUP([Non-literal AC_CONFIG_SUBDIRS]) ++AT_KEYWORDS([autoreconf]) ++ ++# We use aclocal (via autoreconf). ++AT_CHECK([aclocal --version || exit 77], [], [ignore], [ignore]) ++ ++AT_DATA([install-sh], []) ++AT_DATA([configure.in], ++[[AC_INIT(GNU Outer, 1.0) ++ ++my_subdirs= ++# Taken from autoconf.texi:Subdirectories. ++if test "x$package_foo_enabled" = xyes; then ++ my_subdirs="$my_subdirs foo" ++fi ++AC_CONFIG_SUBDIRS([$my_subdirs]) ++AC_OUTPUT ++]]) ++ ++AS_MKDIR_P([foo]) ++ ++AT_DATA([foo/configure], ++[[#! /bin/sh ++touch innerfile ++exit 0 ++]]) ++chmod +x foo/configure ++ ++# autoreconf should warn without -Wno-syntax, but should not fail without -Werror. ++AT_CHECK([autoreconf -Werror -v], [1], [ignore], [stderr]) ++AT_CHECK([grep 'AC_CONFIG_SUBDIRS:.*literals' stderr], [0], [ignore]) ++AT_CHECK([autoreconf -v], [0], [ignore], [stderr]) ++AT_CHECK([grep 'AC_CONFIG_SUBDIRS:.*literals' stderr], [0], [ignore]) ++# We cannot assume aclocal won't warn (aclocal-1.9 does not understand -W* ++# options), so check autoconf only. ++AT_CHECK([autoconf --force -Wno-syntax], 0, [ignore], [stderr]) ++AT_CHECK([grep 'AC_CONFIG_SUBDIRS:.*literals' stderr], [1]) ++ ++AT_CHECK([./configure $configure_options], [0], [ignore]) ++AT_CHECK([test ! -f foo/innerfile]) ++# Running the outer configure should trigger the inner. ++AT_CHECK([./configure $configure_options package_foo_enabled=yes], [0], [ignore]) ++AT_CHECK([test -f foo/innerfile]) ++ ++AT_CLEANUP ++ + + ## ----------------- ## + ## Empty directory. ## +-- +1.7.1.1 + |