bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/348] move AC_LIBOBJ invocations to the module descriptions


From: Jim Meyering
Subject: Re: [PATCH 0/348] move AC_LIBOBJ invocations to the module descriptions
Date: Thu, 16 Jun 2011 08:33:57 +0200

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 <address@hidden>
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  <address@hidden>
+
+       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  <address@hidden>

        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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]