This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU M4 source repository".
http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=3b69f39916d13ea86eabb4855db0b6d0ed715ae8 The branch, branch-1.4 has been updated via 3b69f39916d13ea86eabb4855db0b6d0ed715ae8 (commit) via 47c48ceec8a65b320d2b692ba8fd652c70107f3b (commit) via 88944db5b65c55f870c9825417eeae404b532e00 (commit) via 37ea0cb9079af49745c8fddb6af6f72e6ccde601 (commit) via 5938a720e89dc50a34051a4fb08908d58509ff7f (commit) via 112949b5c57bcdd1c26e636040601b3e6f31b8a0 (commit) via e30a08ab9840091a497026597ae33c4fd2c06122 (commit) from a0496f2a324727997fb35a40e6177d6c82bc6d2a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3b69f39916d13ea86eabb4855db0b6d0ed715ae8 Author: Eric Blake <[email protected]> Date: Tue Sep 4 16:31:23 2012 -0600 maint: merge gitignore files Now that we aren't mirroring .cvsignore files off of the .gitignore files, we don't need to maintain a hierarchy. * build-aux/.gitignore: Delete. * checks/.gitignore: Likewise. * doc/.gitignore: Likewise. * examples/.gitignore: Likewise. * src/.gitignore: Likewise. * .gitignore: Cover rules from deleted files. Signed-off-by: Eric Blake <[email protected]> commit 47c48ceec8a65b320d2b692ba8fd652c70107f3b Author: Eric Blake <[email protected]> Date: Tue Sep 4 16:18:59 2012 -0600 maint: drop CVS cruft These days, no one is complaining about using git as the primary interface. Anyone still using CVS can maintain their own ignore files. * .cvsignore: Remove. * build-aux/.cvsignore: Likewise. * checks/.cvsignore: Likewise. * doc/.cvsignore: Likewise. * examples/.cvsignore: Likewise. * src/.cvsignore: Likewise. Signed-off-by: Eric Blake <[email protected]> commit 88944db5b65c55f870c9825417eeae404b532e00 Author: Eric Blake <[email protected]> Date: Sat Sep 1 12:35:00 2012 -0600 build: add more compiler checking Enable a bit more gcc warning coverage. * configure.ac (nw): Turn on some warnings that no longer trigger a gcc warning, or where we reduce the scope of unwarned code. * src/m4.h (progname): Drop redundant declaration. * src/builtin.c (includes): Use header for program_name. Signed-off-by: Eric Blake <[email protected]> commit 37ea0cb9079af49745c8fddb6af6f72e6ccde601 Author: Eric Blake <[email protected]> Date: Sat Sep 1 11:05:43 2012 -0700 build: pick up latest gnulib fixes It's been quite a while (2393 commits). * gnulib: Update to latest. * m4/gnulib-cache.m4: Regenerate. * missing: Break symlink in order to work around automake version mismatch issue. * .gitignore: Update. * .cvsignore: Likewise. Signed-off-by: Eric Blake <[email protected]> commit 5938a720e89dc50a34051a4fb08908d58509ff7f Author: Eric Blake <[email protected]> Date: Tue Sep 4 16:53:19 2012 -0600 build: mark several pure functions Found by using gcc 4.7.0's -Wsuggest-attribute=pure. * src/m4.h (M4_GNUC_PURE): New macro. * src/m4.c (fault_handler): Mark pure. * src/builtin.c (find_builtin_by_addr, find_builtin_by_name): Likewise. * src/symtab.c (hash): Likewise. Signed-off-by: Eric Blake <[email protected]> commit 112949b5c57bcdd1c26e636040601b3e6f31b8a0 Author: Eric Blake <[email protected]> Date: Sat Sep 1 11:02:31 2012 -0700 build: silence gcc warning Our next gnulib update will automatically turn on -Wformat=2, which overrides our attempt to avoid -Wformat-nonliteral. But for newer gcc, we don't need to blindly ignore the warning; instead, we can target just the audited code while leaving the warning to apply to the rest of the code. And for older gcc, we just don't use the warning (that is, warnings are a moving target, and it is fine if we only target newer gcc for full warnings). * configure.ac (M4_cv_gcc_pragma_push_works): New test. (-Wformat-nonliteral): Disable for older gcc. * src/format.c (expand_format): Mark our only uses of nonliteral format as being safe. Signed-off-by: Eric Blake <[email protected]> commit e30a08ab9840091a497026597ae33c4fd2c06122 Author: Eric Blake <[email protected]> Date: Sat Sep 1 10:46:38 2012 -0700 doc: fix misuse of @xref Texinfo states that @xref must start a sentence. * doc/m4.texinfo (Inhibiting Invocation): Reword. Signed-off-by: Eric Blake <[email protected]> ----------------------------------------------------------------------- Summary of changes: .cvsignore | 31 ------------------------------- .gitignore | 28 +++++++++++++++++++++++++++- ChangeLog | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ build-aux/.cvsignore | 13 ------------- build-aux/.gitignore | 13 ------------- checks/.cvsignore | 3 --- checks/.gitignore | 3 --- configure.ac | 31 ++++++++++++++++++++++++------- doc/.cvsignore | 15 --------------- doc/.gitignore | 15 --------------- doc/m4.texinfo | 2 +- examples/.cvsignore | 2 -- examples/.gitignore | 2 -- gnulib | 2 +- m4/gnulib-cache.m4 | 25 +++++++++++++++++++------ src/.cvsignore | 6 ------ src/.gitignore | 6 ------ src/builtin.c | 5 +++-- src/format.c | 9 +++++++++ src/m4.c | 2 +- src/m4.h | 2 +- src/symtab.c | 2 +- 22 files changed, 137 insertions(+), 130 deletions(-) delete mode 100644 .cvsignore delete mode 100644 build-aux/.cvsignore delete mode 100644 build-aux/.gitignore delete mode 100644 checks/.cvsignore delete mode 100644 checks/.gitignore delete mode 100644 doc/.cvsignore delete mode 100644 doc/.gitignore delete mode 100644 examples/.cvsignore delete mode 100644 examples/.gitignore delete mode 100644 src/.cvsignore delete mode 100644 src/.gitignore diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 1e719de..0000000 --- a/.cvsignore +++ /dev/null @@ -1,31 +0,0 @@ -*.tar.bz2 -*.tar.gz -.tarball-version -.version -aclocal.m4 -autom4te.cache -config.cache -config.guess -config.h -config.log -config.status -config.sub -config-h.in -configure -configure.lineno -depcomp -gendocs.sh -GNUmakefile -gnupload -install-sh -lib -link-warning.h -m4-* -Makefile.in -Makefile -missing -stamp-h -stamp-h1 -stamp-h.in -tests -maint.mk diff --git a/.gitignore b/.gitignore index 0aac84c..a336b02 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,26 @@ *~ *.bak +*.exe +*.o *.orig *.rej *.tar.bz2 *.tar.gz +.deps .tarball-version .version aclocal.m4 autom4te.cache -/build-aux/missing +/build-aux/* +!/build-aux/compile +!/build-aux/config.guess +!/build-aux/config.sub +!/build-aux/depcomp +!/build-aux/install-sh +!/build-aux/mdate-sh +!/build-aux/texinfo.tex +/checks/[0-9][0-9][0-9].* +/checks/stamp-checks config.cache /config.guess config.h @@ -20,6 +32,19 @@ configure configure.lineno CVS /depcomp +/doc/fdl-1.3.texi +/doc/gendocs_template +/doc/gpl-3.0.texi +/doc/m4.1 +/doc/m4.?? +/doc/m4.??? +/doc/m4.html +/doc/m4.info* +/doc/manual +/doc/mdate-sh +/doc/stamp-vti +/doc/texinfo.tex +/doc/version.texi gendocs.sh GNUmakefile gnupload @@ -32,6 +57,7 @@ m4-* Makefile.in Makefile /missing +/src/m4 stamp-h stamp-h1 stamp-h.in diff --git a/ChangeLog b/ChangeLog index 631798d..c726d5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,53 @@ +2012-09-04 Eric Blake <[email protected]> + + maint: merge gitignore files + * build-aux/.gitignore: Delete. + * checks/.gitignore: Likewise. + * doc/.gitignore: Likewise. + * examples/.gitignore: Likewise. + * src/.gitignore: Likewise. + * .gitignore: Cover rules from deleted files. + + maint: drop CVS cruft + * .cvsignore: Remove. + * build-aux/.cvsignore: Likewise. + * checks/.cvsignore: Likewise. + * doc/.cvsignore: Likewise. + * examples/.cvsignore: Likewise. + * src/.cvsignore: Likewise. + + build: add more compiler checking + * configure.ac (nw): Turn on some warnings that no longer trigger + a gcc warning, or where we reduce the scope of unwarned code. + * src/m4.h (progname): Drop redundant declaration. + * src/builtin.c (includes): Use header for program_name. + + build: pick up latest gnulib fixes + * gnulib: Update to latest. + * m4/gnulib-cache.m4: Regenerate. + * missing: Break symlink in order to work around automake version + mismatch issue. + * .gitignore: Update. + * .cvsignore: Likewise. + + build: mark several pure functions + * src/m4.h (M4_GNUC_PURE): New macro. + * src/m4.c (fault_handler): Mark pure. + * src/builtin.c (find_builtin_by_addr, find_builtin_by_name): + Likewise. + * src/symtab.c (hash): Likewise. + +2012-09-01 Eric Blake <[email protected]> + + build: silence gcc warning + * configure.ac (M4_cv_gcc_pragma_push_works): New test. + (-Wformat-nonliteral): Disable for older gcc. + * src/format.c (expand_format): Mark our only uses of nonliteral + format as being safe. + + doc: fix misuse of @xref + * doc/m4.texinfo (Inhibiting Invocation): Reword. + 2012-07-21 Eric Blake <[email protected]> bootstrap: avoid undefined variables diff --git a/build-aux/.cvsignore b/build-aux/.cvsignore deleted file mode 100644 index e44a555..0000000 --- a/build-aux/.cvsignore +++ /dev/null @@ -1,13 +0,0 @@ -announce-gen -arg-nonnull.h -c++defs.h -config.rpath -gendocs.sh -git-version-gen -gnu-web-doc-update -gnupload -link-warning.h -update-copyright -useless-if-before-free -vc-list-files -warn-on-use.h diff --git a/build-aux/.gitignore b/build-aux/.gitignore deleted file mode 100644 index 7144d03..0000000 --- a/build-aux/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -/announce-gen -/arg-nonnull.h -/c++defs.h -/config.rpath -/gendocs.sh -/git-version-gen -/gnu-web-doc-update -/gnupload -/link-warning.h -/update-copyright -/useless-if-before-free -/vc-list-files -/warn-on-use.h diff --git a/checks/.cvsignore b/checks/.cvsignore deleted file mode 100644 index cfdeddf..0000000 --- a/checks/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -[0-9][0-9][0-9].* -Makefile -stamp-checks diff --git a/checks/.gitignore b/checks/.gitignore deleted file mode 100644 index cfdeddf..0000000 --- a/checks/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -[0-9][0-9][0-9].* -Makefile -stamp-checks diff --git a/configure.ac b/configure.ac index 8eecef3..6886273 100644 --- a/configure.ac +++ b/configure.ac @@ -57,19 +57,30 @@ if test "$gl_gcc_warnings" = yes; then gl_WARN_ADD([-Werror], [WERROR_CFLAGS]) AC_SUBST([WERROR_CFLAGS]) + # We use '#pragma GCC diagnostic push' to silence some + # warnings, but older gcc doesn't support this. + AC_CACHE_CHECK([whether pragma GCC diagnostic push works], + [M4_cv_gcc_pragma_push_works], [ + save_CFLAGS=$CFLAGS + CFLAGS='-Wunknown-pragmas -Werror' + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #pragma GCC diagnostic push + #pragma GCC diagnostic pop + ]])], + [M4_cv_gcc_pragma_push_works=yes], + [M4_cv_gcc_pragma_push_works=no]) + CFLAGS=$save_CFLAGS]) + nw= - nw="$nw -Waggregate-return" # C90 is anachronistic + nw="$nw -Waggregate-return" # K&R is anachronistic + nw="$nw -Wtraditional-conversion" # K&R is anachronistic + nw="$nw -Wundef" # K&R is anachronistic + nw="$nw -Wtraditional" # K&R is anachronistic nw="$nw -Wlong-long" # C90 is anachronistic - nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib - nw="$nw -Wtraditional" # Warns on #elif which we use often nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings nw="$nw -Wpadded" # Our structs are not packed - nw="$nw -Wredundant-decls" # Gnulib has multiple decls - nw="$nw -Wformat-nonliteral" # Needed in builtin.c - nw="$nw -Wunreachable-code" # Needed in output.c nw="$nw -Wconversion" # Too many warnings for now nw="$nw -Wsign-conversion" # Too many warnings for now - nw="$nw -Wtraditional-conversion" # Too many warnings for now nw="$nw -Wcast-qual" # Too many warnings for now nw="$nw -Wswitch-enum" # Too many warnings for now # This, $nw, is the list of warnings we disable. @@ -80,6 +91,12 @@ if test "$gl_gcc_warnings" = yes; then gl_WARN_ADD([$w]) done + # Gnulib turns on -Wformat=2, which implies -Wformat-nonliteral, but + # we temporarily override it in format.c if possible. + if test $M4_cv_gcc_pragma_push_works = no; then + gl_WARN_ADD([-Wno-format-nonliteral]) + fi + gl_WARN_ADD([-fdiagnostics-show-option]) gl_WARN_ADD([-funit-at-a-time]) diff --git a/doc/.cvsignore b/doc/.cvsignore deleted file mode 100644 index 81f5a1e..0000000 --- a/doc/.cvsignore +++ /dev/null @@ -1,15 +0,0 @@ -fdl-1.3.texi -gendocs_template -gpl-3.0.texi -m4.1 -m4.?? -m4.??? -m4.html -m4.info* -Makefile.in -Makefile -manual -mdate-sh -stamp-vti -texinfo.tex -version.texi diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 81f5a1e..0000000 --- a/doc/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -fdl-1.3.texi -gendocs_template -gpl-3.0.texi -m4.1 -m4.?? -m4.??? -m4.html -m4.info* -Makefile.in -Makefile -manual -mdate-sh -stamp-vti -texinfo.tex -version.texi diff --git a/doc/m4.texinfo b/doc/m4.texinfo index a1ead11..f29d541 100644 --- a/doc/m4.texinfo +++ b/doc/m4.texinfo @@ -1428,7 +1428,7 @@ m4_eval(`1') @end example Another alternative is to redefine problematic macros to a name less -likely to cause conflicts, @xref{Definitions}. +likely to cause conflicts, using @ref{Definitions}. If your version of GNU @code{m4} has the @code{changeword} feature compiled in, it offers far more flexibility in specifying the diff --git a/examples/.cvsignore b/examples/.cvsignore deleted file mode 100644 index 3dda729..0000000 --- a/examples/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/examples/.gitignore b/examples/.gitignore deleted file mode 100644 index 3dda729..0000000 --- a/examples/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in -Makefile diff --git a/gnulib b/gnulib index bcbcf0c..3a9002d 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit bcbcf0c59cec0e91db318eccdc564852bafa3c67 +Subproject commit 3a9002d3cc63da7110f133b1040d2d2b0aad8305 diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4 index 6da839f..ff9c510 100644 --- a/m4/gnulib-cache.m4 +++ b/m4/gnulib-cache.m4 @@ -1,9 +1,21 @@ -# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# Copyright (C) 2002-2012 Free Software Foundation, Inc. # -# This file is free software, distributed under the terms of the GNU -# General Public License. As a special exception to the GNU General -# Public License, this file may be distributed as part of a program -# that contains a configuration script generated by Autoconf, under +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this file. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception to the GNU General Public License, +# this file may be distributed as part of a program that +# contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. @@ -15,7 +27,7 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --local-dir=local --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --with-c++-tests --avoid=lock-tests --avoid=tls-tests --makefile-name=gnulib.mk --no-libtool --macro-prefix=M4 announce-gen assert autobuild avltree-oset binary-io c-stack clean-temp cloexec close-stream closein config-h dirname error execute fclose fdl-1.3 fflush filenamecat fopen fopen-safer fseeko gendocs getopt-gnu git-version-gen gnu-web-doc-update gnumakefile gnupload gpl-3.0 ignore-value intprops maintainer-makefile manywarnings memchr2 mkstemp obstack progname regex rename sigaction sigpipe spawn-pipe stdbool stdint stdlib-safer strsignal strstr strtod unlocked-io update-copyright vc-list-files verror version-etc version-etc-fsf wait-process xalloc xoset xprintf xvasprintf-posix +# gnulib-tool --import --dir=. --local-dir=local --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --with-c++-tests --avoid=lock-tests --avoid=tls-tests --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=M4 announce-gen assert autobuild avltree-oset binary-io c-stack clean-temp cloexec close-stream closein config-h dirname error execute fclose fdl-1.3 fflush filenamecat fopen fopen-safer fseeko gendocs getopt-gnu git-version-gen gnu-web-doc-update gnumakefile gnupload gpl-3.0 ignore-value intprops maintainer-makefile manywarnings memchr2 mkstemp obstack progname regex rename sigaction sigpipe spawn-pipe stdbool stdint stdlib-safer strsignal strstr strtod unlocked-io update-copyright vc-list-files verror version-etc version-etc-fsf wait-process xalloc xoset xprintf xvasprintf-posix # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([local]) @@ -91,3 +103,4 @@ gl_LIB([libm4]) gl_MAKEFILE_NAME([gnulib.mk]) gl_MACRO_PREFIX([M4]) gl_PO_DOMAIN([]) +gl_WITNESS_C_MACRO([]) diff --git a/src/.cvsignore b/src/.cvsignore deleted file mode 100644 index 9b593c0..0000000 --- a/src/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -*.o -Makefile.in -Makefile -m4 -m4.exe diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index 9b593c0..0000000 --- a/src/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -*.o -Makefile.in -Makefile -m4 -m4.exe diff --git a/src/builtin.c b/src/builtin.c index d8c9bd5..b7e4e11 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -26,6 +26,7 @@ #include "execute.h" #include "memchr2.h" +#include "progname.h" #include "regex.h" #include "spawn-pipe.h" #include "wait-process.h" @@ -173,7 +174,7 @@ static predefined const predefined_tab[] = | Find the builtin, which lives on ADDR. | `----------------------------------------*/ -const builtin * +const builtin * M4_GNUC_PURE find_builtin_by_addr (builtin_func *func) { const builtin *bp; @@ -191,7 +192,7 @@ find_builtin_by_addr (builtin_func *func) | placeholder builtin. | `----------------------------------------------------------*/ -const builtin * +const builtin * M4_GNUC_PURE find_builtin_by_name (const char *name) { const builtin *bp; diff --git a/src/format.c b/src/format.c index 4b7f022..940021a 100644 --- a/src/format.c +++ b/src/format.c @@ -348,6 +348,12 @@ expand_format (struct obstack *obs, int argc, token_data **argv) *p++ = c; *p = '\0'; + /* Our constructed format string in fstart is safe. */ +#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wformat-nonliteral" +#endif + switch (datatype) { case CHAR: @@ -373,6 +379,9 @@ expand_format (struct obstack *obs, int argc, token_data **argv) default: abort(); } +#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# pragma GCC diagnostic pop +#endif /* NULL was returned on failure, such as invalid format string. For now, just silently ignore that bad specifier. */ diff --git a/src/m4.c b/src/m4.c index d4c2681..3666a65 100644 --- a/src/m4.c +++ b/src/m4.c @@ -140,7 +140,7 @@ static const char * volatile signal_message[NSIG]; must be aysnc-signal safe, since it is executed as a signal handler. If SIGNO is zero, this represents a stack overflow; in that case, we return to allow c_stack_action to handle things. */ -static void +static void M4_GNUC_PURE fault_handler (int signo) { if (signo) diff --git a/src/m4.h b/src/m4.h index a8d96ea..8ddb9da 100644 --- a/src/m4.h +++ b/src/m4.h @@ -118,6 +118,7 @@ typedef unsigned int bool_bitfield; #define M4_GNUC_PRINTF(fmt, arg) \ M4_GNUC_ATTRIBUTE ((__format__ (__printf__, fmt, arg))) #define M4_GNUC_NORETURN M4_GNUC_ATTRIBUTE ((__noreturn__)) +#define M4_GNUC_PURE M4_GNUC_ATTRIBUTE ((__pure__)) /* File: m4.c --- global definitions. */ @@ -137,7 +138,6 @@ extern const char *user_word_regexp; /* -W */ /* Error handling. */ extern int retcode; -extern const char *program_name; void m4_error (int, int, const char *, ...) M4_GNUC_PRINTF(3, 4); void m4_error_at_line (int, int, const char *, int, diff --git a/src/symtab.c b/src/symtab.c index eeec2cf..ba2afe3 100644 --- a/src/symtab.c +++ b/src/symtab.c @@ -120,7 +120,7 @@ symtab_init (void) | Return a hashvalue for a string, from GNU-emacs. | `--------------------------------------------------*/ -static size_t +static size_t M4_GNUC_PURE hash (const char *s) { register size_t val = 0; hooks/post-receive -- GNU M4 source repository
