From fa1c8387471e6f9dfbcb4795f0c6a32c4a5a75b7 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 11 Jul 2010 08:00:37 +0000 Subject: [PATCH] - added subdirs,sizeof patches (two regression fixes from git, adjusted for 2.66) - dropped outdated gettext patch - release 2 Changed files: autoconf-gettext.patch -> 1.2 autoconf-sizeof.patch -> 1.1 autoconf-subdirs.patch -> 1.1 autoconf.spec -> 1.150 --- autoconf-gettext.patch | 10 --- autoconf-sizeof.patch | 141 +++++++++++++++++++++++++++++++++++++++ autoconf-subdirs.patch | 146 +++++++++++++++++++++++++++++++++++++++++ autoconf.spec | 12 ++-- 4 files changed, 293 insertions(+), 16 deletions(-) delete mode 100644 autoconf-gettext.patch create mode 100644 autoconf-sizeof.patch create mode 100644 autoconf-subdirs.patch diff --git a/autoconf-gettext.patch b/autoconf-gettext.patch deleted file mode 100644 index ef667d9..0000000 --- a/autoconf-gettext.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- autoconf-2.61/lib/autom4te.in.orig 2006-10-03 08:27:17.000000000 +0200 -+++ autoconf-2.61/lib/autom4te.in 2006-11-22 23:31:59.210553250 +0100 -@@ -59,7 +59,6 @@ - args: --preselect AM_CONDITIONAL - args: --preselect AM_ENABLE_MULTILIB - args: --preselect AM_GNU_GETTEXT --args: --preselect AM_GNU_GETTEXT_INTL_SUBDIR - args: --preselect AM_INIT_AUTOMAKE - args: --preselect AM_MAINTAINER_MODE - args: --preselect AM_PROG_CC_C_O diff --git a/autoconf-sizeof.patch b/autoconf-sizeof.patch new file mode 100644 index 0000000..bd0e529 --- /dev/null +++ b/autoconf-sizeof.patch @@ -0,0 +1,141 @@ +From dfda4402552ac26ce91399e2a812aee4772a512e Mon Sep 17 00:00:00 2001 +From: Eric Blake +Date: Tue, 06 Jul 2010 20:00:44 +0000 +Subject: Fix regression of AC_CHECK_SIZEOF on pointer types. + +* lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Translate `*' to `p' +when checking literal-ness of the type, for pointer types. +* lib/m4sugar/m4sh.m4 (_AS_TR_SH): Also consider `*' as literal. +(_AS_TR_CPP): Likewise. +* tests/semantics.at (AC_CHECK_ALIGNOF struct): When checking +for numeric answer, be sure to not allow variable references. +(AC_CHECK_SIZEOF struct): Likewise. Also, test the +`AC_CHECK_SIZEOF([int *])' example from the manual. +* doc/autoconf.texi (Generic Compiler Characteristics): Add +example marker. +* NEWS: Update. +Reports by Nishio Futoshi and Roberto Bagnara. + +Signed-off-by: Ralf Wildenhues +--- +diff --git a/ChangeLog b/ChangeLog +index e9e465b..33eca5a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,20 @@ ++2010-07-10 Eric Blake ++ and Ralf Wildenhues ++ ++ Fix regression of AC_CHECK_SIZEOF on pointer types. ++ * lib/autoconf/types.m4 (AC_CHECK_SIZEOF): Translate `*' to `p' ++ when checking literal-ness of the type, for pointer types. ++ * lib/m4sugar/m4sh.m4 (_AS_TR_SH): Also consider `*' as literal. ++ (_AS_TR_CPP): Likewise. ++ * tests/semantics.at (AC_CHECK_ALIGNOF struct): When checking ++ for numeric answer, be sure to not allow variable references. ++ (AC_CHECK_SIZEOF struct): Likewise. Also, test the ++ `AC_CHECK_SIZEOF([int *])' example from the manual. ++ * doc/autoconf.texi (Generic Compiler Characteristics): Add ++ example marker. ++ * NEWS: Update. ++ Reports by Nishio Futoshi and Roberto Bagnara. ++ + 2010-07-08 Eric Blake + and Ralf Wildenhues + +diff --git a/NEWS b/NEWS +index 5053557..6256d40 100644 +--- a/NEWS ++++ b/NEWS +@@ -5,6 +5,9 @@ GNU Autoconf NEWS - User visible changes. + ** AC_CONFIG_SUBDIRS with more than one subdirectory at a time works again. + Regression introduced in 2.66. + ++** AC_CHECK_SIZEOF of a pointer type works again. Regression introduced in ++ 2.66. ++ + * Major changes in Autoconf 2.66 (2010-07-02) [stable] + Released by Eric Blake, based on git versions 2.65.*. + +diff --git a/doc/autoconf.texi b/doc/autoconf.texi +index 39c2ba6..76b01c9 100644 +--- a/doc/autoconf.texi ++++ b/doc/autoconf.texi +@@ -6957,6 +6957,7 @@ argument was used when cross-compiling. + For example, the call + + @example ++@c If you change this example, adjust tests/semantics.at:AC_F77_DUMMY_MAIN usage. + AC_CHECK_SIZEOF([int *]) + @end example + +diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4 +index ee07148..9f482da 100644 +--- a/lib/autoconf/types.m4 ++++ b/lib/autoconf/types.m4 +@@ -763,7 +763,7 @@ Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.]) + # AC_CHECK_SIZEOF(TYPE, [IGNORED], [INCLUDES = DEFAULT-INCLUDES]) + # --------------------------------------------------------------- + AC_DEFUN([AC_CHECK_SIZEOF], +-[AS_LITERAL_IF([$1], [], ++[AS_LITERAL_IF(m4_translit([[$1]], [*], [p]), [], + [m4_fatal([$0: requires literal arguments])])]dnl + [# The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 +index e1d03d9..6fbc9e1 100644 +--- a/lib/m4sugar/m4sh.m4 ++++ b/lib/m4sugar/m4sh.m4 +@@ -1779,7 +1779,7 @@ m4_defun_init([AS_TR_SH], + [_$0(m4_expand([$1]))]) + + m4_define([_AS_TR_SH], +-[_AS_LITERAL_IF([$1], [ ][ ++[_AS_LITERAL_IF([$1], [*][ ][ + ])([], [$0_INDIR], [$0_LITERAL])([$1])]) + + m4_define([_AS_TR_SH_LITERAL], +@@ -1812,7 +1812,7 @@ m4_defun_init([AS_TR_CPP], + [_$0(m4_expand([$1]))]) + + m4_define([_AS_TR_CPP], +-[_AS_LITERAL_IF([$1], [ ][ ++[_AS_LITERAL_IF([$1], [*][ ][ + ])([], [$0_INDIR], [$0_LITERAL])([$1])]) + + m4_define([_AS_TR_CPP_LITERAL], +diff --git a/tests/semantics.at b/tests/semantics.at +index b703fd4..48136cd 100644 +--- a/tests/semantics.at ++++ b/tests/semantics.at +@@ -350,7 +350,7 @@ AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF struct], + [[AC_CHECK_ALIGNOF([struct { char c; }]) + AC_CHECK_ALIGNOF([struct nosuchstruct]) + ]], +-[AT_CHECK([[grep "#define ALIGNOF_STRUCT___CHAR_C___ [^0]" config.h]], ++[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) +@@ -379,13 +379,17 @@ AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF struct], + AC_CHECK_SIZEOF([struct x], [], [struct x { char c; int x; };]) + AC_CHECK_SIZEOF([const struct x], [], [struct x { const char *p; int x; };]) + AC_CHECK_SIZEOF([struct nosuchstruct]) ++# Taken from autoconf.texi:Generic Compiler Characteristics. ++AC_CHECK_SIZEOF([int *]) + ]], +-[AT_CHECK([[grep "#define SIZEOF_STRUCT_X [^0]" config.h]], ++[AT_CHECK([[grep "#define SIZEOF_STRUCT_X [1-9]" config.h]], + 0, ignore) +-AT_CHECK([[grep "#define SIZEOF_CONST_STRUCT_X [^0]" config.h]], ++AT_CHECK([[grep "#define SIZEOF_CONST_STRUCT_X [1-9]" config.h]], + 0, ignore) + AT_CHECK([[grep "#define SIZEOF_STRUCT_NOSUCHSTRUCT 0" config.h]], + 0, ignore) ++AT_CHECK([[grep "#define SIZEOF_INT_P [1-9]" config.h]], ++ 0, ignore) + ]) + + +-- +cgit v0.8.2.1 diff --git a/autoconf-subdirs.patch b/autoconf-subdirs.patch new file mode 100644 index 0000000..c310a21 --- /dev/null +++ b/autoconf-subdirs.patch @@ -0,0 +1,146 @@ +From 49a6f8a8b52060d8fe0f97aa6f1d5c47b40b65c1 Mon Sep 17 00:00:00 2001 +From: Ralf Wildenhues +Date: Tue, 06 Jul 2010 20:31:33 +0000 +Subject: 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 +--- +diff --git a/ChangeLog b/ChangeLog +index ab4d7b2..e9e465b 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,15 @@ ++2010-07-08 Eric Blake ++ and Ralf Wildenhues ++ ++ 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. ++ + 2010-07-02 Eric Blake + + Pick up some maint.mk improvements from gnulib. +diff --git a/NEWS b/NEWS +index 7282697..5053557 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,4 +1,7 @@ + GNU Autoconf NEWS - User visible changes. + ++** AC_CONFIG_SUBDIRS with more than one subdirectory at a time works again. ++ Regression introduced in 2.66. ++ + * Major changes in Autoconf 2.66 (2010-07-02) [stable] + Released by Eric Blake, based on git versions 2.65.*. +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. ## +-- +cgit v0.8.2.1 diff --git a/autoconf.spec b/autoconf.spec index d916af3..7b0c707 100644 --- a/autoconf.spec +++ b/autoconf.spec @@ -2,7 +2,7 @@ # Conditional build: %bcond_without emacs # without emacs autoconf-mode %bcond_without xemacs # without XEmacs autoconf-mode -%bcond_without tests +%bcond_without tests # do not perform "make check" # %undefine with_emacs %undefine with_xemacs @@ -20,8 +20,7 @@ Summary(ru.UTF-8): GNU autoconf - автоконфигуратор исходн Summary(uk.UTF-8): GNU autoconf - автоконфігуратор вихідних текстів Name: autoconf Version: 2.66 -# wait until http://lists.gnu.org/archive/html/autoconf/2010-07/msg00004.html is fixed in upstream git tree -Release: 1.1 +Release: 2 License: GPL v2+/v3+ Group: Development/Building # stable releases: @@ -33,8 +32,8 @@ Patch0: %{name}-mawk.patch Patch1: %{name}-info.patch Patch2: %{name}-AC_EGREP.patch Patch3: %{name}-cxxcpp-warnonly.patch -# it's unknown why this patch is here but it causes testsuite to fail -Patch4: %{name}-gettext.patch +Patch4: %{name}-subdirs.patch +Patch5: %{name}-sizeof.patch URL: http://www.gnu.org/software/autoconf/ %{?with_emacs:BuildRequires: emacs} BuildRequires: xz @@ -202,7 +201,8 @@ Tryb edycji autoconf dla emacsa. %patch1 -p1 %patch2 -p1 %patch3 -p1 -#%patch4 -p1 +%patch4 -p1 +%patch5 -p1 %build %configure \ -- 2.43.0