regex: fix dfa race in multithreaded uses
[gnulib.git] / ChangeLog
index 9145f2f..35b6dd2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,840 @@
+2013-05-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: fix dfa race in multithreaded uses
+       Problem reported by Ludovic Courtès in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00058.html>.
+       * lib/regex_internal.h (lock_define, lock_init, lock_fini):
+       New macros.  All uses of __libc_lock_define, __libc_lock_init
+       changed to use the first two of these.
+       (__libc_lock_lock, __libc_lock_unlock): New macros, for
+       non-glibc platforms.
+       (struct re_dfa_t): Define the lock unconditionally.
+       * lib/regexec.c (regexec, re_search_stub): Remove some now-incorrect
+       '#ifdef _LIBC"s.
+       * modules/regex (Depends-on): Add pthread, if we use the
+       included regex.
+
+       * lib/regcomp.c: Do actions that are not needed for glibc,
+       but may be needed elsewhere.
+       (regfree, re_compile_internal): Destroy the lock.
+       (re_compile_internal): Check for lock-initialization failure.
+
+       malloca: port to compilers that reject size-zero arrays
+       This fixes a bug introduced in my previous patch.
+       * lib/malloca.c (struct preliminary_header): Use an int
+       rather than a character array of size int; that's simpler.
+       (struct header): Remove, replacing with ...
+       (union header): New type.  This avoids the need for declaring a
+       character array of size zero, which is not allowed on some platforms.
+       All uses changed.
+
+2013-05-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       parse-datetime, tests: don't use "string" + int
+       Recent versions of 'clang' complain about C source code that
+       uses expressions of the form '"string literal" + integer',
+       I guess on the theory that it's confusing for readers who are
+       used to C++.  On those grounds I suppose it's OK to make this
+       minor style change.
+       * lib/parse-datetime.y (parse_datetime):
+       * tests/test-fchdir.c (main):
+       * tests/test-snprintf-posix.h (test_function):
+       * tests/test-snprintf.c (main):
+       * tests/test-vasnprintf-posix.c (test_function):
+       * tests/test-vasnprintf.c (test_function):
+       * tests/test-vsnprintf.c (main):
+       * tests/unistdio/test-ulc-asnprintf1.h (test_function):
+       Rewrite '"str" + E' to '&"str"[E]'.
+
+2013-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>
+
+       argmatch: port to C++
+       * lib/argmatch.h [__cplusplus]: Add extern "C".
+
+       argp: typo fix
+       * lib/argp-help.c: Typo in comment.
+
+2013-05-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       manywarnings: update for GCC 4.8.0
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
+       Add -Waggressive-loop-optimizations, -Wreturn-local-addr, which
+       are new to GCC 4.8.  Remove -Wformat=2, -Wmissing-format-attribute,
+       -Wmissing-noreturn, as they are duplicates of other warnings.
+       Remove -Wunreachable-code, as it is removed in GCC 4.8 and
+       was documented to be flaky in earlier versions of GCC.
+
+       spawn-tests, sys_socket-tests, sys_wait-tests: port to clang
+       * tests/test-spawn.c (main):
+       * tests/test-sys_socket.c (main):
+       * tests/test-sys_wait.c (main):
+       Don't have a switch value that isn't covered by a case.
+
+       getaddrinfo-tests: port --enable-gcc-warnings to clang
+       * tests/test-getaddrinfo.c (simple):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       thread: port --enable-gcc-warnings to clang
+       * lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]:
+       Include <signal.h>, to pacify a warning about pthread_sigmask.
+
+       stdio: use __REDIRECT for fwrite, fwrite_unlocked
+       * lib/stdio.in.h (fwrite):
+       When working around bug 11959, use __REDIRECT rather than '#define
+       fwrite(...) ... fwrite (...) ...'.  This is a more-targeted way to
+       fix the -Wunused-value issue with clang, and it works with GCC too.
+       Problem with targeting reported by Eric Blake in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00067.html>.
+       (fwrite_unlocked): Treat like fwrite.  I ran into this issue while
+       debugging the fwrite issue.
+
+       stdio: port --enable-gcc-warnings to clang
+       * lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely,
+       since the GCC workaround for fwrite does not pacify clang.
+
+       sig2str: port --enable-gcc-warnings to clang
+       * lib/sig2str.c (sig2str): Avoid warning about unused printf argument.
+
+       obstack: port --enable-gcc-warnings to clang
+       * lib/obstack.h (obstack_ptr_grow_fast, obstack_int_grow_fast):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       memchr2: port --enable-gcc-warnings to clang
+       * lib/memchr2.c (memchr2):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       mbsstr: port --enable-gcc-warnings to clang
+       * lib/mbsstr.c (knuth_morris_pratt_multibyte):
+       Avoid casts from looser to stricter-aligned pointers.
+
+       malloca: port --enable-gcc-warnings to clang
+       * lib/malloca.c (struct header): New member 'magic', to avoid casts.
+       (mmalloca): Avoid casts from looser to stricter-aligned pointers.
+
+       inttostr: port --enable-gcc-warnings to clang
+       * lib/anytostr.c [__clang__]: Ignore -Wtautological-compare.
+
+       warnings: port to clang
+       Problem reported by Daniel P. Berrange via Eric Blake in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00055.html>.
+       * m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS): New macro.
+       (gl_WARN_ADD): Use it.
+
+2013-05-11  Jim Meyering  <meyering@fb.com>
+
+       quotearg: do not read beyond end of buffer
+       * lib/quotearg.c (quotearg_buffer_restyled): Do not read beyond the
+       end of an ARG for which no length was specified.  With an N-byte
+       quote string, (e.g., N is 3 in the fr_FR.UTF-8 locale), this function
+       would read N-2 bytes beyond ARG's trailing NUL.  This was triggered
+       via coreutils' misc/sort-debug-keys.sh test and detected by running
+       the test against a binary compiled with gcc-4.8.0's -fsanitize=address.
+       * tests/test-quotearg-simple.c (main): Add a test to trigger the bug.
+       * modules/quotearg-simple-tests (Files): Add tests/zerosize-ptr.h.
+       Introduced via the 2000-01-15 commit, c4b7f3f8, "Quote multibyte
+       characters correctly."
+
+2013-05-11  Daiki Ueno  <ueno@gnu.org>
+
+       lock: work around pthread recursive mutexes bug in Mac OS X 10.6
+       * m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the
+       compilation target is Mac OS X 10.6.
+       Problem reported by parafin and Andoni Morales in
+       <http://savannah.gnu.org/bugs/?37844> and
+       <http://lists.gnu.org/archive/html/bug-gettext/2013-05/msg00007.html>.
+
+2013-05-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mkdir-p: remove assumptions about umask and mode
+       * lib/mkdir-p.c (make_dir_parents): Do not assume that the current
+       umask is 0, or that MODE is a subset of MODE_BITS.
+
+2013-05-10  Eric Blake  <eblake@redhat.com>
+
+       maint.mk: catch more abuse of HAVE_DECL in syntax-check
+       * top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
+
+2012-05-10  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       deps: require Automake >= 1.9.6 in generated Makefile fragments
+
+       That is the same minimal version required in the DEPENDENCIES file.
+       Moreover, the old code generated a requirement of Automake >= 1.5,
+       and that is an insanely outdated version.
+
+       * gnulib-tool: Bump minimal version requirement in AUTOMAKE_OPTIONS.
+       * tests/havelib/rpathlx/Makefile.am: Likewise.
+       * tests/havelib/rpathly/Makefile.am: Likewise.
+       * tests/havelib/rpathlyx/Makefile.am: Likewise.
+       * tests/havelib/rpathlz/Makefile.am: Likewise.
+       * tests/havelib/rpathlzyx/Makefile.am: Likewise.
+       * tests/havelib/rpathx/Makefile.am: Likewise.
+       * tests/havelib/rpathy/Makefile.am: Likewise.
+       * tests/havelib/rpathz/Makefile.am: Likewise.
+
+2013-05-08  Eric Blake  <eblake@redhat.com>
+
+       bootstrap: AC_INIT may have more than four parameters
+       * build-aux/bootstrap (extract_package_name): Correctly extract
+       non-empty tarname field.  Avoid range in regex.
+       Based on a report by Sami Kerola <kerolasa@iki.fi>.
+
+2013-05-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       qacl: port to MS-Windows port of GNU Emacs
+       * lib/acl-errno-valid.c (acl_errno_valid) [ENOTSUP == ENOSYS]:
+       Omit the duplicate ENOTSUP case.  Needed for the MS-Windows
+       port of GNU Emacs.  Problem reported by Eli Zaretskii in
+       <http://bugs.gnu.org/14295#14>.
+
+2013-05-07  Mike Frysinger  <vapier@gentoo.org>
+
+       acl: include quote.h
+       * lib/copy-acl.c: Include quote.h.
+       * lib/set-acl.c: Likewise.
+
+2013-05-06  Mike Frysinger  <vapier@gentoo.org>
+
+       fchownat, renameat, unlinkat: update statat dependencies
+       These modules use statat and lstatat, not fstatat; so depend on
+       the statat module, which was split out recently from fstatat.
+       * modules/fchownat, modules/unlinkat: Change fstatat to statat.
+       * modules/renameat: Likewise.  Also delete fstat.
+       URL: http://bugs.gentoo.org/468790
+
+2012-05-04  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       Assume gnulib is checked out from Git, not CVS
+
+       In fact, access to the gnulib repository through CVS has been
+       disabled, or more precisely, got broken and was never restored; see:
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00008.html>
+
+       Note that support for CVS is not removed completely and unthinkingly
+       by this change: only support for CVS checkouts of gnulib itself is
+       removed.  For example, the 'bootstrap' script still cater to .cvsingore
+       files and CVS directories, for the benefit of those poor gnulib clients
+       still stuck with CVS.  Ditto for the 'gnulib-tool' script itself.
+
+       * gnulib-tool: Simplify accordingly.
+       * posix-modules: Likewise.
+       * MODULES.html.sh: Likewise.
+       * doc/gnulib.texi: No longer mention the decommissioned CVS gnulib
+       repository.
+       * doc/gnulib-intro.texi: Likewise.
+       * doc/gnulib-readme.texi: Likewise.
+       * doc/gnulib-tool.texi: In the examples and explanations, refer to a
+       sample '.gitignore' file rather than a sample '.cvsignore'.
+       * NEWS: Update.
+       * m4/extensions.m4: While at it, remove a comment mistakenly referring
+       to "CVS Autoconf" rather than "git Autoconf".
+
+2013-04-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       utimensat-tests, etc.: try to fix some races
+       Problem reported by Bernhard Voelker in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00071.html>.
+       I don't know whether this patch fixes that race condition, but it
+       fixes *some* race conditions, so it should be a win.
+       * modules/chown-tests (Depends-on):
+       * modules/fchownat-tests (Depends-on):
+       * modules/fdutimensat-tests (Depends-on):
+       * modules/futimens-tests (Depends-on):
+       * modules/lchown-tests (Depends-on):
+       * modules/stat-time-tests (Depends-on):
+       * modules/utimens-tests (Depends-on):
+       * modules/utimensat-tests (Depends-on):
+       Depend on nanosleep, not usleep.
+       * modules/chown-tests (test_chown_LDADD):
+       * modules/lchown-tests (test_lchown_LDADD):
+       * modules/stat-time-tests (test_stat_time_LDADD):
+       New macro.
+       * modules/fchownat-tests (test_fchownat_LDADD):
+       * modules/fdutimensat-tests (test_fdutimensat_LDADD):
+       * modules/futimens-tests (test_futimens_LDADD):
+       * modules/utimens-tests (test_utimens_LDADD):
+       * modules/utimensat-tests (test_utimensat_LDADD):
+       Add $(LIB_NANOSLEEP).
+       * modules/stat-time-tests (Files): Add tests/nap.h.
+       * tests/nap.h: Include <limits.h>, for INT_MAX.
+       (lt_mtime): Remove.
+       (diff_timespec): New function.
+       (get_stat): Rename from get_mtime.  All callers changed.
+       (nap_works): Determine the needed delay by inspecting the
+       file system's timestamp jumps; this should be more reliable.
+       Look at both mtime and ctime, and take the maximum of the two jumps.
+       (nap_works, guess_delay):
+       Return a nanosecond cound, not a microsecond count.
+       All callers changed.
+       (nap_works, nap): Use nanosleep, not usleep.  Check for nanosleep
+       failure.
+       (nap): Multiply the guess by 1.125, to accommodate the case where
+       the file system's clock is a bit slower than nanosleep's clock.
+       * tests/test-stat-time.c (BASE): New macro.
+       Include nap.h.
+       (nap): Remove; nap.h now defines this.  This removes a duplicate
+       implementation of 'nap'.
+
+       utimens, utimensat: work around Solaris UTIME_OMIT bug
+       Solaris 11.1 and Solaris 10 have the same UTIME_OMIT bug that
+       Linux kernel 2.6.32 does.  Work around it in the same way.
+       * doc/posix-functions/futimens.texi (futimens):
+       * doc/posix-functions/utimensat.texi (utimensat): Document the bug.
+       * lib/utimens.c (fdutimens, lutimens):
+       * lib/utimensat.c (rpl_utimensat): Work around the bug.
+
+       gettext: now it's your responsibility to add -I$(top_builddir)/intl
+       Formerly, it was your responsibility to do this for all Makefile.ams
+       other than Gnulib's.  Now it's your responsibility to do it for
+       Gnulib's Makefile.am, too.
+       * NEWS: Document this.
+       * modules/gettext (AM_CPPFLAGS): Don't append -$(top_builddir)/intl.
+
+       acl: include errno.h to get errno
+       Reported by Daiki Ueno in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00073.html>.
+       * lib/copy-acl.c, lib/set-acl.c: Include errno.h.
+
+2013-04-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: don't assume getdtablesize () <= 10000000
+       * modules/cloexec-tests:
+       * modules/dup2-tests:
+       * modules/dup3-tests:
+       * modules/nonblocking-tests:
+       * modules/posix_spawn_file_actions_addclose-tests:
+       * modules/posix_spawn_file_actions_adddup2-tests:
+       * modules/posix_spawn_file_actions_addopen-tests:
+       * modules/unistd-safer-tests:
+       Depend on the getdtablesize module.
+       * tests/test-cloexec.c:
+       * tests/test-dup-safer.c:
+       * tests/test-dup2.c:
+       * tests/test-dup3.c:
+       * tests/test-fcntl.c:
+       * tests/test-nonblocking.c:
+       * tests/test-posix_spawn_file_actions_addclose.c:
+       * tests/test-posix_spawn_file_actions_adddup2.c:
+       * tests/test-posix_spawn_file_actions_addopen.c:
+       Don't assume getdtablesize () <= 10000000.
+
+2013-04-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       extern-inline: work around bug in Sun c99
+       * m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE):
+       Work around bug in Sun C 5.12 c99's implementation of 'inline'.
+
+2013-04-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       qacl: new module, broken out from the acl module
+       This is for GNU Emacs, which wants the acl functions but does
+       not want 'error' invoked when they fail.
+       * lib/acl-internal.h: Do not include error.h, quote.h.
+       (ENOSYS, ENOTSUP): Remove; no longer needed.
+       (ACL_NOT_WELL_SUPPORTED): Remove; replaced by acl_errno_valid.
+       * lib/acl.h: Include <stdbool.h>.
+       (acl_errno_valid): New function.
+       * lib/copy-acl.c, lib/set-acl.c: Include errno,h, not acl-internal.h.
+       * lib/copy-acl.c (qcopy_acl): Move to lib/qcopy-acl.c.
+       * lib/set-acl.c: Rename from lib/set-mode-acl.c.
+       (chmod_or_fchmod, qset_acl): Move to lib/qset-acl.c.
+       (ACL_INTERNAL_INLINE): Remove; no longer needed.
+       * lib/file-has-acl.c (file_has_acl):
+       * lib/qcopy-acl.c (qcopy_acl):
+       * lib/qset-acl.c (qset_acl):
+       Use acl_errno_valid instead of ACL_NOT_WELL_SUPPORTED.
+       * modules/acl (Files): Move lib/acl.h, lib/acl-internal.h,
+       lib/acl_entries.c, lib/set-mode-acl.c (renamed to lib/set-acl.c),
+       lib/file-has-acl.c, m4/acl.m4 to qacl module.
+       Add lib/set-acl.c.
+       (Depends-on): Move extern-inline, fstat, sys_stat to qacl module.
+       Add qacl.
+       (configure.ac): Move gl_FUNC_ACL to qacl module.
+       (lib_SOURCES): Remove file-has-acl.c (moved to qacl module).
+       Rename set-mode-acl.c to set-acl.c.
+       * lib/acl-errno-valid.c: New file.
+       * lib/qcopy-acl.c: New file, moved from the old lib/copy-acl.c; the
+       copy_acl function remains in copy-acl.c.
+       * lib/qcopy-acl.c, lib/qset-acl.c: Do not include gettext.h.
+       (_): Remove; not needed.
+       * lib/qset-acl.c: New file, moved from the old lib/set-mode-acl.c; the
+       set_acl function remains in set-acl.c (renamed from set-mode-acl.c).
+       * modules/qacl: New file, moved from the old modules/acl.
+       (Files, lib_SOURCES): Add acl-errno-valid.c, qcopy-acl.c, qset-acl.c.
+       Remove set-mode-acl.c, copy-acl.c.
+       (Depends-on): Remove error, gettext-h, quote.  Add stdbool.
+
+       alignof, intprops, malloca: port better to IBM's C compiler
+       * lib/alignof.h (alignof_type) [__IBM_ALIGNOF__]: Use __alignof__.
+       * lib/intprops.h (_GL_HAVE___TYPEOF__) [__IBM_TYPEOF__]: Now 1.
+       * lib/malloca.h (sa_alignof): [__IBM_ALIGNOF__]: Use __alignof__.
+
+2013-04-25  Daiki Ueno  <ueno@gnu.org>
+
+       wctype-h: fix gettext link error on mingw
+       Reported by Josue Andrade Gomes and Takayuki Tsunakawa in
+       <https://lists.gnu.org/archive/html/bug-gettext/2013-03/msg00086.html>.
+       * lib/wctype.in.h [__MINGW32__]: Include <ctype.h> before defining
+       rpl_towupper and rpl_towupper.
+
+2013-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+       regex-tests, regex: allow glibc re_search behavior
+       * tests/test-regex.c (main): In test for glibc bug 15078, reformat
+       re_search input data to make the multi-character collating element
+       in it clearly visible, and treat re_search return code 0 as valid.
+       * m4/regex.m4 (gl_REGEX): Likewise.
+
+2013-03-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdalign: doc fix
+       * doc/posix-headers/stdalign.texi (stdalign.h):
+       Gnulib doesn't support '_Alignof expr'.
+
+2013-03-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdalign: port to stricter ISO C11
+       ISO C11 says that _Alignof's operand must be a parenthesized type.
+       Problem reported by Eli Zaretskii in
+       <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00960.html>.
+       * doc/posix-headers/stdalign.texi (stdalign.h): Document this.
+       * m4/stdalign.m4 (gl_STDALIGN_H): Don't use _Alignof (expr).
+
+2013-03-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sys_select, sys_time: port 2013-01-30 Solaris 2.6 fix to Cygwin
+       Problem reported by Marco Atzeri in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00000.html>.
+       * lib/sys_select.in.h [HAVE_SYS_SELECT_H && _CYGWIN_SYS_TIME_H]:
+       Simply delegate to the system <sys/select.h> in this case too.
+       Also, pay attention to _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H only
+       if OSF/1, since otherwise Cygwin breaks, and it doesn't seem to
+       be needed on Solaris either.
+       * lib/sys_time.in.h [_CYGWIN_SYS_TIME_H]:
+       Simply delgate to the system <sys/time.h> in this case.
+
+2013-03-19  Karl Berry  <karl@gnu.org>
+
+       * build-aux/gnupload: check for erroneous (with gnupload) use of
+       ftp-upload.gnu.org, tweak help.
+
+2013-03-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       copy-file, rpmatch: fix problems found by cppcheck
+       Reported by Arno Onken in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00069.html>.
+       * lib/rpmatch.c (try): Fix memory leak.
+       * lib/copy-file.c: Include "ignore-value.h".
+       (qcopy_file_preserving): Ignore chown value.
+       * modules/copy-file (Depends-on): Add ignore-value.
+
+2013-01-27  Jim Meyering  <jim@meyering.net>
+
+       prefix-gnulib-mk: give better diagnostics
+       * build-aux/prefix-gnulib-mk: Don't just "die".
+       Give better diagnostics upon failure.
+
+2013-03-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       putenv: port to Solaris 10
+       * lib/putenv.c (_unsetenv, putenv): Use HAVE_DECL__PUTENV, not
+       HAVE__PUTENV.  Solaris 10 has a _putenv that's not declared and
+       is not what is wanted here.
+       * m4/putenv.m4 (gl_PREREQ_PUTENV): Check for _putenv's
+       declaration, not for its existence.
+
+2013-03-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mktime: fix configure typo
+       * m4/mktime.m4 (gl_FUNC_MKTIME): Fix typo in previous change.
+
+2013-03-12  Eric Blake  <eblake@redhat.com>
+
+       regex-tests: skip UTF-8 test on mingw
+       * modules/regex-tests (Depends-on): Add localcharset.
+       * tests/test-regex.c (main): Use it to skip test on mingw.
+
+2013-03-11  Eric Blake  <eblake@redhat.com>
+
+       tests: make it easier to bypass alarm time in debugger
+       * tests/test-file-has-acl.c (main): Allow gdb to override alarm.
+       * tests/test-memmem.c (main): Likewise.
+       * tests/test-passfd.c (main): Likewise.
+       * tests/test-ptsname.c (main): Likewise.
+       * tests/test-ptsname_r.c (main): Likewise.
+       * tests/test-strcasestr.c (main): Likewise.
+       * tests/test-strstr.c (main): Likewise.
+
+       regex: port to mingw's recent addition of undeclared alarm
+       * doc/posix-functions/alarm.texi (alarm): Document that alarm
+       exists but still doesn't work in newer mingw.
+       * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Check for alarm declaration,
+       not existence.  Ensure SIGALRM is not trapped.
+       * m4/mktime.m4 (gl_FUNC_MKTIME): Likewise.
+       * m4/regex.m4 (gl_REGEX): Likewise.
+       * m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): Likewise.
+       * tests/test-regex.c (main): Use correct probe for alarm.
+
+       putenv: avoid compilation warning on mingw
+       * lib/putenv.c (_unsetenv): Protect variable declaration.
+       (putenv): Fix indentation.
+
+2013-03-11  Gary V. Vaughan  <gary@gnu.org>
+
+       unistd: don't prevent Tru64 Unix from using gnulib strtod.
+       * lib/unistd.in.h: be careful not to include un-needed system
+       stdlib.h from here, because that prevents gnulib stdlib.h from
+       defining rpl_strtod correctly.
+
+2013-03-09  Gary V. Vaughan  <gary@gnu.org>
+
+       vasprintf-posix-tests: allow rounding 1.51 to 1, per the previous
+       changesets, but for the 'precision 0' test.
+       * tests/test-vasprintf-posix.c (test_function): Don't insist on
+       round-to-even, since POSIX says rounding is implementation-defined
+       and OS X 10.8.2 rounds 1.51 to 1 here.
+
+       vasprintf-posix-tests: allow rounding 1.5 to 1, per the previous
+       changeset.
+       * tests/test-vasprintf-posix.c (test_function): Don't insist on
+       round-to-even, since POSIX says rounding is implementation-defined
+       and OS X 10.8.2 rounds 1.5 to 1 here.
+
+2013-03-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       vasnprintf-posix-tests: allow rounding 1.5 to 1
+       * tests/test-vasnprintf-posix.c (test_function): Don't insist on
+       round-to-even, since POSIX says rounding is implementation-defined
+       and OS X 10.8.2 rounds 1.5 to 1 here.  Reported by Gary V. Vaughan in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00019.html>.
+
+       bootstrap: port to FreeBSD
+       * build-aux/bootstrap (bootstrap_sync): Port sh -c usage to shells
+       that treat '--' differently.  Reported by Mats Erik Andersson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00012.html>.
+
+2013-03-08  Gary V. Vaughan  <gary@gnu.org>
+
+       regex: rename remaining __attribute calls to __attribute__.
+       2012-02-25 changed definition of __attribute, but left some uses
+       unchanged, preventing compilation of regex module on most non-gcc
+       environments.
+       * lib/regcomp.c (re_set_fastmap, seek_collating_symbol_entry)
+       (lookup_collation_sequence_value, build_range_exp)
+       (build_collating_symbol): Set attributes with newly renamed
+       __attribute__ decorator.
+       * lib/regex_internal.c (re_string_peek_byte_case)
+       (re_node_set_compare, re_node_set_contains): Likewise.
+       * lib/regexec.c (acquire_init_state_context): Likewise.
+
+2013-03-06  Bruno Haible  <bruno@clisp.org>
+
+       execute: Revert last change, but use a different condition.
+       * lib/execute.c (nonintr_close, nonintr_open): Reintroduce, but only
+       on Windows.
+
+2013-03-05  Eric Blake  <eblake@redhat.com>
+
+       execute: drop dead code
+       * lib/execute.c (nonintr_close, nonintr_open): Delete.
+
+2013-03-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       non-recursive-gnulib-prefix-hack: port coreutils 8.21 to HP NonStop
+       * m4/non-recursive-gnulib-prefix-hack.m4
+       (gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): Don't mess with ALLOCA.
+       Problem reported for HP NonStop + coreutils 8.21 by Joachim Schmitz in
+       <http://bugs.gnu.org/10305#237>.
+
+2013-03-04  Eric Blake  <eblake@redhat.com>
+
+       test-getsockopt: avoid compiler warning
+       * tests/test-getsockopt.c (includes): Ensure close is declared.
+
+2013-03-02  Bruno Haible  <bruno@clisp.org>
+
+       sys_types: Avoid autoconf warning about gl_SYS_TYPES_H.
+       * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Define through AC_DEFUN_ONCE.
+
+2013-03-02  Bruno Haible  <bruno@clisp.org>
+
+       gettext: Update to version 0.18.2.
+       * m4/intl.m4, m4/po.m4: Update from gettext-0.18.2. In particular:
+       2012-12-07  Stefano Lattarini  <stefano.lattarini@gmailcom>
+               * intl.m4, po.m4: Bump requirement in AC_PREREQ to 2.60.
+
+2013-02-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: merge patches from libc
+
+       2013-02-26  Siddhesh Poyarekar  <siddhesh@redhat.com>
+       * lib/regex_internal.h (__attribute__): Rename from __attribute.
+       All uses changed.
+       (bitset_not, bitset_merge, bitset_mask, re_string_char_size_at)
+       (re_string_wchar_at, re_string_elem_size_at):
+       Mark function as possibly unused.
+
+       2013-02-12  Andreas Schwab  <schwab@suse.de>  [BZ #11561]
+       * lib/regcomp.c (parse_bracket_exp) [_LIBC]: When looking up collating
+       elements compare against the byte sequence of it, not its name.
+
+2013-02-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       putenv: port better to native Windows
+       * lib/putenv.c [(_WIN32 || __WIN32__) && ! __CYGWIN__]:
+       Define WIN32_LEAN_AND_MEAN and include <windows.h>.
+       (_unsetenv): Use _putenv if available.
+       (putenv): Temporarily set NAME=' ' rather than NAME='x' as that's
+       a bit less likely to cause damage.
+       (putenv) [(_WIN32 || __WIN32__) && ! __CYGWIN__]:
+       Fix the wrong value with SetEnvironmentVariable.
+       (putenv) [!HAVE__PUTENV]: Simplify and match the HAVE__PUTENV
+       code better.
+
+2013-02-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: ignore old-style-definition warnings
+       * lib/regex.c: Add pragma to ignore these warnings.
+       Problem reported for GNU tar by Pavel Raiskup.
+
+2013-02-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       getcwd: support coreutils better
+       Like strtod, getcwd incorrectly referred to HAVE_RAW_DECL_GETCWD,
+       but this might not be correct in coreutils, which disables
+       the raw decl checks.  Problem reported by Nagendra in
+       <http://bugs.gnu.org/10305#192>.
+       * lib/getcwd.c (__getcwd): Do not depend on HAVE_RAW_DECL_GETCWD.
+       * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX):
+       Test the getcwd function, not any macro, since getcwd.c wants the
+       function.
+       * m4/getcwd.m4 (gl_FUNC_GETCWD):
+       Don't define HAVE_MINIMALLY_WORKING_GETCWD if the code doesn't
+       compile, as might happen if there's a macro but no function.
+
+       strtod: support coreutils better
+       * lib/strtod.c (underlying_strtod): Just invoke the underlying strtod.
+       HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which
+       disables the raw decl checks.  This assumes there is an underlying
+       strtod, but that's a safe assumption these days.
+       (HAVE_RAW_DECL_STRTOD): Remove; no longer used.
+
+       mountlist: port to HP NonStop
+       Reported by Joachim Schmitz in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00084.html>.
+       * lib/mountlist.c (hasmntopt) [!HAVE_HASMNTOPT]: New function.
+       (MNT_IGNORE) [MNTOPT_IGNORE]: Use it.
+
+2013-02-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       extern-inline: avoid compilation error with HP-UX cc
+       Reported by Richard Lloyd in
+       <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+       * m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE):
+       Suppress extern inline with HP-UX cc.  This should be safe,
+       though it may hurt performance.  Perhaps someone with some HP-UX
+       experience can come up with a higher-performance fix.
+
+2013-02-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       putenv: fix heap corruption with mixed putenv/_putenv
+       Problem reported by Michael Goffioul in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00061.html>.
+       * lib/putenv.c (putenv) [HAVE__PUTENV]:
+       Rely on _putenv to allocate the new environment.
+       * m4/putenv.m4 (gl_PREREQ_PUTENV): New macro.
+       * modules/putenv (configure.ac): Use it.
+
+2013-02-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       unsetenv etc.: port to Solaris 11 + GNU Emacs
+       * lib/canonicalize-lgpl.c, lib/getaddrinfo.c, lib/getdelim.c:
+       * lib/glob.c, lib/random_r.c, lib/setenv.c, lib/tsearch.c:
+       * lib/unsetenv.c (_GL_ARG_NONNULL): Define before including <config.h>.
+       GNU Emacs's <config.h> includes <stdlib.h> (which is not a great
+       idea but is too painful to fix right now), and without this gnulib
+       change <stdlib.h> was defining _GL_ARG_NONNULL incorrectly when
+       compiling unsetenv.c on Solaris 11.  Fix the problem for
+       unsetenv.c, and fix other similar occurrences.
+
+2013-02-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       secure_getenv: fix C++ declaration typo
+       * lib/stdlib.in.h (secure_getenv): Fix typo with return type
+       in _GL_CXXALIAS_SYS macro.  Reported by John W. Eaton in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00057.html>.
+
+2013-02-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       careadlinkat: stop exporting careadlinkatcwd
+       Only Emacs used it directly, and Emacs no longer needs it.
+       * NEWS: Document this simplification.
+       * lib/areadlink.c (careadlinkatcwd): Move here from careadlinkat.c,
+       and make it static.  Include <stdlib.h>, for abort, and unistd.h,
+       for readlink.
+       * lib/careadlinkat.c (careadlinkatcwd): Move to areadlink.c.
+       Don't include stdlib.h; no longer needed.
+       * lib/careadlinkat.h (careadlinkatcwd): Remove decl.
+       * lib/relocwrapper.c: Adjust comment to match new dependencies.
+       * modules/areadlink (Depends-on): Add readlink.
+       (Maintainer): Add self.
+       * modules/careadlinkat (Depends-on): Remove readlink.
+
+       extensions: port better to HP-UX
+       This is merged from git Autoconf.
+       * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
+       On hosts that need _XOPEN_SOURCE, define it when configuring, too,
+       so that it's compatible with the value used when compiling.
+
+       openpty: fix bug where HAVE_OPENPTY is mistakenly 1
+       Problem reported by Mats Erik Andersson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00051.html>.
+       * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
+       openpty function exists, not merely when we intend to replace it.
+       This corrects the 2013-01-31 patch, which mistakenly defined
+       HAVE_OPENPTY even on hosts that lacked it.
+
+2013-02-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       secure_getenv: fix include typo
+       * lib/secure_getenv.c: Include config.h.  Somehow I forgot!
+
+       secure_getenv: port better to FreeBSD and Solaris
+       * lib/secure_getenv.c [!HAVE___SECURE_GETENV]:
+       Include unistd.h if HAVE_ISSETUGID, otherwise define a dummy issetugid.
+       (secure_getenv) [!HAVE___SECURE_GETENV]: Use getenv if not issetugid.
+       This works better on BSDish platforms.
+       * m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV):
+       Test for issetugid if __secure_getenv is missing.
+
+2013-02-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       extensions: port better to MINIX 3, HP-UX, autoheader 2.62
+       Some of these changes are merged in from git Autoconf.
+       * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
+       When deciding whether to define _XOPEN_SOURCE, inspect the
+       preprocessor macro __hpux instead of the more-heavyweight
+       operation of requiring AC_CANONICAL_HOST.  Define _NETBSD_HOST on
+       MINIX, for MINIX 3.  Use USE_SYSTEM_EXTENSIONS, not __EXTENSIONS__,
+       as the key for __EXTENSIONS__.
+
+       unistd: avoid namespace pollution on non-glibc systems
+       * lib/unistd.in.h: #define __need_getopt before including <getopt.h>.
+       This avoids namespace pollution on non-glibc systems, by causing
+       gnulib unistd.h to behave more like glibc unistd.h.  I also hope
+       that this fixes a bug on FreeBSD, reported by Mats Erik Andersson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00027.html>.
+
+2013-02-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tmpdir: use secure_getenv
+       * lib/tmpdir.c (__secure_getenv) [!LIBC]:
+       Define to secure_getenv, not getenv.
+       * m4/tmpdir.m4 (gt_TMPDIR): Don't check for __secure_getenv,
+       as that's now secure_getenv's job.
+       * modules/tmpdir (Depends-on): Add secure_getenv.
+
+       tempname: use secure_getenv
+       * lib/tempname.c (__secure_getenv) [!_LIBC]:
+       Define to secure_getenv, not getenv.
+       * modules/tempname (Depends-on):
+       Add secure_getenv.
+
+       secure_getenv: new module
+       * MODULES.html.sh (Extra functions based on ANSI C 89):
+       Add secure_getenv.
+       * doc/glibc-functions/secure_getenv.texi: New file.
+       * doc/gnulib.texi: Include it.
+       * lib/secure_getenv.c, m4/secure_getenv.m4, modules/secure_getenv:
+       New files.
+       * lib/stdlib.in.h (secure_getenv): New decl.
+       * m4/stdlib_h.m4 (gl_STDLIB_H, gl_STDLIB_H_DEFAULTS):
+       * modules/stdlib (stdlib.h):
+       Add secure_getenv checks.
+
+2013-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
+       Reported for OS X 10.8.2 by Assaf Gordon in
+       <http://bugs.gnu.org/13516>.
+       * lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if
+       !HAVE_OPENAT && !HAVE_FDOPENDIR.
+       * m4/getcwd-abort-bug.m4: Reformat to match test-getcwd.c
+       so that they can be kept in sync more easily.  Avoid PATH_MAX
+       test on the Hurd.  Sync from test-getcwd.c for errno tests after
+       mkdir or chdir failure.
+       * tests/test-getcwd.c (HAVE_OPENAT_SUPPORT): New macro, from
+       lib/getcwd.c.
+       (test_abort_bug): Do not test for the deep directory bug unless we
+       have openat support.  Avoid PATH_MAX test on the Hurd.
+
+       regex-tests, regex: fix bug: memset undeclared
+       * tests/test-regex.c: Don't include regex.h twice.  Include
+       string.h, to declare memset.  Christensen's report also mentioned
+       this issue.
+       * m4/regex.m4 (gl_REGEX): Keep test program more in sync with
+       test-regex.c, to avoid future problems like this.  Remove
+       AC_INCLUDES_DEFAULT.  Include <string.h>.  Don't include <regex.h>
+       twice.
+
+       regex-tests: fix link errors on older Solaris
+       These need to link with @LIBINTL@ to get libintl_gettext.
+       Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-02/msg00003.html>.
+       * modules/regex-tests (test_regex_LDADD): New macro.
+
+2013-01-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex-tests: new module
+       * modules/regex-tests, tests/test-regex.c: New files.
+
+       regex: fix off-by-one error in configure test
+       * m4/regex.m4 (gl_REGEX): Test should return 21, not 20.
+
+2013-01-31  Eric Blake  <eblake@redhat.com>
+
+       regex: avoid infinite configure test
+       * m4/regex.m4 (gl_REGEX): Add an alarm escape hatch.
+
+2013-01-31  Reuben Thomas  <rrt@sc3d.org>
+
+       openpty: fix bug where HAVE_OPENPTY wasn't defined
+       See the thread starting at:
+       http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00185.html
+       * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
+       openpty function exists, not merely when we intend to replace it.
+
+2013-01-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sys_time: port to Solaris 2.6
+       There is a circularity problem on Solaris 2.6, where <time.h> includes
+       <sys/time.h> for struct timespec.  The include nesting is gnulib
+       <time.h>, system <time.h>, gnulib <sys/time.h>, system
+       <sys/time.h>, gnulib <sys/types.h>, system <sys/types.h>, gnulib
+       <sys/select.h>, gnulib <signal.h>, system <sys/signal.h>, system
+       <sys/siginfo.h>; the last, innermost file needs struct
+       timestruc_t, which is defined in <sys/time.h>, which has not been
+       fully parsed.  Problem reported by Tom G. Christensen in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00113.html>.
+       * lib/sys_select.in.h: Treat Solaris 2.6's problem with
+       <sys/time.h> and <sys/types.h> like OSF/1's similar problem.
+       * lib/sys_time.in.h: Redo to resemble sys_select.in.h, which
+       uses split double-inclusion guards.
+
+2013-01-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: test for buffer overrun
+       * m4/regex.m4 (gl_REGEX): Add test case, by Andreas Schwab,
+       for the just-fixed regex bug.
+
+2013-01-29  Andreas Schwab  <schwab@suse.de>
+
+       regex: fix buffer overrun in regexp matcher [BZ #15078]
+       * lib/regexec.c (extend_buffers): Add parameter min_len.
+       (check_matching): Pass minimum needed length.
+       (clean_state_log_if_needed): Likewise.
+       (get_subexp): Likewise.
+
 2013-01-28  Pádraig Brady  <P@draigBrady.com>
 
        mountlist: don't consider "devtmpfs" as dummy
        * lib/c-vasnprintf.h: New file.
 
        New module 'c-snprintf'.
-        * modules/c-snprintf: New file.
-        * modules/c-snprintf-tests: New file.
-        * lib/c-snprintf.c: New file.
-        * lib/c-snprintf.h: New file.
-        * tests/test-c-snprintf.c: New file.
-        * tests/test-c-snprintf.sh: New file.
+       * modules/c-snprintf: New file.
+       * modules/c-snprintf-tests: New file.
+       * lib/c-snprintf.c: New file.
+       * lib/c-snprintf.h: New file.
+       * tests/test-c-snprintf.c: New file.
+       * tests/test-c-snprintf.sh: New file.
 
        New module 'c-vsnprintf'.
-        * modules/c-vsnprintf: New file.
-        * modules/c-vsnprintf-tests: New file.
-        * lib/c-vsnprintf.c: New file.
-        * lib/c-vsnprintf.h: New file.
-        * tests/test-c-vsnprintf.c: New file.
-        * tests/test-c-vsnprintf.sh: New file.
+       * modules/c-vsnprintf: New file.
+       * modules/c-vsnprintf-tests: New file.
+       * lib/c-vsnprintf.c: New file.
+       * lib/c-vsnprintf.h: New file.
+       * tests/test-c-vsnprintf.c: New file.
+       * tests/test-c-vsnprintf.sh: New file.
 
        New module 'c-vasprintf'.
-        * modules/c-vasprintf: New file.
-        * modules/c-vasprintf-tests: New file.
-        * lib/c-asprintf.c: New file.
-        * lib/c-vasprintf.c: New file.
-        * lib/c-vasprintf.h: New file.
-        * tests/test-c-vasprintf.c  +: New file.
-        * tests/test-c-vasprintf.sh: New file.
+       * modules/c-vasprintf: New file.
+       * modules/c-vasprintf-tests: New file.
+       * lib/c-asprintf.c: New file.
+       * lib/c-vasprintf.c: New file.
+       * lib/c-vasprintf.h: New file.
+       * tests/test-c-vasprintf.c  +: New file.
+       * tests/test-c-vasprintf.sh: New file.
 
        New module 'c-xvasprintf'.
-        * modules/c-xvasprintf: New file.
-        * modules/c-xvasprintf-tests: New file.
-        * lib/c-xasprintf.c: New file.
-        * lib/c-xvasprintf.c: New file.
-        * lib/c-xvasprintf.h: New file.
-        * tests/test-c-xvasprintf.c: New file.
-        * tests/test-c-xvasprintf.sh: New file.
+       * modules/c-xvasprintf: New file.
+       * modules/c-xvasprintf-tests: New file.
+       * lib/c-xasprintf.c: New file.
+       * lib/c-xvasprintf.c: New file.
+       * lib/c-xvasprintf.h: New file.
+       * tests/test-c-xvasprintf.c: New file.
+       * tests/test-c-xvasprintf.sh: New file.
 
 2012-12-18  Paul Eggert  <eggert@cs.ucla.edu>