Savannah Git Hosting - m4.git/log
Eric Blake [2016年12月31日 20:56:15 +0000 (14:56 -0600)]
maint: improve generation of ChangeLog from git commits
Follow the practice set in numerous other GNU projects, where
the ChangeLog (since 2015) is generated from git commit messages.
This avoids duplication or subtle differences between the two,
as well as making it easier to merge patches across branches
(as good as Bruno Haible's 'git-merge-changelog' helper program
is, it still doesn't handle cross-branch cherry-picks very well).
* Makefile.am (EXTRA_DIST): Rely on gnulib to ship gitlog-to-changelog.
($(changelog)): Update rule to match branch-1.4 style.
* .gitattributes: Drop stale mention of Changelog.
* HACKING: Reword to match new procedure, and simplify by
referring to an external description of ChangeLog style.
Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit
5456676ea90dfedd9b54c843f15b006d02150d06)
[commit
6bdb0a4b75 already started the conversion, but this updates
the approach to be more like other GNU projects, and branch-1.4]
Eric Blake [Mon, 9 Jan 2017 18:07:51 +0000 (12:07 -0600)]
maint: improve 'make distcheck'
Commit
b29e2867 added gnulib's src/assure.h during bootstrap to fix
development builds, but forgot to check that tarballs also build.
With this patch, things get further, although I'm still facing a
failure because the VPATH 'make check' portion of distcheck is
failing to load modules, where an in-tree build succeeded.
* Makefile.am (src_m4_SOURCES): Add assure.h.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2016年12月31日 21:53:53 +0000 (15:53 -0600)]
Eric Blake [2016年12月31日 13:35:11 +0000 (07:35 -0600)]
maint: make silent builds the default
The user still has full control over verbosity levels, both setting
their per-project defaults at configure time (or even in a config.site
file), as well as a per-run override. But these days, most projects
are defaulting to silent rules without user intervention.
* configure.ac (AM_SILENT_RULES): Add, to match what most projects
are doing these days.
Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit
b4a08ecfd34e703bd846f1e85b4e2a94a34b16d9)
[For the cherry-pick, all we have to do is normalize the spelling
of the line - now that we require new-enough automake, it does not
have to be conditional]
maint: automake 1.11.5 and earlier generate insecure dist rules.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.11.6 or newer.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
(cherry picked from commit
a82e6b74a462b16effb7304b850f72faf727aec5)
Eric Blake [2016年12月31日 13:26:44 +0000 (07:26 -0600)]
maint: release no longer creates a diff file
Ever since commit
f1cf390 (1.4.14 release), we no longer create
diff files as part of the release process. These days, it is
assumed that it is easier to download a fresh tarball rather
than to try and use a diff file to patch an older tarball.
Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit
c8a4b7c32db3a6d8d5dc7a9997df2c80ac95b030)
Eric Blake [2016年12月31日 03:45:16 +0000 (21:45 -0600)]
doc: drop obsolete @setcontentsaftertitlepage
texinfo 6.1 complains (during 'make dvi'):
/home/eblake/m4-1.4/doc/./m4.texi:9: @setcontentsaftertitlepage has been remove
d as a Texinfo command; move your @contents command if you want the contents af
ter the title page..
It turns out that eliminating the command has no effect - modern
tools correctly emit the contents in-place, right after the title
page, so it was leftover cruft from an older time.
* doc/m4.texi: Satisfy newer texinfo.
Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit
c7a3591347238aa34defded34609007b326a0984)
Eric Blake [Tue, 3 Jan 2017 22:11:39 +0000 (16:11 -0600)]
maint: kill trailing spaces
Pointed out during 'make syntax-check'.
* NO-THANKS: Drop trailing spaces.
* m4/module.c (m4_module_load): Likewise.
* m4/path.c (m4_path_search): Likewise.
* po/Makevars (EXTRA_LOCALE_CATEGORIES): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 2 Jan 2017 13:30:42 +0000 (07:30 -0600)]
maint: bump copyright year
Needed to reduce number of 'make syntax-check' failures.
* gnulib: Update to latest.
* bootstrap.conf (src_modules): Add 'assure', to match gnulib module
changes in the meantime.
* .gitignore: Ignore results of assure module.
* cfg.mk (gnulib_dir): Declare our alternate location.
* bootstrap: Regenerate.
* all files: Use 'make update-copyright' to bump year.
Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit
102376916e49b6aae85dc6ff0b59699205a74bdf)
[Ultimately, this short-circuits all other commits from other branches
that touched gnulib to any intermediate version]
libm4: spell TRUNCATE_FILENAME consistently.
* m4/path.c (m4_path_search): s/FILE_TRUNCATE/TRUNCATE_FILENAME/
to match definition.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
libm4: fix path_truncate() regressions on OS/2.
* m4/path.c (m4_path_search): Ensure that a null-terminator is
appended. Re-calculate a length of path after path_truncate().
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
gnulib: sync with upstream.
Notably this moves to the new 64bit obstack implementation.
* gnulib: Sync with upstream, for maint.mk bug fixes et al.
* build-aux/m4/gnulib-cache.m4, po/Makevars: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
obstacks: use obstack_blank_fast where possible.
In preparation for gnulib API change to obstacks, where
obstack_blank cannot shrink memory use any more.
* m4/macro.c (trace_flush): `start - len` can be negative, so
call obstack_blank_fast, which accepts negative arguments.
* modules/m4.c (m4_make_temp): Likewise... -1 is always negative!
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: improve dlsym underscore detection.
* configure.ac (fn_module_cmds): Split ~ delimited command lists,
and set globals required by $module_cmds and $archive_cmds.
(libname): Preload with 'conftmod' ready for fun_module_cmds
calls, and for reuse as an 8.3 compatible module basename in this
check.
(sys_dlsym_uscore): Use it to detect underscore prefix requirement
in some dlysm() implementations more reliably.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: clean up no-longer supported preloading references.
* doc/m4.texi: Remove references to preloaded modules.
* configure.ac (Preloaded module configuration): Remove.
* Makefile.am (src_m4_LDFLAGS): Remove. DLPREOPEN no longer set.
(src_m4_DEPENDENCIES): Remove PREOPEN_DEPENDENCIES reference.
* tests/atlocal.in (DYNAMIC_MODULES): Remove.
* tests/testsuite.at (AT_CHECK_DYNAMIC_MODULE): Remove.
* tests/builtins.at, tests/modules.at: Remove references to
removed AT_CHECK_DYNAMIC_MODULE.
* tests/generate.awk: Don't generate AT_CHECK_DYNAMIC_MODULE
calls.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: only load modules with system module file extension.
* m4/path.c (m4_load_filename): Compare with LT_MODULE_EXT instead
of hardcoded '.so'.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: Use LT_MODULE_EXT for host module file extension.
* m4/module.c (m4__module_open): Use LT_MODULE_EXT instead of
no longer calculated SYS_SHREXT.
* m4/path.c (FILE_SUFFIXES): Likewise.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: simplify calculation of module file extension.
* configure.ac (LT_SYS_MODULE_EXT): Use this...
(mfour_shrext): Remove. ...instead of working it out manually.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: use modern LIBADD_DLOPEN over undocumented LIBADD_DL.
* Makefile.am (m4_libm4_la_LIBADD): Use modern LIBADD_DLOPEN
instead of obsolete and undocumented LIBADD_DL.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: use only host system module file extension in searches.
* configure.ac (SYS_SHREXT): Define to host system module file
extension.
* m4/module.c (suffixes), m4/path.c (FILE_SUFFIXES): Use it
instead of listing suffixes for all supported host systems.
Reported by Pavel Raiskup
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: does dlsym require leading symbol name underscore?
* m4/module.c (uscore_sym): Change NEED_USCORE guarde to
LDSYM_USCORE.
* configure.ac: Move compiler characteristics checks above libtool
initialization section.
(Dynamic Loader Characteristics): Determine whether dlsym requires
a leading symbol name underscore, without requiring that self
dlopening works like LT_FUNC_DLSYM_USCORE macro does.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: ensure m4 is built before calling help2man on it.
Moving the 'doc' related Makefile targets into doc/Makefile.am to
avoid building manual page before the m4 binary itself (suggested
by automake.info).
* Makefile.am (SUBDIRS): Add doc subdir.
* Makefile.am: Move to docs-related rules from here...
* doc/Makefile.am: New file. ...to here.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: remove vestigial libltdl references.
M4 no longer uses libltdl.
* configure.ac: Call LT_LIB_DLLOAD to set LIBADD_DL correctly.
* Makefile.am (m4_libm4_la_LIBADD): Remove LIBLTDL.
(m4_libm4_la_DEPENDENCIES): Remove LTDLDEPS.
Reported by Pavel Raiskup
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: support 8.3 truncated filenames.
* m4/path.c (TRUNCATE_FILENAME): New macro, defined on OS2.
(path_truncate): New function when TRUNCATE_FILENAME is defined,
otherwise a null-operation macro. Trim the basename to no more
than 8 characters, followed by the extension.
(m4_path_search): Use it.
Reported by Ko Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Revert "modules: fall-back to system dlopen search path."
The original patch had security issues, and broke loading of
frozen files including modules that are only available along
the fall-back path.
This reverts commit
1d887c9b5002d8e9a4e65c192c8a1b7355cc356a.
maint: run update-copyright for 2014.
Add 2014 to copyright message in all files.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
maint: add forgotten thanks-gen script.
* .gitignore: Don't ignore build-aux/thanks-gen.
* build-aux/thanks-gen: New script.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: support non-posix PATH_SEPARATOR.
* configure.ac (PATH_SEPARATOR): Propagate to config.h.
* m4/path.c (search_path_env_init): Respect PATH_SEPARATOR.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: support _ symbol prefix requirement for dlsym.
* configure.ac (LT_FUNC_DLSYM_USCORE): Call it to set NEED_USCORE.
* m4/module.c (uscore_sym): New function. Use this to prepend an
underscore if NEED_USCORE was set at configure time.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: fall-back to system dlopen search path.
* m4/module.c (m4__module_open): If the module search function
cannot find a matching module, fall-back to the system dlopen
search path.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: support .dll suffix.
* m4/module.c (m4__module_open): Support .dll suffix in module
names.
* m4/path.c (FILE_SUFFIXES): Likewise for include builtin.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
m4: fdopen() with a text mode explicitly on OS/2.
On OS/2 kLIBC, fdopen() creates a stream in a mode of a file
descriptor. So specify "t" to open a stream in a text mode explicitly
on OS/2.
* modules/gnu.c (m4_esyscmd): fdopen() in a text mode on OS/2.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: add -Zargs-resp to LDFLAGS on OS/2.
-Zargs-resp enables a response file support on OS/2.
* configure.ac (OS2_LDFLAGS): Add -Zargs-resp on *-*-os2*.
* Makefile.am (AM_LDFLAGS): Add OS2_LDFLAGS.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: append $EXEEXT suffix to /bin/sh.
Without $EXEEXT, /bin/sh cannot be located on OS/2.
* build-aux/m4/m4-syscmd.m4 (M4_SYSCMD): append $EXEEXT suffix
to /bin/sh.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: loadable modules files do not require version numbers.
Modules are loaded by libltdl. Arguably, loading from the .la
pseudo-library should work irrespective of platform library object
file-naming schemes; but in reality, M4 loads modules by basename
anyway, so we shouldn't put a platform specific version number in
the module filename anyway.
* Makefile.am (module_ldflags): Add -avoid-version flag.
Reported by KO Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: loadable modules do not require undefined symbol support.
For compatibility with OS/2 and cygwin, modules must be compiled
with no undefined symbols.
* Makefile.am (AM_LDFLAGS): Add -no-undefined flag.
Reported by Ko Myung-Hun
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
maint: autogenerate THANKS.
More automation == less time wasted on menial tasks.
* build-aux/thanks-gen: script inspired by coreutils.
* Makefile.am (THANKS): Based on rule from coreutils/Makefile.am.
* NO-THANKS: New file. Configure thanks-gen output.
* THANKS: Remove.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
bootstrap: sync with upstream.
* build-aux/gl/build-aux/bootstrap.in,
build-aux/gl/build-aux/extract-trace,
build-aux/gl/build-aux/funclib.sh,
build-aux/gl/build-aux/inline-source,
build-aux/gl/build-aux/options-parser: Sync with upstream.
* bootstrap: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: separate installed modules from test only modules.
* modulues/import.c, modules/modtest.c, modules/shadow.c: Move
from here...
* tests/import.c, tests/modtest.c, tests/shadow.c: ...to here.
* Makefile.am: Adjust.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
maint: fix some warnings that break compilation with -Werror.
* m4/hash.c (ITERATOR_NEXT_NEXT): Hide unused macro.
(maybe_grow): Prevent implicit double promotion.
(m4_get_hash_length, m4_get_hash_iterator_key)
(m4_get_hash_iterator_value, m4_hash_string_hash)
(m4_hash_string_cmp): Add pure attribute for gcc.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
maint: fix a type coercion flagged by -Wformat.
* modules/m4.c (maketemp): Don't pass a size_t as the precission
parameter to %.*s.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
maint: fix gnulib path in .gitmodules.
* .gitmodules (gnulib): Set path to build-aux/gnulib.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: install headers correctly.
* Makefile.am (pkgmodincludedir): Remove.
(nobase_pkginclude_HEADERS, pkgmodinclude_HEADERS): Move from here...
(nobase_include_HEADERS, noinst_HEADERS): ...to here.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: fold doc/Makefile.am into Makefile.am.
* doc/Makefile.am: Remove.
* Makefile.am: Reinstate rules here.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: install gnulib sources into m4 subdirectory.
* configure.ac (AC_CONFIG_LIBOBJ_DIR): Change to m4/gnu.
(AC_CONFIG_HEADERS): Change to config.h.
(AC_CONFIG_FILES): Change gnu/Makeflie to m4/gnu/Makefile.
* .gitignore, po/POTFILES.in: Adjust accordingly.
* build-aux/m4/gnulib-cache.m4: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: move gnulib subproject to build-aux subdirectory.
* gnulib: Move from here...
* build-aux/gnulib: ...to here.
* bootstrap.conf (gnulib_path): Set appropriately.
* .gitignore: Adjust.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: move usage examples into doc subdirectory.
* examples: Move from here...
* doc/examples: ...to here.
* Makefile.am (EXTRA_DIST, dist_pkgdata_DATA): Adjust.
* README, doc/m4.texi, tests/builtins.at, tests/generate.awk,
tests/others.at: Likewise.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: move autoconf macros to build-aux subdirectory.
* ltdl/m4: Move from here...
* build-aux/m4: ...to here.
* configure.ac (AC_CONFIG_MACRO_DIR): Adjust.
* Makefile.am (config_macro_dir, ACLOCAL_AMFLAGS): Adjust.
* build-aux/m4/gnulib-cache.m4: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: move local gnulib patches to build-aux subdirectory.
* gl: Move from here...
* build-aux/gl: ...to here.
* ltdl/m4/gnulib-cache.m4: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: gettext cleanup.
Gettext's autopoint script only omits the intl directory creation
for exactly 'AM_GNU_GETTEXT([external])'; any additional arguments
force that directory to be built again.
* configure.ac (AM_GNU_GETTEXT): move need-format-string-macros
from here...
(AM_GNU_GETTEXT_NEED): ...to here.
* bootstrap.con (m4_precopy_git_version_gen): Since we use
git-version-gen directly in configure.ac, it has to be in place
before calling autopoint, which leaks error messages about the
missing script otherwise.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: don't generate annoying autom4te.cache directory.
* .autom4te.cfg: New file. Disable autotools caching.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: remove obsolete perl path search.
* configure.ac (AC_PATH_PROG): Remove perl.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: huge simplification of module loading without libltdl.
Libltdl is huge and slow, and carrying the weight of support for
decades old systems. We can do much better using POSIX dlopen
and dlsym directly, simplifying and speeding up as we do so.
* configure.ac (LT_CONFIG_LTDL_DIR, LTDL_INIT): Remove.
(M4_DEFAULT_PRELOAD): Set to ""; we lost preload support along
with removing libltdl.
* Makefile.am: Don't include ltdl/Makefile.inc.
(AM_CPPFLAGS): Manually add current directory to include search
paths.
* m4/m4private.h (includes): Remove ltdl.h.
(INIT_SYMBOL, m4__module_init): Remove.
(struct m4_module): Change handle type from lt_dlhandle to void *.
* m4/m4module.h (M4INIT_HANDLER): Remove.
* m4/module.c (includes): Add dlfcn.h.
(m4__module_interface, iface_id, m4__module_init, module_dlerror):
Remove.
(m4__module_open): Drastically simplified without all the
libltdl setup and interface id twiddling. Just call dlopen to
get a native handle, and the dlsym to get the init function.
(m4_module_import): Similarly wrt dlsym.
* m4/path.c (FILE_SUFFIXES): Replace .la and LT_MODULE_EXT with
hardcoded ".so".
(m4_load_filename): Likewise.
* modules/gnu.c: Remove libltdl preprocessor symbol renaming,
and use "include_<modulename>" as the single entry point function.
* modules/import.c, modules/m4.c, modules/modtest.c,
modules/mpeval.c, modules/shadow.c, modules/stdlib.c,
modules/time.c, modules/traditional.c: Likewise.
* main.c (main): Remove calls to m4__module_init and
LTDL_SET_PRELOADED_SYMBOLS.
* tests/m4.in: Make sure we always have the modules/.libs and
tests/.libs directories at the front of M4PATH so that the
tests will find the modules they need to include.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: speed up multiple includes of the same module.
* m4/module.c (m4_module_load): If we already have the module
loaded, reuse that. Otherwise, open the module afresh and
register it's builtins and macros on success.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: simplify module lookup by name.
* m4/m4private.h (m4:namemap): New field for hash table to lookup
module structures by name string.
* m4/m4.c (hashfn): Hash function for plain strings.
(m4_create): Initialise namemap field to a hash table using hashfn
for inserting and looking up keys.
* m4/module.c (m4__module_find): Replace the fussy libltdl
twiddling with a hash lookup in m4:namemap.
Add a new context parameter. Adjust all callers.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: store loaded modules in context struct.
* m4/m4private.h (struct m4_module): Add a next pointer.
(struct m4): Add a module list pointer.
* m4/module.c (m4__module_open): Initialise the next pointer and
update the list head when a new module is successfully opened.
(m4_module_next): Replace the ugly libltdl twiddling with a
straight forward module list traversal one-liner!
Add a context parameter. Adjust all callers.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: store module name in the module struct.
* m4/m4private.h (m4_module): Add name field.
* m4/module.c (m4__module_open): Save the name field.
* m4/path.c (m4_load_filename): Pass the raw filename to
m4_module_load.
* m4/module.c (m4_get_module_name): Replace all the ltdl
twiddling with returning the saved name field.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: allow only a single function access point.
Exporting non-function symbols barely works on Windows, so change
the module loading API to use a single function access point which
is then responsible for calling back to install symbols and macros.
* m4/m4module.h, m4/m4module.c (m4_install_builtins)
(m4_install_macros): New APIs for saving builtins and macros into
the module struct.
* m4/m4module.c (install_macro_table, install_builtin_table):
Adjust accordingly.
(m4__module_open): Simplify accordingly.
* m4/m4private.h (BUILTIN_SYMBOL, MACRO_SYMBOL): Remove.
* modules/gnu.c, modules/import.c, modules/m4.c, modules/modtest.c,
modules/mpeval.c, modules/shadow.c, modules/time.c,
modules/traditional.c (m4_builtin_table, m4_macro_table): Make
static, and remove LTX symbol mangling macros.
(M4INIT_HANDLER): Call m4_install_builtins and/or m4_install_macros.
* tests/options.at: Now that init_func is always called, adjust
expected debug output.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: remove support for module unload and refcount.
Module management is horrifically more complex than it needs to
be for the simple purpose of providing a means to implement new
builtins using C. Fussing about reference counting or needing to
maintain and test a facility to unload modules is an easy 600
lines to cut as a start at simplification.
* src/main.c (main): Don't call m4__module_exit to unload all
modules just prior to exiting the application.
* m4/m4private.h (FINISH_SYMBOL, m4_module:refcount)
(m4__module_exit, m4_module_refcount): Remove.
(m4__module_next): Rename from this...
* m4/m4module.h (m4_module_next): ...to this. Adjust all callers.
(M4FINISH_HANDLER, m4_module_finish_func, m4_module_makeresident)
(m4_module_refcount, m4_module_unload, m4_module_exit): Remove.
* m4/m4module.c (m4__module_next): Rename from this...
(m4_module_next): ...to this.
(module_remove, m4_module_makeresident, m4_module_unload)
(m4_module_exit, m4_module_refcount): Remove.
* modules/load.c: Remove.
(m4modules): Move from here...
* modules/gnu.c (m4modules): ...to here. Update all callers.
(M4FINISH_HANDLER(gnu)): Remove.
* modules/m4.c (M4INIT_HANDLER(m4)): Remove.
* modules/modtest.c (M4FINISH_HANDLER(modtest)): Remove.
* modules/shadow.c (M4INIT_HANDLER(shadow)): Rewrite to work
without refcount.
* Makefile.am (pkglib_LTLIBRARIES): Remove modules/load.la.
(modules_load_la_LDFLAGS, modules_load_la_LIBADD): Remove.
* tests/modules.at: Remove references to load module, and
tests of unload builtin.
* tests/options.at: Remove obsolute finish hook and module unload
trace output.
* doc/m4.texi (Unload, Refcount): Remove.
(M4modules): Change module reference from load to gnu.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
refactor: remove dead M4MODPATH code.
* m4/m4private.h (USER_MODULE_PATH_ENV): Remove.
* m4/module.c: Correct doc-comment header details.
(m4__module_init): Remove PKGLIBEXECDIR and M4MODPATH handling.
Move configmake.h include from here...
* m4/path.c: ...to here.
(m4__include_init): Append PKGLIBDIR to search path.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
modules: remove ancient broken perl module.
* modules/perl.c, modules/perl.m4: Remove.
* po/POTFILES.in: Remove reference to perl.c.
* Makefile.am: Remove commented out rules for building perl.so.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
docs: update modules/README.
* modules/README: Update to reflect current state.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
doc: fix SVR3/4 references.
Consider:
$ git grep SVR4
861325a84f231a2a2da307b53ef5ff527d67e876 | cut -c 42-
ChangeLog: that Jim developped stackovf.c on a 486 running SVR4.0 (ESIX), and
ChangeLog: `boolean'. This tag conflicts with <sys/types.h> on SVR4.
README:processor. It is mostly SVR4 compatible, although it has some
doc/m4.texinfo:processor. It is mostly SVR4 compatible, although it has some
examples/WWW/m4lib/whatis.m4:version, and SVR4, although it has some extensions (for example,
src/stackovf.c: signal stacks using either SVR4 or BSD interfaces.
src/stackovf.c: 1. The siginfo parameter (with siginfo.h, i.e., SVR4).
src/stackovf.c:/* SVR4. */
In particular:
doc/m4.texinfo:processor. It is mostly SVR4 compatible, although it has some
Elsewhere in `doc/m4.texinfo', only `Release 3' is referenced:
$ git grep Release
861325a84f231a2a2da307b53ef5ff527d67e876 -- doc/m4.texinfo | cut -c 42-
doc/m4.texinfo:System V, Release 3 version, except for some minor differences.
doc/m4.texinfo:UNIX, such as System V Release 3, Solaris, and @acronym{BSD} flavors.
This commit simply changes those last 2 lines by replacing `Release 3'
with `Release 4'.
* doc/m4.texinfo: Note that m4 is mostly compatible with SVR4.
Signed-off-by: Michael Witten <mfwitten@gmail.com>
Eric Blake [2013年3月12日 23:23:30 +0000 (17:23 -0600)]
build: avoid test failure on HPUX
POSIX permits implementations to open fd 0, 1, and 2 on exec(), even
when the user tried to close them. HPUX-11.23 is one of the
implementations that does not allow closed standard descriptors,
leading to a failure of test 005.command_li. But a test that makes
sure we behave gracefully in the face of closed standard descriptors
makes no sense on a platform where we can never have them closed, so
add some code to skip the test on "helpful" platforms.
Note - HPUX opens any closed standard descriptor as O_WRONLY on
/dev/null. This means that attempts to close stdout generally
result in silent success, but attempts to close stdin often still
result in failure when it is not possible to read from the O_WRONLY
stdin.
* doc/m4.texi (Command line files): Skip tests on systems where it
is impossible to start with stdin/out closed.
Reported by Gary V. Vaughan.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2013年3月10日 01:04:59 +0000 (18:04 -0700)]
build: fix large diversions on mingw
Gnulib's clean-temp module defaults to using _O_TEMPORARY on mingw,
which has the effect of deleting a file the first time it is closed.
This resulted in a testsuite failure in 146.diversions, with m4
complaining that it could not create a temporary file for holding a
diversion. In reality, m4 was trying to rename the file, but
because mingw does not allow renaming an open file, we have to close
it first - but closing it first deleted the file.
For now, we will just work around the gnulib issue by disabling the
use of _O_TEMPORARY.
This was probably introduced in commit
da5f6db (1.4.13), although
my testing environment was painfully slow to confirm this, so I
did not call out a 'regression since xyz' in the NEWS entry.
* gl/lib/clean-temp.c.diff: New file.
Signed-off-by: Eric Blake <eblake@redhat.com>
maint: either fix or disable failing syntax-check rules.
* cfg.mk (local-checks-to-skip): Skip bindtextdomain until I
understand it!
(old_NEWS_hash): Update.
(exclude_file_name_regexp--sc_prohibit_always_true_header_tests)
(exclude_file_name_regexp--sc_prohibit_strncpy)
(exclude_file_name_regexp--update_copyright): Exclude failing
files.
* doc/Makefile.am: Remove trailing blank line.
* m4/path.c: Remove trailing whitespace.
* doc/m4.texi: Fix some errors flagged by syntax checks.
* m4/input.c, m4/macro.c, m4/output.c, m4/stackovf.c: Don't use
`main ()', which confuses syntax-checks.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [2012年12月22日 14:18:15 +0000 (07:18 -0700)]
maint: move syntax check exemptions into cfg.mk
It's easier to maintain exemptions in a single file than it is
to maintain a bunch of hidden .x files.
* .x-sc_cast_of_argument_to_free: Delete file.
* .x-sc_prohibit_tab_based_indentation: Likewise.
* .x-sc_require_config_h: Likewise.
* .x-sc_require_config_h_first: Likewise.
* Makefile.am (syntax_check_exceptions): Delete rule.
* cfg.mk (exclude_file_name_regexp): Move exemptions here.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2012年11月19日 21:17:53 +0000 (14:17 -0700)]
build: avoid problematic gcc 4.4 warnings
Warnings that make sense under newer gcc can cause spurious
failures under older gcc; it's nice to allow out-of-the-box
development on stable releases while still getting the benefit
of improved warning detection in bleeding-edge setups.
* configure.ac (nw): Disable gcc warnings that cause build
failures under RHEL 6.3.
* gnulib: Update to latest.
Signed-off-by: Eric Blake <eblake@redhat.com>
doc: improve prehistory discussion
* doc/m4.texinfo (History): Describe M6 and related processors.
From a suggestion by Doug McIlroy in
<http://lists.gnu.org/archive/html/m4-discuss/2012-05/msg00004.html>.
Also, improve citation quality by giving URLs and so forth.
Eric Blake [Tue, 4 Sep 2012 22:18:59 +0000 (16:18 -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.
* bootstrap.conf (vc_ignore): Drop .cvsignore.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Sat, 1 Sep 2012 18:35:00 +0000 (12:35 -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.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Tue, 4 Sep 2012 22:53:19 +0000 (16:53 -0600)]
build: mark several pure functions
Found by using gcc 4.7.0's -Wsuggest-attribute=pure.
* m4/system_.h (M4_GNUC_PURE): New macro.
* m4/builtin.c (m4_builtin_find_by_name, m4_builtin_find_by_func):
Mark pure.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Sat, 1 Sep 2012 17:46:38 +0000 (10:46 -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 <eblake@redhat.com>
Eric Blake [2012年6月26日 04:03:04 +0000 (22:03 -0600)]
build: deal with newer glibc vs. FORTIFY_SOURCE
Recent glibc (for whatever stupid reason) decided to issue a #warning
when FORTIFY_SOURCE is requested but not possible, due to compilation
without optimization. But when debugging sources, we don't want our
use of -Werror to kill compilation just because glibc wants to be
chatty; when debugging, we don't care about source fortification.
* configure.ac (FORTIFY_SOURCE): Make conditional on optimization.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2011年4月30日 23:50:21 +0000 (17:50 -0600)]
gnulib: improve SIGPIPE emulation on mingw
On mingw, even doing 'm4 --help | sed 1q' would result in
warnings about EINVAL, because mingw has odd pipe behavior
and doesn't fail with EPIPE when no one is reading the
other end. Gnulib works around most of this.
* m4/gnulib-cache.m4: Import sigpipe module.
Signed-off-by: Eric Blake <eblake@redhat.com>
gnulib: remove obsolete strtol module.
* ltdl/m4/gnulib-cache.m4: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [2011年2月27日 00:07:33 +0000 (17:07 -0700)]
index: fix another regression from faulty strstr
* doc/m4.texinfo (Index macro): Test for the bug.
* THANKS: Update.
Reported by Mike Stump, with additional analysis from Ralf
Wildenhues and Jim Meyering.
Signed-off-by: Eric Blake <eblake@redhat.com>
gnulib: use manywarnings module.
* ltdl/m4/gnulib-cache.m4: Import manywarnings. Regenerate.
* configure.ac: Support --enable-gcc-warnings configure option.
* Makeflie.am (AM_CFLAGS): Honor --enable-gcc-warnings setting.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
gnulib: import fclose module.
* ltdl/m4/gnulib-cache.m4: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [Sat, 5 Feb 2011 22:55:17 +0000 (15:55 -0700)]
maint: speed up normal configure.
* configure.ac (gl_ASSERT_NO_GNULIB_POSIXCHECK): Speed up normal
configure runs (and document how to rerun GNULIB_POSIXCHECK).
* HACKING: Document GNULIB_POSIXCHECK.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 7 Feb 2011 16:48:11 +0000 (09:48 -0700)]
maint: update http git cloning instructions
* HACKING: Git http doesn't like the redirect at git.sv.gnu.org.
* THANKS: Update.
Reported by Mike Dupont.
Signed-off-by: Eric Blake <eblake@redhat.com>
maint: prefer STREQ/STRNEQ to strcmp contortions.
* m4/m4private (STRNEQ): New macro.
* m4/path.c (m4_load_filename): Use it.
* src/freeze.c (produce_frozen_state): Likewise.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [2011年1月26日 02:33:53 +0000 (19:33 -0700)]
maint: reflect recent copyright assignments
* AUTHORS: Update.
Signed-off-by: Eric Blake <eblake@redhat.com>
maint: update copyright year.
* all files: Run 'make update-copyright' to add 2013 to list of
copyright years.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [Mon, 3 Jan 2011 22:58:49 +0000 (15:58 -0700)]
maint: document use of copyright ranges
* README: Copy coreutils wording for allowing copyright year
ranges.
* cfg.mk (UPDATE_COPYRIGHT_USE_INTERVALS): Now that GNU Coding
Standards permit it, prefer shorthand copyright.
* NEWS: 1.4.16 will be in 2011.
* doc/m4.texinfo (History): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2010年12月24日 20:20:48 +0000 (13:20 -0700)]
build: pull in various gnulib fixes
* m4/gnulib-cache.m4: Reflect spawn-pipe module name change.
* modules/gnu.c (includes): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2010年12月24日 20:17:32 +0000 (13:17 -0700)]
maint: reflect recent copyright assignment
* AUTHORS: Add Raphael Poss.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2010年10月21日 18:24:30 +0000 (12:24 -0600)]
build: work around glibc and libsigsegv bugs
* docs/m4.texinfo (Index macro): Expose strstr bug.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2010年10月21日 17:44:48 +0000 (11:44 -0600)]
docs: mention more history
* doc/m4.texinfo (History): Add upcoming 1.4.16 release.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2010年8月30日 21:52:27 +0000 (15:52 -0600)]
maint: clean up compiler warnings.
* modules/evalparse.c (unary_term): Likewise.
* m4/input.c (match_input): Likewise. Also drop useless casts to
void.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
m4: avoid spurious output with unrecognized format specifiers.
* modules/format.c (format): Advance the loop invariants past an
unrecognized format specifier to avoid printing the specifier
character on the next pass.
* doc/m4.texi (Format): Don't expect unrecognized specifiers to
be output by format macro.
* tests/null.out: Don't expect unrecognized null specifier to be
output.
* tests/generate.awk (new_test): Treat `ignore' in expected error
output the same as Autotest.
* doc/m4.texi (Format): Use special `ignore' string rather than
unsupported @comment xerr magic.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
m4: avoid a crash with bad format string.
* src/format.c (expand_format): Fix off-by-one error.
* THANKS: Add Carlo Teubner.
Copyright-paperwork-exempt: Yes
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [2010年8月30日 18:08:47 +0000 (12:08 -0600)]
maint: test bad format string crash.
* doc/m4.texi (Format): Add a test.
Signed-off-by: Eric Blake <eblake@redhat.com>
maint: import release notes from branch-1.4.
* NEWS: Add entries from releases 1.4.15 thru 1.4.17.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [2010年7月29日 13:25:33 +0000 (07:25 -0600)]
gnulib: fix use of link libraries.
* Makefile.am (m4_LDADD): Update link libraries accordingly.
* THANKS: Update.
Reported by Rainer Tammer.
Signed-off-by: Eric Blake <eblake@redhat.com>
texinfo: drop obsolete @acronym invocations.
* doc/m4.texi: Remove all uses of @acronym.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake [Fri, 4 Jun 2010 22:44:37 +0000 (16:44 -0600)]
maint: add recent copyright assignments.
* AUTHORS: Add Joel Denny and David Warme.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 4 Jun 2010 15:18:08 +0000 (09:18 -0600)]
maint: enable additional c++ tests with make dist.
* configure.ac (gl_CXX_CHOICE_DEFAULT_NO): Make default for C++
tests be disabled...
* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): ...but run them when
building package.
* ltdl/m4/gnulib-cache.m4: Regenerate.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 4 Jun 2010 12:07:38 +0000 (06:07 -0600)]
maint: fix build on newer glibc.
POSIX allows, but does not require, that <fcntl.h> implicitly
includes <sys/stat.h>. Until recent glibc, most systems did
this implicit inclusion, and m4 was mistakenly relying on it.
* m4/output.c (includes): Add <sys/stat.h>.
* THANKS: Update.
Reported by Todd Rinaldo.
Signed-off-by: Eric Blake <eblake@redhat.com>
configury: default to automake silent rules if available.
* Makeflie.am (FORCE): Add missing placeholder.
* configure.ac (AM_SILENT_RULES): Use it if possible.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>