Bruno Haible wrote: > I wrote: >> Please review and comment. I'll wait for objections for a week. > > The week is over. I have now pushed the series of patches, after doing an > additional test with --create-megatestdir.
Thanks. > Jim Meyering wrote: >> This new policy looks particularly easy to violate accidentally. >> What do you think about adding a syntax-check rule to help avoid that? > > You can enable the syntax-check rule now. I've pushed the patch below. When I run "make sc_prohibit_AC_LIBOBJ_in_m4", it complains about the following: m4/fprintftime.m4: AC_LIBOBJ([fprintftime]) m4/printf-posix-rpl.m4: AC_LIBOBJ([printf]) m4/stdio-safer.m4: AC_LIBOBJ([tmpfile-safer]) Do not use AC_LIBOBJ in m4/*.m4; see <http://article.gmane.org/gmane.comp.lib.gnulib.bugs/26995> Did you deliberately omit those three from the list of modules that should be exempt from this check? >From 0a9fbea492750b699f5bf721a475ca4d0bfb1332 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyer...@redhat.com> Date: Mon, 13 Jun 2011 18:01:47 +0200 Subject: [PATCH] syntax-check: add a rule to help enforce the no-AC_LIBOBJ-in-m4/ policy * Makefile (sc_prohibit_AC_LIBOBJ_in_m4): New rule. --- ChangeLog | 5 +++++ Makefile | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 0 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9fc8e4b..6c4999b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-06-13 Jim Meyering <meyer...@redhat.com> + + syntax-check: add a rule to help enforce the no-AC_LIBOBJ-in-m4/ policy + * Makefile (sc_prohibit_AC_LIBOBJ_in_m4): New rule. + 2011-05-23 Bruno Haible <br...@clisp.org> yesno: Move AC_LIBOBJ invocations to module description. diff --git a/Makefile b/Makefile index c9bfc16..ca9a516 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,42 @@ sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT: " see <$$url>" 1>&2; exit 1; } || : \ else :; fi +# Files in m4/ that (exceptionally) may use AC_LIBOBJ. +# Do not include their ".m4" suffix. +allow_AC_LIBOBJ = \ + close \ + dprintf \ + dup2 \ + faccessat \ + fchdir \ + fclose \ + fcntl \ + fprintf-posix \ + open \ + printf-posix \ + snprintf \ + sprintf-posix \ + stdio_h \ + vasnprintf \ + vasprintf \ + vdprintf \ + vfprintf-posix \ + vprintf-posix \ + vsnprintf \ + vsprintf-posix + +allow_AC_LIBOBJ_or := $(shell echo $(allow_AC_LIBOBJ) | tr -s ' ' '|') + +sc_prohibit_AC_LIBOBJ_in_m4: + url=http://article.gmane.org/gmane.comp.lib.gnulib.bugs/26995; \ + if test -d .git; then \ + git ls-files m4 \ + | grep -Ev '^m4/($(allow_AC_LIBOBJ_or))\.m4$$' \ + | xargs grep '^ *AC_LIBOBJ(' \ + && { printf '%s\n' 'Do not use AC_LIBOBJ in m4/*.m4;' \ + "see <$$url>"; exit 1; } || :; \ + else :; fi + sc_pragma_columns: if test -d .git; then \ git ls-files|grep '\.in\.h$$' \ -- 1.7.6.rc0.293.g40857