X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=ChangeLog;h=01dca102a682b0d414fd014130415daa82ca057b;hb=0a47086e94a3077e6f49a6df8cd0a03e0ac88b56;hp=08f2fe0bf3dbb939898a42230c787e2f242b8590;hpb=26c6620f1799962b5f31cb8d66e79d73762fd160;p=gnulib.git diff --git a/ChangeLog b/ChangeLog index 08f2fe0bf..01dca102a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,808 @@ +2013-10-06 Paul Eggert + + New module 'count-trailing-zeros'. + * MODULES.html.sh: Mention it. + * lib/count-trailing-zeros.c, lib/count-trailing-zeros.h: + * m4/count-trailing-zeros.m4, modules/count-trailing-zeros: + * modules/count-trailing-zeros-tests: + * tests/test-count-trailing-zeros.c: + New files. + + count-leading-zeros: port to MSC; support types wider than 64 bits + The ideas behind the MSC port are stolen from Emacs. + * lib/count-leading-zeros.h: + Don't include verify.h: it's no longer needed, as types wider than + 64 bits are now supported. + (COUNT_LEADING_ZEROS): New arg MSC_BUILTIN, for better + performance with MSC. All uses changed. Do not assume that TYPE + has at most 64 bits. + (count_leading_zeros_32): Assume 0 < X < 2**32, for speed. + All uses changed. Fold the subtraction from 31 into the table. + + count-one-bits: port to MSC; support types wider than 64 bits + The ideas behind the MSC port are stolen from Emacs. + * lib/count-one-bits.c (popcount_support) [_MSC_VER]: New variable. + * lib/count-one-bits.h: Include limits.h, for CHAR_BIT. + Don't include verify.h: it's no longer needed, as types wider than + 64 bits are now supported. + (COUNT_ONE_BITS_GENERIC): New macro. + (popcount_supported) [_MSC_VER]: New inline function. + (COUNT_ONE_BITS): Use it. New arg MSC_BUILTIN, for better + performance with MSC. All uses changed. Do not assume that TYPE + has at most 64 bits. + * modules/count-one-bits (Depends-on): Do not depend on 'verify'. + +2013-10-06 Andrew Borodin + + mountlist: fix resource leak with MOUNTED_INTERIX_STATVFS + * lib/mountlist.c (read_file_system_list): fix leak of directory + streams in case of #ifdef MOUNTED_INTERIX_STATVFS. + +2013-10-06 Paul Eggert + + tests: improve diagnostic when an assertion fails + * tests/macros.h (ASSERT): Report the assertion that failed. + +2013-10-02 Paul Eggert + + 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 + + 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 + + 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 + + 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 + + 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 + + warnings: port --enable-gcc-warnings to Solaris Studio 12.3 + Problem reported by Dagobert Michelsen via Eric Blake in + . + * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use AC_LINK_IFELSE, + not AC_COMPILE_IFELSE. + +2013-09-23 Eric Blake + + 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 + + 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 + + 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 + + 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 + + fflush, freadahead, fseeko: Fix for Android + Suggested by Bruno Haible in: + + * lib/stdio-impl.h: Use local __sfileext definition. + +2013-09-17 Mats Erik Andersson + + 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 (tiny change) + + getgroups: statement without effect + * lib/getgroups.c (rpl_getgroups) [HAVE_GETGROUPS]: + Change equality conditional to expected assignment. + +2013-09-09 Eric Blake + + glob: fix compilation + * lib/glob.in.h (__THROW): Fix missing line in previous commit. + +2013-09-07 Eric Blake + + glob: fix build for platforms without __THROW + * lib/glob.in.h (__THROW): Add definition again. + +2013-09-04 Anton Ovchinnikov (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 + + 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 + + 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 + + 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 + + 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 + + * m4/intl.m4: Update from gettext-0.18.3.1, which fixes a misuse + of AC_CHECK_DECLS. + +2013-08-23 Paul Eggert + + 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 + + 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 (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 + + 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 + + * 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 + + 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 + + fpending: port to recent Cygwin change to stdio_ext.h + Reported by LRN in + . + * 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 + + 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 + . + * 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 + + 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 + + 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 + + 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 + + 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 (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 + + tmpdir: fix bug in VMS port + * lib/tmpdir.c (path_search) [__VMS]: Never add slash. + See Steven M. Schweda in + . + +2013-07-15 Paul Eggert + + 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 + . + 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 + + 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 + . + + accept4, dup3, pipe2: port to Cygwin + Problem reported for Emacs by Ken Brown in . + * 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 + + 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 + + stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11 + Problem reported by Ulrich Mueller in . + * 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 defines it. + * m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11. + +2013-07-06 Paul Eggert + + 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 + . + + 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 + + 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 + + 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 + + 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 + + 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 + . + * 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 + + 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 + . + +2013-06-11 Paul Eggert + + getcwd-lgpl: port to Tru64 + * lib/getcwd-lgpl.c: Include , for malloc etc. + Problem reported by Steven M. Schweda in + . + + tests: port large-fd POSIX spawn tests to OS X + Problem reported by Daiki Ueno in + . + * 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 , for OPEN_MAX, if available. + (big_fd): New static function. + (main): Use it. + +2013-06-04 Bernhard Voelker + + 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 + + sig2str: port to C++ + * lib/sig2str.h (sig2str, str2sig): Declare as extern "C". + Reported by Daniel J Sebald in + . + +2013-05-30 Eric Blake + + docs: mention cygwin shortcoming in + * 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 + + 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 + + and by Mats Erik Andersson in + . + * 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 + + 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 + + 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 + + regex: fix dfa race in multithreaded uses + Problem reported by Ludovic Courtès in + . + * 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 + + 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 + + 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 + + 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 , 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 + . + (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 + . + * m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS): New macro. + (gl_WARN_ADD): Use it. + 2013-05-11 Jim Meyering quotearg: do not read beyond end of buffer @@ -289,7 +1094,7 @@ 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 in this case. + Simply delegate to the system in this case. 2013-03-19 Karl Berry