verify: new macro 'assume'
[gnulib.git] / ChangeLog
index c8ea9e0..9eb2479 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,694 @@
+2013-10-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       verify: new macro 'assume'
+       This is taken from Emacs, and should be generally useful.
+       * doc/verify.texi (assume): Document it.
+       * lib/verify.h (assume): New macro.
+       (__has_builtin): Expand to 0 if not defined.
+
+2013-09-26  Eric Blake  <eblake@redhat.com>
+
+       dup2, dup3: work around another cygwin crasher
+       * m4/dup2.m4 (gl_FUNC_DUP2): Expose the bug.
+       * m4/dup3.m4 (gl_FUNC_DUP3): Likewise.
+       * tests/test-dup2.c (main): Likewise.
+       * lib/dup2.c (rpl_dup2): Use setdtablesize to avoid it.
+       * lib/dup3.c (dup3): Likewise.
+       * doc/posix-functions/dup2.texi (dup2): Document it.
+       * doc/glibc-functions/dup3.texi (dup3): Likewise.
+
+       getdtablesize: work around cygwin issue
+       * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Detect problem.
+       * modules/getdtablesize (configure.ac): Build replacement.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set up a witness.
+       * modules/unistd (Makefile.am): Expose the witness.
+       * lib/unistd.in.h (getdtablesize): Declare replacement.
+       * lib/getdtablesize.c (rpl_getdtablesize): Work around it.
+       * tests/test-getdtablesize.c (main): Test it.
+       * doc/glibc-functions/getdtablesize.texi (getdtablesize): Document it.
+
+2013-09-25  Mats Erik Andersson  <gnu@gisladisker.se>
+
+       pmccabe2html: escaping of special characters
+       Escape all '<', '>', and '&' in HTML output.
+       * build-aux/pmccabe2html (html_fnc): Call gsub()
+       instead of sub() to capture all '<', '>', and '&'.
+       Neither of '<' and '>' is special in a regexp,
+       so first arguments to gsub() are corrected. Also,
+       in replacement strings, ampersand must be escaped.
+       Finally, '&' must be handled first, then '<' and '>'.
+
+2013-09-24  Eric Blake  <eblake@redhat.com>
+
+       manywarnings: enable nicer gcc warning messages
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Older gcc requires
+       some -f options for optimal warnings.
+
+2013-09-21  Jim Meyering  <meyering@fb.com>
+
+       timespec: use the new TIMESPEC_RESOLUTION in a few more places
+       * lib/timespec-add.c (timespec_add): Also replace 999999999
+       with TIMESPEC_RESOLUTION - 1.
+       * lib/timespec-sub.c (timespec_sub): Likewise.
+
+2013-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       warnings: port --enable-gcc-warnings to Solaris Studio 12.3
+       Problem reported by Dagobert Michelsen via Eric Blake in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-09/msg00052.html>.
+       * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use AC_LINK_IFELSE,
+       not AC_COMPILE_IFELSE.
+
+2013-09-23  Eric Blake  <eblake@redhat.com>
+
+       configmake: support new --runstatedir option
+       * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Substitute runstatedir
+       even if autoconf was too old to provide the command line option.
+       * modules/configmake (Makefile.am): Propagate it to .h file.
+
+2013-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       ctype, string: depend on extern-inline
+       This is needed to complete the recent OS X fixes.
+       Also, fix related documentation as suggested by Eric Blake.
+       * doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi:
+       * doc/posix-functions/isascii.texi, doc/posix-functions/iscntrl.texi:
+       * doc/posix-functions/isdigit.texi, doc/posix-functions/isgraph.texi:
+       * doc/posix-functions/islower.texi, doc/posix-functions/isprint.texi:
+       * doc/posix-functions/ispunct.texi, doc/posix-functions/isspace.texi:
+       * doc/posix-functions/isupper.texi, doc/posix-functions/isxdigit.texi:
+       * doc/posix-functions/toascii.texi, doc/posix-functions/tolower.texi:
+       * doc/posix-functions/toupper.texi:
+       List the 'ctype' gnulib module.
+       * doc/posix-functions/strcat.texi, doc/posix-functions/strcpy.texi:
+       * doc/posix-functions/strncpy.texi:
+       List the 'string' gnulib module.
+       * modules/memcpy, modules/memmove, modules/memset (Depends-on):
+       Add string.
+       * modules/ctype, modules/string (Depends-on): Add extern-inline.
+
+2013-09-19  Pádraig Brady  <P@draigBrady.com>
+
+       userspec: support optional parameters to parse_user_spec()
+       * lib/userspec.c (parse_user_spec): If the GID param is NULL,
+       then avoid group processing and treat the full spec as a user.
+       (parse_with_separator): Allow the USERNAME and GROUPNAME to
+       be optional params (NULL), in which case they're ignored.
+
+2013-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       timespec: new function make_timespec, and new constants
+       * lib/timespec.h: Incorporate recent changes on the Emacs trunk.
+       (TIMESPEC_RESOLUTION, LOG10_TIMESPEC_RESOLUTION): New constants.
+       (make_timespec): New function.
+       * lib/dtotimespec.c (dtotimespec):
+       * lib/timespec-add.c (timespec_add):
+       * lib/timespec-sub.c (timespec_sub):
+       * lib/utimens.c (validate_timespec):
+       * lib/utimensat.c (rpl_utimensat):
+       Use these new constants and functions.
+
+       stdio: OS X port of putc_unlocked + extern inline
+       * lib/stdio.in.h (putc_unlocked): #undef on problematic Apple platforms.
+       * doc/posix-functions/putc_unlocked.texi:
+       * doc/posix-functions/putchar_unlocked.texi:
+       Document this portability problem.
+
+       signal: OS X port of sigaddset etc. + extern inline
+       * lib/signal.in.h (sigaddset, sigdelset, sigemptyset, sigfillset)
+       (sigismember): #undef on problematic Apple platforms.
+       * doc/posix-functions/sigaddset.texi:
+       * doc/posix-functions/sigdelset.texi:
+       * doc/posix-functions/sigemptyset.texi:
+       * doc/posix-functions/sigfillset.texi:
+       * doc/posix-functions/sigismember.texi:
+       Document this portability problem.
+
+       extern-inline: do not always suppress extern inline on OS X
+       * m4/extern-inline.m4 (gl_EXTERN_INLINE): Suppress the use of
+       extern inline on Apple only if the particular compile-time
+       configuration is known to have the problem.
+       (_GL_EXTERN_INLINE_APPLE_BUG): New private macro, to implement this.
+       (_GL_EXTERN_INLINE_IN_USE): New macro, intended for use by
+       other Gnulib modules.
+
+       extern-inline: document fixes for ctype and wctype macros
+       * doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi:
+       * doc/posix-functions/isascii.texi, doc/posix-functions/isblank.texi:
+       * doc/posix-functions/iscntrl.texi, doc/posix-functions/isdigit.texi:
+       * doc/posix-functions/isgraph.texi, doc/posix-functions/islower.texi:
+       * doc/posix-functions/isprint.texi, doc/posix-functions/ispunct.texi:
+       * doc/posix-functions/isspace.texi, doc/posix-functions/isupper.texi:
+       * doc/posix-functions/iswalnum.texi, doc/posix-functions/iswalpha.texi:
+       * doc/posix-functions/iswcntrl.texi, doc/posix-functions/iswctype.texi:
+       * doc/posix-functions/iswdigit.texi, doc/posix-functions/iswgraph.texi:
+       * doc/posix-functions/iswlower.texi, doc/posix-functions/iswprint.texi:
+       * doc/posix-functions/iswpunct.texi, doc/posix-functions/iswspace.texi:
+       * doc/posix-functions/iswupper.texi, doc/posix-functions/iswxdigit.texi:
+       * doc/posix-functions/isxdigit.texi, doc/posix-functions/toascii.texi:
+       * doc/posix-functions/memcpy.texi, doc/posix-functions/memmove.texi:
+       * doc/posix-functions/memset.texi, doc/posix-functions/stpcpy.texi:
+       * doc/posix-functions/stpncpy.texi, doc/posix-functions/strcat.texi:
+       * doc/posix-functions/strcpy.texi, doc/posix-functions/strncat.texi:
+       * doc/posix-functions/strncpy.texi:
+       * doc/posix-functions/tolower.texi, doc/posix-functions/toupper.texi:
+       * doc/posix-functions/towlower.texi, doc/posix-functions/towupper.texi:
+       Document that Gnulib fixes portability problems with these
+       functions on OS X 10.8 and earlier when called from plain inline
+       or extern inline functions.
+
+2013-09-17  Kevin Cernekee  <cernekee@gmail.com>
+
+       fflush, freadahead, fseeko: Fix for Android
+       Suggested by Bruno Haible in:
+       <http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00306.html>
+       * lib/stdio-impl.h: Use local __sfileext definition.
+
+2013-09-17  Mats Erik Andersson  <gnu@gisladisker.se>
+
+       pmccabe2html: Portability to other awk versions.
+       The functions systime() and strftime() are available
+       in Gawk only.  Properly close two HTML-tags 'style'
+       and 'span'.
+       * build-aux/pmccabe2html (BEGIN): Store timing
+       strings in EPOCH_TIME and CHRONOS_TIME.  Replace
+       systime() in HTML_COMMENT.
+       (html_header): Correctly close tag 'style'.
+       (END): Replace strftime() by CHRONOS_TIME.  Close
+       tag 'span' correctly, not as 'div'.
+
+2013-09-17  Mats Erik Andersson  <gnu@gisladisker.se>  (tiny change)
+
+       getgroups: statement without effect
+       * lib/getgroups.c (rpl_getgroups) [HAVE_GETGROUPS]:
+       Change equality conditional to expected assignment.
+
+2013-09-09  Eric Blake  <eblake@redhat.com>
+
+       glob: fix compilation
+       * lib/glob.in.h (__THROW): Fix missing line in previous commit.
+
+2013-09-07  Eric Blake  <eblake@redhat.com>
+
+       glob: fix build for platforms without __THROW
+       * lib/glob.in.h (__THROW): Add definition again.
+
+2013-09-04  Anton Ovchinnikov  <revolver112@gmail.com>  (tiny change)
+
+       regex-quote: fix buffer access out of bounds
+       http://lists.gnu.org/archive/html/bug-gnulib/2013-09/msg00001.html
+       * lib/regex-quote.c (regex_quote_spec_pcre):
+       Fix typo that resulted in an out-of-bounds read.
+
+2013-09-04  Eric Blake  <eblake@redhat.com>
+
+       glob: avoid -Wattribute warnings on glibc
+       * lib/glob.c (next_brace_sub, prefix_array, collated_compare): Use
+       __THROWNL, not __THROW, on static functions.
+       * lib/glob.in.h (__THROW): Adjust...
+       (__THROWNL): ...accordingly.
+
+2013-08-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       headers: check that _GL_INLINE_HEADER_BEGIN is defined
+       Suggested by Bruce Korb in:
+       http://lists.gnu.org/archive/html/bug-gnulib/2013-08/msg00070.html
+       * doc/extern-inline.texi (extern inline):
+       Suggest checking that _GL_INLINE_HEADER_BEGIN is defined.
+       * lib/acl-internal.h, lib/argp-fmtstream.h, lib/argp.h:
+       * lib/binary-io.h, lib/bitrotate.h, lib/count-leading-zeros.h:
+       * lib/count-one-bits.h, lib/eealloc.h, lib/execinfo.in.h:
+       * lib/gethrxtime.h, lib/gl_list.h, lib/gl_oset.h, lib/gl_xlist.h:
+       * lib/gl_xoset.h, lib/gl_xsublist.h, lib/glthread/cond.h:
+       * lib/glthread/thread.h, lib/math.in.h, lib/mbchar.h, lib/mbfile.h:
+       * lib/mbiter.h, lib/mbuiter.h, lib/openat.h, lib/pipe-filter-aux.h:
+       * lib/priv-set.h, lib/pthread.in.h, lib/savewd.h, lib/se-context.in.h:
+       * lib/se-selinux.in.h, lib/sig-handler.h, lib/stat-time.h:
+       * lib/sys_socket.in.h, lib/timespec.h, lib/u64.h, lib/unistd.in.h:
+       * lib/utimens.h, lib/wctype.in.h, lib/xalloc.h, lib/xsize.h:
+       * lib/xtime.h:
+       Check that _GL_INLINE_HEADER_BEGIN is defined.
+
+2013-08-29  Pádraig Brady  <P@draigBrady.com>
+
+       bootstrap: remove the --version requirement from ancillary tools
+       * build-aux/bootstrap (check_exists): A new refactored function to
+       determine if a command exists.
+       (find_tool): Use the new function which does not require the
+       --version option to be supported.
+       (check_versions): Use the new function.
+
+2013-08-26  Simon Josefsson  <simon@josefsson.org>
+
+       gc: support HMAC-SHA256 and HMAC-SHA512.
+       * lib/gc.h: Add gc_hmac_sha256 and gc_hmac_sha512.
+       * lib/gc-libgcrypt.c (gc_hmac_sha256, gc_hmac_sha512): New
+       functions.
+       (gc_hmac_md5): Use symbolic constant.
+       * lib/gc-gnulib.c: Include hmac.h for HMAC-SHA256/512 too.
+       (gc_hmac_sha256, gc_hmac_sha512): New functions.
+       * lib/hmac.h: Add hmac_sha256 and hmac_sha512 prototypes.
+       * m4/sha256.m4: Protect against empty expansion.
+       * m4/sha512.m4: Likewise.
+       * lib/hmac-sha256.c: New file.
+       * lib/hmac-sha512.c: Likewise.
+       * m4/gc-hmac-sha256.m4: Likewise.
+       * m4/gc-hmac-sha512.m4: Likewise.
+       * m4/gc-sha256.m4: Likewise.
+       * m4/gc-sha512.m4: Likewise.
+       * modules/crypto/gc-hmac-sha256: Likewise.
+       * modules/crypto/gc-hmac-sha256-tests: Likewise.
+       * modules/crypto/gc-hmac-sha512: Likewise.
+       * modules/crypto/gc-hmac-sha512-tests: Likewise.
+       * modules/crypto/hmac-sha256: Likewise.
+       * modules/crypto/hmac-sha256-tests: Likewise.
+       * modules/crypto/hmac-sha512: Likewise.
+       * modules/crypto/hmac-sha512-tests: Likewise.
+       * tests/test-gc-hmac-sha256.c: Likewise.
+       * tests/test-gc-hmac-sha512.c: Likewise
+       * tests/test-hmac-sha256.c: Likewise.
+       * tests/test-hmac-sha512.c: Likewise
+
+2013-08-24  Daiki Ueno  <ueno@gnu.org>
+
+       * m4/intl.m4: Update from gettext-0.18.3.1, which fixes a misuse
+       of AC_CHECK_DECLS.
+
+2013-08-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       selinux-at: omit unnecessary include
+       * lib/selinux-at.c: Don't include dosname.h; not needed, since
+       this source file doesn't use its macros, and subsidiary files that
+       use the macros already include it.
+
+2013-08-21  Eric Blake  <eblake@redhat.com>
+
+       d-ino: avoid false negative on symlink
+       * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Use lstat.
+       Reported by Stephane Chazelas.
+
+2013-08-12  Mike Miller  <mtmiller@ieee.org>  (tiny change)
+
+       bootstrap: port to OpenBSD sed
+       * build-aux/bootstrap (insert_if_absent): Port to OpenBSD sed which
+       does not interpret `-' as a file argument to mean stdin.
+
+2013-08-15  Eric Blake  <eblake@redhat.com>
+
+       warnings: minor optimization
+       * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use fewer processes.
+
+       warnings: check -Wfoo rather than -Wno-foo
+       * m4/warnings.m4 (gl_COMPILER_OPTION_IF): If name begins with
+       -Wno-, test if the compiler recognizes the positive form instead.
+
+2013-08-15  Karl Berry  <karl@gnu.org>
+
+       * config/srclist-update: add option "doclicense" to placate
+       pulling *.texi files from Emacs.  Write terse usage
+       documentation at the top.
+
+2013-08-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       xvasprintf-tests: port to GCC with hardening flags
+       * tests/test-xvasprintf.c (test_xasprintf): Pass another arg to
+       xasprintf, to pacify GCC.  Reported by Santiago Vila in:
+       http://lists.gnu.org/archive/html/bug-diffutils/2013-08/msg00002.html
+
+2013-08-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fpending: port to recent Cygwin change to stdio_ext.h
+       Reported by LRN in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-08/msg00028.html>.
+       * lib/fpending.h: Don't worry about HAVE_DECL___FPENDING;
+       just declare __fpending unless it's a macro.
+       A duplicate decl shouldn't hurt.
+       * m4/fpending.m4 (gl_FUNC_FPENDING): Check that an __fpending
+       call compiles and links, instead of separately checking for
+       decl and lib function.
+       * modules/fpending (configure-ac):
+       Adjust to fpending.m4's renaming of shell variable.
+
+2013-08-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sys_time: port to OpenBSD
+       * lib/sys_time.in.h: Simply delegate to the system's header
+       in the BSDish cases as well.  Problem reported by Mike Miller in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-08/msg00016.html>.
+       * tests/test-sys_select.c, tests/test-sys_time.c (verify_tv_sec_type):
+       Allow platforms like 64-bit OpenBSD where timeval's tv_sec is
+       wider than time_t.
+
+2013-08-09  Pádraig Brady <P@draigBrady.com>
+
+       bootstrap: support checksum utils having -c but not --status
+       * build-aux/bootstrap: Only look for sha1sum if updating po files.
+       Add sha1 to the list of supported checksum utils since it's now
+       supported through adjustments below.
+       (update_po_files): Remove the use of --status
+       in a way that will suppress all error messages, but since this is
+       only used to minimize updates, it shouldn't cause an issue.
+       Exit early if there is a problem updating the po file checksums.
+       (find_tool): Remove the check for --version support as this
+       is optional as per commit 86186b17.  Don't even check for the
+       presence of the command as if that is needed, it's supported
+       through configuring prerequisites in bootstrap.conf.
+       Prompt that when a tool isn't found, one can define an environment
+       variable to add to the hardcoded search list.
+
+2013-08-05  Jim Meyering  <meyering@fb.com>
+
+       regex: port to non-glibc/lock-using systems
+       Since 29-05-2013 commit, 55ba71f4, compilation on a non-glibc
+       system with GNULIB_LOCK would fail due to absence of the
+       included "glthread/lock.h".  This would affect any package
+       for which the "lock" module is used only by the regex module,
+       and not explicitly used.
+       * m4/regex.m4 (gl_PREREQ_REGEX): Require gl_GLIBC21.
+       * modules/regex (Depends-on) [!GLIBC && $ac_use_included_regex]:
+       Add a dependency on the "lock" module.
+
+2013-07-20  Daiki Ueno  <ueno@gnu.org>
+
+       localecharset: make locale_charset thread-safe on Mac OS X
+       * lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
+       instead of MB_CUR_MAX.
+
+2013-07-20  Daiki Ueno  <ueno@gnu.org>
+
+       gettext: update to version 0.18.3
+       * m4/intl.m4, m4/po.m4: Update from gettext-0.18.3.  In particular,
+       require AC_PROG_SED to allow user to specify custom sed command when
+       generating en@quot PO file.
+
+2013-07-18  Werner Lemberg <wl@gnu.org>  (tiny change)
+
+       bootstrap: use correct source when copying build-aux files
+       * build-aux/bootstrap (gnulib_extra_files): This variable is
+       relative to upstream gnulib layout, not downstream.
+
+2013-07-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tmpdir: fix bug in VMS port
+       * lib/tmpdir.c (path_search) [__VMS]: Never add slash.
+       See Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00026.html>.
+
+2013-07-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tmpdir: port to VMS, to // != /, and to long dirs
+       * lib/tmpdir.c (__libc_secure_getenv) [!_LIBC]: Rename from
+       __secure_getenv, so that we're more like the glibc version.
+       All uses changed.
+       (path_search): Don't put slash after directory if __VMS.
+       Problem reported by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00019.html>.
+       Simplify code to add slash; no need for a loop.
+       Do not remove trailing slash from "//".
+       Do not assume dlen <= INT_MAX.
+
+2013-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: port to --with-included-regex --enable-gcc-warnings non-threaded
+       * lib/regex_internal.h (lock_fini, lock_lock): Rework to avoid
+       gcc warnings in the non-threaded case.  Reported by Charlie Brown in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00015.html>.
+
+       accept4, dup3, pipe2: port to Cygwin
+       Problem reported for Emacs by Ken Brown in <http://bugs.gnu.org/14821>.
+       * lib/accept4.c (accept4) [O_BINARY]:
+       * lib/dup3.c (dup3) [O_BINARY]:
+       * lib/pipe2.c (pipe2) [O_BINARY]:
+       Use set_binary_mode, not setmode.
+       * lib/pipe2.c [!GNULIB_BINARY_IO]: Include binary-io.h.
+       * modules/binary-io (Depends-on): Remove module indicator.
+       These last two bits undo the previous change to pipe2 and binary-io.
+
+2013-07-09  Pádraig Brady  <P@draigBrady.com>
+
+       mountlist: add support for deallocating returned list entries
+       * lib/mountlist.c (free_mount_entry): A new exported function
+       to deallocate a mount list entry.
+       (read_file_system_list): Refactor to use the new deallocation function.
+       Suggested by Anton Ovchinnikov.
+
+2013-07-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11
+       Problem reported by Ulrich Mueller in <http://bugs.gnu.org/14812>.
+       * lib/stdalign.in.h (_Alignas, _Alignof):
+       Port to FreeBSD 9.1, and to C11 and C++11.
+       (_Alignas): Also support ICC.
+       * lib/verify.h (_Static_assert): Undef if <stddef.h> defines it.
+       * m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11.
+
+2013-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fnmatch: don't goto over declaration
+       * lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid
+       undefined behavior for goto over a declaration.
+       Problem reported by Charlie Brown in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00009.html>.
+
+       pipe2: decouple from binary-io a bit
+       This is for Emacs, which needs pipe2 but not binary-io.
+       * lib/pipe2.c [!GNULIB_BINARY_IO]: Don't include binary-io.h.
+       * modules/binary-io (Depends-on): Add module indicator.
+
+2013-07-03  Eric Blake  <eblake@redhat.com>
+
+       mgetgroups: relax license to LGPLv2+
+       * modules/getugroups (License): Change from GPLv3+.
+       * modules/mgetgroups (License): Likewise.
+       * modules/getgroups (License): Change from LGPLv3+.
+
+       xalloc-oversized: relax license to LGPLv2+
+       * modules/xalloc-oversized (License): Change from GPLv3+.
+
+       nproc: relax license to LGPLv2+
+       * modules/nproc (License): Change from LGPLv3+.
+
+       bootstrap: honor --no-git
+       * build-aux/bootstrap: Don't even try to use git when user is
+       pointing to a static checkout.
+
+2013-06-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       ignore-value: port to gcc -pedantic
+       * lib/ignore-value.h (ignore_value):
+       Port to gcc -pedantic, by using __extension__.
+       Reindent as per usual gnulib style nowadays.
+       Simplify GCC version check.
+
+2013-06-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       extern-inline: port to gcc -std=c89
+       * m4/extern-inline.m4 (gl_EXTERN_INLINE):
+       Do not use __gnu_inline__ if pedantic and pre-C99.
+
+2013-06-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: document extern-inline
+       * doc/extern-inline.texi: New file.
+       * doc/gnulib.texi (alloca-opt): Include it.
+       * m4/extern-inline.m4: Move some comments to documentation,
+       and others closer to what they describe.
+
+       doc: chatter less
+       * doc/Makefile (NEWEST_GNULIB_TEXI_FILE): New macro.
+       (updated-stamp): Use it.  This causes 'make' to output just
+       one file name rather than zillions.
+
+       fflush, fseeko: port to musl cross-compiles
+       * lib/fseeko.c (fseeko): Assume that fflushing stdin works if
+       on some implementation that (1) is not known to be buggy,
+       (2) claims conformance to POSIX.1-2008 or later, and (3) is being
+       cross-compiled to so we can't easily check for lack of
+       conformance.  This is for cross-compiling to musl.
+       Reported by Rich Felker in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00043.html>.
+       * m4/fclose.m4 (gl_FUNC_FCLOSE):
+       * m4/fflush.m4 (gl_FUNC_FFLUSH):
+       * m4/fseeko.m4 (gl_FUNC_FSEEKO):
+       Adjust to above change.
+       * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Set gl_cv_func_fflush_stdin
+       to 'cross', not to 'no', when cross-compiling.  AC_DEFINE
+       FUNC_FFLUSH_STDIN to 1, 0, -1 if fflushing stdin is known to work,
+       known not to work, or unknown.
+
+2013-06-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       msvc-inval: port to mingw-w64
+       * lib/msvc-inval.c (gl_msvc_invalid_parameter_handler):
+       Use __cdecl, not cdecl, for mingw-w64.  Reported by LRN in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00039.html>.
+
+2013-06-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       getcwd-lgpl: port to Tru64
+       * lib/getcwd-lgpl.c: Include <stdlib.h>, for malloc etc.
+       Problem reported by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
+
+       tests: port large-fd POSIX spawn tests to OS X
+       Problem reported by Daiki Ueno in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00031.html>.
+       * tests/test-posix_spawn_file_actions_addclose.c:
+       * tests/test-posix_spawn_file_actions_adddup2.c:
+       * tests/test-posix_spawn_file_actions_addopen.c:
+       Include <limits.h>, for OPEN_MAX, if available.
+       (big_fd): New static function.
+       (main): Use it.
+
+2013-06-04  Bernhard Voelker  <mail@bernhard-voelker.de>
+
+       tests/nap.h: use an adaptive delay to avoid ctime update issues
+       The recent change in nap.h (5191133e) decreased the probability of lost
+       races to about a third, however such problems could still be observed
+       in virtual machines and openSUSE's OBS.
+       Before, nap() detected the needed time once empirically and then used
+       that delay (together with a small correction multiplier) in further
+       calls.  This problem has been reported and discussed several times,
+       including guesses about possible kernel issues:
+       https://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00071.html
+       http://lists.gnu.org/archive/html/coreutils/2012-03/msg00088.html
+       https://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00226.html
+       http://bugs.gnu.org/12820
+       https://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00113.html
+       https://lists.gnu.org/archive/html/bug-gnulib/2009-11/msg00007.html
+       Now, nap() avoids the race alltogether by verifying on a reference
+       file whether a timestamp difference has happened.
+       * tests/nap.h (nap_fd): Define file descriptor variable for the
+       witness file.
+       (nap_works): Change return value to bool.  Change passing
+       the old file's status by value instead of by reference as this function
+       does no longer update that timestamp; rename the function argument from
+       st to old_st.  Remove the local variables cdiff and mdiff because that
+       function now returns true/false instead of the precise delay.
+       (guess_delay): Remove function.
+       (clear_tmp_file): Add new function to close and unlink the witness file.
+       (nap): Instead of re-using the delay which has been calculated during
+       the first call, avoid the race by actually verifying that a timestamp
+       difference can be observed on the current file system.  Use an adaptive
+       approach for the delay to minimize execution time.  Assert that the
+       maximum delay is <= ~2 seconds, more precisely sum(2^n) from 0 to 30
+       = 2^31 - 1 = 2.1s.
+       Use atexit to call clear_tmp_file when the process terminates.
+
+2013-06-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sig2str: port to C++
+       * lib/sig2str.h (sig2str, str2sig): Declare as extern "C".
+       Reported by Daniel J Sebald in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00000.html>.
+
+2013-05-30  Eric Blake  <eblake@redhat.com>
+
+       docs: mention cygwin shortcoming in <sys/un.h>
+       * doc/posix-headers/sys_un.texi (sys/un.h): Mention problem.
+
+       vasnprintf: silence mingw compiler warning
+       * lib/vasnprintf.c (VASNPRINTF): Avoid unused variable warning.
+
+2013-05-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       c-ctype, regex, verify: port to gcc -std=c90 -pedantic
+       Avoid constructions that are rejected by gcc -std=c90 -pedantic.
+       This fixes a porting bug I recently reintroduced in regex, and
+       some other instances that I discovered while testing the fix.
+       * lib/c-ctype.h [__STRICT_ANSI__]: Avoid ({ ... }).
+       * lib/regcomp.c (utf8_sb_map) [__STRICT_ANSI__]: Avoid [0 ... N] = E.
+       * lib/regex_internal.h [!_LIBC && GNULIB_LOCK]: Do not use a macro
+       with an empty argument if this is a pedantic pre-C99 GCC.
+       * lib/verify.h: Do not use _Static_assert if this is a pedantic
+       pre-C11 GCC.
+
+       regex: adapt to locking regime instead of depending on pthread
+       Instead of depending on pthread, adapt to whatever thread
+       modules are in use.  Problem reported by Ludovic Courtès in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00082.html>
+       and by Mats Erik Andersson in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00100.html>.
+       * lib/regex_internal.h (lock_define, lock_init, lock_fini):
+       Support either the 'lock' module, or the 'pthread' module, or
+       no module.
+       (lock_lock, lock_unlock): New macros.
+       * lib/regexec.c (regexec, re_search_stub): Use the new macros.
+       * modules/lock, modules/pthread (configure.ac): Add module indicator.
+       * modules/regex (Depends-on): Remove pthread.
+
+2013-05-22  Eric Blake  <eblake@redhat.com>
+
+       getgroups: document portability issues
+       * doc/glibc-functions/initgroups.texi (initgroups): Mention
+       multithread safety.
+       * doc/posix-functions/getpwuid.texi (getpwuid): Likewise.
+       * doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise.
+       * doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention
+       getugroups.
+       * doc/posix-functions/getgroups.texi (getgroups): Mention
+       multithread safety and mgetgroups.
+
+2013-05-22  Bernhard Voelker <mail@bernhard-voelker.de>
+
+       test-lchown, test-chown: also skip test if chown fails with EPERM
+       * tests/test-lchown.h (test_lchown): Add EPERM to the condition to
+       skip this test, to handle FAT file systems.
+       * tests/test-chown.h (test_chown): Likewise.
+
+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.
 
        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.
+       Simply delegate to the system <sys/time.h> in this case.
 
 2013-03-19  Karl Berry  <karl@gnu.org>