Bruno Haible wrote: > Jim Meyering wrote: >> While the dependency of AC_EGREP_CPP on AC_PROG_EGREP >> is unavoidable, there are others that are indeed unnecessary, >> since they serve only to work around a bug in autoconf-2.57, >> which is no longer relevant, since we (gnulib-tool) now >> requires 2.59 or newer. >> ... >> Now we require at least 2.59, and the work-around induced an >> unwarranted circular dependency in grep's build process. >> The following .m4 files pulled in the AC_PROG_EGREP requirement, >> yet $EGREP was never used, and configuring grep on a system without >> an existing grep program would thus fail unnecessarily. >> * m4/alloca.m4 (gl_FUNC_ALLOCA): Remove work-around. >> * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. >> * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise. >> * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise. >> * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. >> Prompted by the report, http://savannah.gnu.org/bugs/?31646 >> by Florin Iucha. > > There are three separate issues here: > > - The AC_REQUIRE([AC_PROG_EGREP]) in gnulib macros. > These should not be needed any more since autoconf 2.54, because the > definition of AC_EGREP_CPP includes this requirement already. It is > possible that the bug that was observed back then (in 2002 or earlier) > was due to wrong handling of AC_REQUIRE, but that was also fixed in > autoconf by Eric about two years ago. > > - The AC_REQUIRE([AC_PROG_CPP]) in gnulib macros. > This _probably_ can removed as well, because AC_EGREP_CPP does > AC_LANG_PREPROC_REQUIRE() which should require AC_LANG_PREPROC(C), > and the latter is defined as > AC_DEFUN([AC_LANG_PREPROC(C)], > [AC_REQUIRE([AC_PROG_CPP])]) > > - The issue of the bug reporter is unrelated. It is simply a consequence > of how AC_PROG_EGREP is implemented. But any use of AC_EGREP_CPP needs > AC_PROG_EGREP anyway. > > So, your patch is OK, but the ChangeLog entry and commit message should > IMO be rewritten to not mention Florin Iucha's bug report.
Thanks for reviewing it. I adjusted the log and ChangeLog and pushed this. >From 1e6979e8bb29cbb42d09f09c79fbcaa9f57a44a3 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyer...@redhat.com> Date: Sat, 13 Nov 2010 22:25:32 +0100 Subject: [PATCH] remove autoconf-2.57 work-around requiring AC_PROG_EGREP and AC_PROG_CPP Now we require at least autoconf-2.59, which means that the work-around is no longer needed. * m4/alloca.m4 (gl_FUNC_ALLOCA): Remove work-around. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. --- ChangeLog | 11 +++++++++++ m4/alloca.m4 | 6 +----- m4/dirfd.m4 | 6 +----- m4/mmap-anon.m4 | 6 +----- m4/strtoimax.m4 | 6 +----- m4/strtoumax.m4 | 6 +----- 6 files changed, 16 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3bc7074..5548bef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-11-13 Jim Meyering <meyer...@redhat.com> + + remove autoconf-2.57 work-around requiring AC_PROG_EGREP and AC_PROG_CPP + Now we require at least autoconf-2.59, which means the work-around + is no longer needed. + * m4/alloca.m4 (gl_FUNC_ALLOCA): Remove work-around. + * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. + * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise. + * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise. + * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. + 2010-11-13 Bruno Haible <br...@clisp.org> rename, renameat: Avoid test failures at NFS mounted locations. diff --git a/m4/alloca.m4 b/m4/alloca.m4 index f3ee343..80d67aa 100644 --- a/m4/alloca.m4 +++ b/m4/alloca.m4 @@ -1,4 +1,4 @@ -# alloca.m4 serial 9 +# alloca.m4 serial 10 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation @@ -7,10 +7,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ALLOCA], [ - dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. - AC_REQUIRE([AC_PROG_CPP]) - AC_REQUIRE([AC_PROG_EGREP]) - AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA diff --git a/m4/dirfd.m4 b/m4/dirfd.m4 index 48b7bae..bfddeb9 100644 --- a/m4/dirfd.m4 +++ b/m4/dirfd.m4 @@ -1,4 +1,4 @@ -# serial 18 -*- Autoconf -*- +# serial 19 -*- Autoconf -*- dnl Find out how to get the file descriptor associated with an open DIR*. @@ -17,10 +17,6 @@ AC_DEFUN([gl_FUNC_DIRFD], dnl Persuade glibc <dirent.h> to declare dirfd(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. - AC_REQUIRE([AC_PROG_CPP]) - AC_REQUIRE([AC_PROG_EGREP]) - AC_CHECK_FUNCS([dirfd]) AC_CHECK_DECLS([dirfd], , , [#include <sys/types.h> diff --git a/m4/mmap-anon.m4 b/m4/mmap-anon.m4 index a6b7b9a..e20fc3c 100644 --- a/m4/mmap-anon.m4 +++ b/m4/mmap-anon.m4 @@ -1,4 +1,4 @@ -# mmap-anon.m4 serial 8 +# mmap-anon.m4 serial 9 dnl Copyright (C) 2005, 2007, 2009-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -15,10 +15,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_MMAP_ANON], [ - dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. - AC_REQUIRE([AC_PROG_CPP]) - AC_REQUIRE([AC_PROG_EGREP]) - dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4 index 8d8298b..5027e26 100644 --- a/m4/strtoimax.m4 +++ b/m4/strtoimax.m4 @@ -1,4 +1,4 @@ -# strtoimax.m4 serial 7 +# strtoimax.m4 serial 8 dnl Copyright (C) 2002, 2003, 2004, 2006, 2009, 2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation @@ -7,10 +7,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRTOIMAX], [ - dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. - AC_REQUIRE([AC_PROG_CPP]) - AC_REQUIRE([AC_PROG_EGREP]) - AC_CACHE_CHECK([whether <inttypes.h> defines strtoimax as a macro], gl_cv_func_strtoimax_macro, [AC_EGREP_CPP([inttypes_h_defines_strtoimax], [#include <inttypes.h> diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4 index 684634f..5450037 100644 --- a/m4/strtoumax.m4 +++ b/m4/strtoumax.m4 @@ -1,4 +1,4 @@ -# strtoumax.m4 serial 7 +# strtoumax.m4 serial 8 dnl Copyright (C) 2002, 2003, 2004, 2006, 2009, 2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation @@ -7,10 +7,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRTOUMAX], [ - dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. - AC_REQUIRE([AC_PROG_CPP]) - AC_REQUIRE([AC_PROG_EGREP]) - AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro], gl_cv_func_strtoumax_macro, [AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h> -- 1.7.3.2.4.g60aa9