microoptimization of lib/poll.c
[gnulib.git] / ChangeLog
index 7d08ae6..9273b33 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,637 @@
+2008-08-06  Paolo Bonzini  <bonzini@gnu.org>
+
+       * lib/poll.c (poll): Avoid division when timeout is 0, cache
+       _SC_OPEN_MAX, avoid repeated access to errno.  Check for nfd < 0.
+
+2008-08-06  Jim Meyering  <meyering@redhat.com>
+
+       * modules/inet_pton (License): Relicense under LGPLv2+.
+
+2008-08-03  Bruno Haible  <bruno@clisp.org>
+
+       Additional non-aborting API for lock and tls.
+       * lib/lock.h: Include <errno.h>.
+       (glthread_lock_init): New macro/function.
+       (gl_lock_init): Define as wrapper around glthread_lock_init.
+       (glthread_lock_lock): New macro/function.
+       (gl_lock_lock): Define as wrapper around glthread_lock_lock.
+       (glthread_lock_unlock): New macro/function.
+       (gl_lock_unlock): Define as wrapper around glthread_lock_unlock.
+       (glthread_lock_destroy): New macro/function.
+       (gl_lock_destroy): Define as wrapper around glthread_lock_destroy.
+       (glthread_rwlock_init): New macro/function.
+       (gl_rwlock_init): Define as wrapper around glthread_rwlock_init.
+       (glthread_rwlock_rdlock): New macro/function.
+       (gl_rwlock_rdlock): Define as wrapper around glthread_rwlock_rdlock.
+       (glthread_rwlock_wrlock): New macro/function.
+       (gl_rwlock_wrlock): Define as wrapper around glthread_rwlock_wrlock.
+       (glthread_rwlock_unlock): New macro/function.
+       (gl_rwlock_unlock): Define as wrapper around glthread_rwlock_unlock.
+       (glthread_rwlock_destroy): New macro/function.
+       (gl_rwlock_destroy): Define as wrapper around glthread_rwlock_destroy.
+       (glthread_recursive_lock_init): New macro/function.
+       (gl_recursive_lock_init): Define as wrapper around
+       glthread_recursive_lock_init.
+       (glthread_recursive_lock_lock): New macro/function.
+       (gl_recursive_lock_lock): Define as wrapper around
+       glthread_recursive_lock_lock.
+       (glthread_recursive_lock_unlock): New macro/function.
+       (gl_recursive_lock_unlock): Define as wrapper around
+       glthread_recursive_lock_unlock.
+       (glthread_recursive_lock_destroy): New macro/function.
+       (gl_recursive_lock_destroy): Define as wrapper around
+       glthread_recursive_lock_destroy.
+       (glthread_once): New macro/function.
+       (gl_once): Define as wrapper around glthread_once.
+       Update function declarations.
+       * lib/lock.c (glthread_rwlock_init_multithreaded): Renamed from
+       glthread_rwlock_init. Return error code.
+       (glthread_rwlock_rdlock_multithreaded): Renamed from
+       glthread_rwlock_rdlock. Return error code.
+       (glthread_rwlock_wrlock_multithreaded): Renamed from
+       glthread_rwlock_wrlock. Return error code.
+       (glthread_rwlock_unlock_multithreaded): Renamed from
+       glthread_rwlock_unlock. Return error code.
+       (glthread_rwlock_destroy_multithreaded): Renamed from
+       glthread_rwlock_destroy. Return error code.
+       (glthread_recursive_lock_init_multithreaded): Renamed from
+       glthread_recursive_lock_init. Return error code.
+       (glthread_recursive_lock_lock_multithreaded): Renamed from
+       glthread_recursive_lock_lock. Return error code.
+       (glthread_recursive_lock_unlock_multithreaded): Renamed from
+       glthread_recursive_lock_unlock. Return error code.
+       (glthread_recursive_lock_destroy_multithreaded): Renamed from
+       glthread_recursive_lock_destroy. Return error code.
+       (glthread_once_call): Make static.
+       (glthread_once_multithreaded): Renamed from glthread_once.
+       * lib/tls.h: Include <errno.h>.
+       (glthread_tls_key_init): New macro/function.
+       (gl_tls_key_init): Define as wrapper around glthread_tls_key_init.
+       (glthread_tls_set): New macro/function.
+       (gl_tls_set): Define as wrapper around glthread_tls_set.
+       (glthread_tls_key_destroy): New macro/function.
+       (gl_tls_key_destroy): Define as wrapper around glthread_tls_key_destroy.
+       Update function declarations.
+       * lib/tls.c (glthread_tls_get_multithreaded): Renamed from
+       glthread_tls_get.
+       Suggested by Yoann Vandoorselaere <yoann@prelude-ids.org>.
+
+2008-08-04  Eric Blake  <ebb9@byu.net>
+
+       gnumakefile: use space, not TAB, outside of targets
+       * top/GNUmakefile (_dummy): Fix whitespace error in prior edit.
+
+2008-08-02  Jim Meyering  <meyering@redhat.com>
+
+       getdate.y: avoid locale-dependent date parsing failure
+       In Turkish locales, getdate would fail to recognize keywords
+       containing a lowercase "i".  The solution is not to rely on
+       locale-sensitive case-conversion.
+       * lib/getdate.y: Include <c-ctype.h> rather than <ctype.h>.
+       (lookup_word): Use c_toupper in place of toupper.
+       (yylex, get_date): Use c_ prefixed variants of isspace and isalpha, too.
+       Reported by Vefa Bicakci <bicave@superonline.com> in
+       <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14184>.
+       * modules/getdate (Depends-on): Add c-ctype.
+
+2008-08-02  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_import): When updating or creating a .gitignore
+       file, prepend each added line with a slash, and ignore leading slashes
+       from the existing lines.
+       Reported by Joel E. Denny <jdenny@ces.clemson.edu>.
+
+2008-08-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Portability fix for GNU make 3.79.1.
+       * top/GNUmakefile: Avoid 'else COND', which older GNU make
+       versions do not understand.
+
+2008-08-01  Bruno Haible  <bruno@clisp.org>
+
+       Work around bug of HP-UX 10.20 cc with -0.0 literal.
+       * tests/test-isnanf.h (zero): New variable.
+       (main): Avoid literal -0.0f.
+       * tests/test-isnand.h (zero): New variable.
+       (main): Avoid literal -0.0.
+       * tests/test-isnanl.h (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-isnan.c (zerof, zerod, zerol): New variables.
+       (test_float, test_double, test_long_double): Avoid literals -0.0f,
+       -0.0, -0.0L.
+       * tests/test-signbit.c (test_signbitf): Avoid literal -0.0f.
+       (test_signbitd): Avoid literal -0.0.
+       (test_signbitl): Avoid literal -0.0L.
+       * tests/test-ceilf1.c (zero): New variable.
+       (main): Avoid literal -0.0f.
+       * tests/test-ceill.c (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-floorf1.c (zero): New variable.
+       (main): Avoid literal -0.0f.
+       * tests/test-floorl.c (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-roundf1.c (zero): New variable.
+       (main): Avoid literal -0.0f.
+       * tests/test-round1.c (zero): New variable.
+       (main): Avoid literal -0.0.
+       * tests/test-roundl.c (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-truncf1.c (zero): New variable.
+       (main): Avoid literal -0.0f.
+       * tests/test-trunc1.c (zero): New variable.
+       (main): Avoid literal -0.0.
+       * tests/test-truncl.c (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-frexp.c (zero): New variable.
+       (main): Avoid literal -0.0.
+       * tests/test-frexpl.c (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-ldexpl.c (zero): New variable.
+       (main): Avoid literal -0.0L.
+       * tests/test-snprintf-posix.h (have_minus_zero): Avoid literal -0.0.
+       (zerod, zerol): New variables.
+       (test_function): Avoid literals -0.0, -0.0L.
+       * tests/test-sprintf-posix.h (have_minus_zero): Avoid literal -0.0.
+       (zerod, zerol): New variables.
+       (test_function): Avoid literals -0.0, -0.0L.
+       * tests/test-vasnprintf-posix.c (have_minus_zero): Avoid literal -0.0.
+       (zerod, zerol): New variables.
+       (test_function): Avoid literals -0.0, -0.0L.
+       * tests/test-vasprintf-posix.c (have_minus_zero): Avoid literal -0.0.
+       (zerod, zerol): New variables.
+       (test_function): Avoid literals -0.0, -0.0L.
+       * tests/test-strtod.c (zero): New variable.
+       (main): Avoid literal -0.0.
+       Reported by Jonathan C. Patschke <jp@centtech.com>.
+
+2008-07-31  Jim Meyering  <meyering@redhat.com>
+
+       sha256.h: correct definition of SHA224_DIGEST_SIZE
+       * lib/sha256.h (SHA224_DIGEST_SIZE): Define to 28, not 24.
+       Reported by Paulie Pena IV <paulie4@gmail.com>.
+       Define as 224 / 8, rather than as a literal.
+       (SHA256_DIGEST_SIZE): Define as 256/8 rather than equivalent literal.
+       * lib/sha512.h (SHA384_DIGEST_SIZE): Likewise, define as equiv: 384/8.
+       (SHA512_DIGEST_SIZE): Likewise, define as equivalent quotient: 512/8.
+
+2008-07-31  Bruno Haible  <bruno@clisp.org>
+
+       * lib/regex_internal.h (BITSET_WORD_BITS): Make first conditional work
+       on HP-UX 10.20 with "cc -Ae". Fix second conditional.
+       Reported by Jonathan Patschke <jp@centtech.com>.
+
+2008-07-31  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_import): Make change from 2008-06-23 more robust.
+       Reported by Paolo Bonzini <bonzini@gnu.org>.
+
+2008-07-30  Eric Blake  <ebb9@byu.net>
+
+       test-strtod: allow compilation without -lm
+       * tests/test-strtod.c (main): Avoid link dependence on fabs.
+       Reported by Dennis Clarke <blastwave@gmail.com>.
+
+2008-07-28  Jim Meyering  <meyering@redhat.com>
+
+       bootstrap: work also when there are no .po files in po/
+       * build-aux/bootstrap (update_po_files): Complete the change
+       that I began in bc960df8c789c878f1c1c54a28a3c2648dead8d9.
+
+2008-07-27  Jim Meyering  <meyering@redhat.com>
+
+       * users.txt: Add zile.
+
+2008-07-26  Ben Pfaff  <blp@gnu.org>
+
+       Add missing dependencies on new m4/exponent[fdl].m4 files.
+       * modules/isnanf-nolibm: Add m4/exponentf.m4.
+       * modules/isnand-nolibm: Add m4/exponentd.m4.
+       * modules/isnanl-nolibm: Add m4/exponentl.m4.
+       * modules/signbit-tests: Use m4/exponent[fdl].m4 instead of
+       m4/isnan[fdl].m4, because the macros actually used moved.
+       Reported by Jim Meyering.
+
+2008-07-14  Ben Pfaff  <blp@gnu.org>
+
+       Add isinf module.
+       * lib/isinf.c: New file.
+       * lib/math.in.h: Define isinf macro if we have decided to replace
+       it.
+       * m4/isinf.m4: New file.
+       * m4/math_h.m4: Initialize and substitute variables for isinf
+       module.
+       * modules/isinf: New file.
+       * modules/isinf-tests: New file.
+       * modules/math: Add substitutions for new module.
+       * tests/test-isinf.c: New file.
+       * doc/posix-functions/isinf.texi: Mention new module.
+       * MODULES.html.sh: Mention new module.
+
+2008-07-14  Ben Pfaff  <blp@gnu.org>
+
+       Factor out some macros for use by additional modules.
+       * m4/isnanf.m4 (gl_FLOAT_EXPONENT_LOCATION): Move into new file
+       exponentf.m4.
+       * m4/isnand.m4 (gl_DOUBLE_EXPONENT_LOCATION): Move into new file
+       exponentd.m4.
+       * m4/isnanl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Move into new
+       file exponentl.m4.
+       * m4/exponentf.m4: New file.
+       * m4/exponentd.m4: New file.
+       * m4/exponentl.m4: New file.
+       * modules/isnanf: Use new file m4/exponentf.m4.
+       * modules/isnand: Use new file m4/exponentd.m4.
+       * modules/isnanl: Use new file m4/exponentl.m4.
+
+2008-07-23  Ulrich Drepper  <drepper@redhat.com>
+
+       mktime.c: normalize tp->tm_isdst value to -1/0/1.
+       * lib/mktime.c (__mktime_internal): Normalize tp->tm_isdst value.
+       Reported by Michael Ringe <Michael.Ringe@gmx.de> in
+       <http://sourceware.org/bugzilla/show_bug.cgi?id=6723>.
+
+       * lib/canonicalize-lgpl.c (__realpath): Avoid buffer overflow after
+       readlink on platforms without PATH_MAX.
+
+2008-07-21  Eric Blake  <ebb9@byu.net>
+
+       Warn, not fail, on stale version.
+       * top/GNUmakefile (_curr-ver): Tone down previous patch.
+
+       Don't allow installation with stale devel version number.
+       * top/GNUmakefile (_is-install-target): New macro.
+       (_curr-ver): Forbid installation with stale version number.
+
+2008-07-20  Bruno Haible  <bruno@clisp.org>
+
+       * modules/c-stack-tests (Makefile.am): Add LIBSIGSEGV to
+       TESTS_ENVIRONMENT.
+       * tests/test-c-stack2.sh: React differently if LIBSIGSEGV is in use.
+
+2008-07-20  Bruno Haible  <bruno@clisp.org>
+
+       * lib/c-stack.h (c_stack_action): Add documentation.
+       * lib/c-stack.c (c_stack_action): Remove incomplete documentation.
+
+2008-07-20  Bruno Haible  <bruno@clisp.org>
+
+       * modules/canonicalize-lgpl (License): Relicense under LGPLv2+.
+       * modules/readlink (License): Likewise.
+
+2008-07-17  Eric Blake  <ebb9@byu.net>
+
+       * modules/c-stack (Link): Fix typo.
+
+       Make c-stack use libsigsegv, when available.
+       * modules/c-stack (Depends-on): Add libsigsegv.
+       * modules/c-stack-tests (Makefile.am): Link with libsigsegv, if
+       needed.
+       * lib/c-stack.c (SIGSTKSZ): Define fallback.
+       (segv_handler, overflow_handler, c_stack_action)
+       [HAVE_LIBSIGSEGV && !HAVE_XSI_STACK_OVERFLOW_HEURISTIC]: Add new
+       implementation when libsigsegv is available, but only when using
+       the library is necessary.
+       * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Add
+       comment, explaining why XSI check fails on Linux.
+       (gl_PREREQ_C_STACK): Supply LIBCSTACK, LTLIBCSTACK.
+       * tests/test-c-stack2.sh: Tweak skip message.
+       * NEWS: Document new link-time requirements.
+
+2008-07-16  Eric Blake  <ebb9@byu.net>
+
+       c-stack: Expose false positives when not using libsigsegv.
+       * modules/c-stack-tests (Files): Expand test.
+       * tests/test-c-stack.c (main): Add means to conditionally trigger
+       non-overflow SIGSEGV.
+       * tests/test-c-stack2.sh: New file.
+
+2008-07-14  Bruno Haible  <bruno@clisp.org>
+
+       * m4/libsigsegv.m4: Remove unneeded AC_PREREQ.
+       Reported by Eric Blake.
+
+2008-07-14  Sam Steingold  <sds@gnu.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       New module libsigsegv.
+       * modules/libsigsegv: New file.
+       * m4/libsigsegv.m4: New file, from GNU clisp sigsegv.m4 with
+       modifications.
+       * MODULES.html.sh (Signal handling): New section.
+
+2008-07-14  Bruno Haible  <bruno@clisp.org>
+
+       * modules/unictype/ctype-* (Description): Add the word "function".
+       Improves the resulting doc in MODULES.html.
+
+2008-07-12  Ben Pfaff  <blp@gnu.org>
+
+       Add longlong module.
+       * modules/longlong: New file.
+
+2008-07-12  Bruno Haible  <bruno@clisp.org>
+
+       * m4/isnan.m4 (gl_ISNAN): When the replacement is used, set ISNAN_LIBM
+       to empty.
+
+2008-07-10  Ben Pfaff  <blp@gnu.org>
+
+       Add isnan module.
+       * doc/posix-functions/isnan.texi: Mention new module.
+       * lib/math.in.h: Define isnan macro if we have decided to replace
+       it.
+       * m4/isnan.m4: New file.
+       * m4/isnanl.m4 (gl_FUNC_ISNANL): Factor out some code into new
+       macro gl_BUILD_ISNANL so that isnan.m4 can use that functionality
+       also.
+       (gl_FUNC_ISNANL_NO_LIBM): Factor out same code, to reduce
+       redundancy.
+       * m4/math_h.m4: Initialize and substitute variables for isnan
+       module.
+       * modules/isnan: New file.
+       * modules/isnan-tests: New file.
+       * modules/math: Add substitutions for new module.
+       * tests/test-isnan.c: New file.
+       * MODULES.html.sh: Mention new module.
+
+2008-07-10  Ben Pfaff  <blp@gnu.org>
+
+       Add isnanf module.
+       * lib/isnanf.m4: New file.
+       * m4/isnanf.m4 (gl_FUNC_ISNANF): New macro.
+       (gl_HAVE_ISNANF_IN_LIBM): New macro.
+       (gl_BUILD_ISNANF): New macro used by gl_FUNC_ISNANF,
+       gl_FUNC_ISNANF_NO_LIBM, and gl_FUNC_ISNAN.
+       * modules/isnanf: New file.
+       * modules/isnanf-tests: New file.
+       * modules/isnanf-nolibm-tests: Add tests/test-isnanf.h to list of
+       files.
+       * tests/test-isnanf-nolibm.c: factored most of its contents into
+       new file tests/test-isnanf.h.
+       * tests/test-isnanf.h: New file.
+       * tests/test-isnanf.c: New file.
+       * MODULES.html.sh: Mention new module.
+       * doc/glibc-functions/isnanf.texi: Mention new module.
+
+2008-07-10  Ben Pfaff  <blp@gnu.org>
+
+       Add isnand module.
+       * lib/isnand.h: New file.
+       * m4/isnand.m4 (gl_FUNC_ISNAND): New macro.
+       (gl_FUNC_ISNAND_NO_LIBM): Split partially into new macro
+       gl_HAVE_ISNAND_NO_LIBM so that gl_FUNC_ISNAND can use that
+       functionality also.
+       (gl_BUILD_ISNAND): New macro used by gl_FUNC_ISNAND,
+       gl_FUNC_ISNAND_NO_LIBM, and gl_FUNC_ISNAN.
+       (gl_HAVE_ISNAND_IN_LIBM): New macro.
+       * modules/isnand: New file.
+       * modules/isnand-tests: New file.
+       * modules/isnand-nolibm-tests: Add tests/test-isnand.h to list of
+       files.
+       * tests/test-isnand-nolibm.c: factored most of its contents into
+       new file tests/test-isnand.h.
+       * tests/test-isnand.h: New file.
+       * tests/test-isnand.c: New file.
+       * MODULES.html.sh: Mention new module.
+
+2008-07-10  Ben Pfaff  <blp@gnu.org>
+
+       * lib/isnanf.h: Rename lib/isnanf-nolibm.h.
+       * lib/isnand.h: Rename lib/isnand-nolibm.h.
+       * tests/test-isnanf.c: Rename tests/test-isnanf-nolibm.c.
+       * tests/test-isnand.c: Rename tests/test-isnand-nolibm.c.
+       * modules/isnanf-nolibm: Update references to renamed files.
+       * modules/isnand-nolibm: Likewise.
+       * modules/isnanf-nolibm-tests: Likewise.
+       * modules/isnand-nolibm-tests: Likewise.
+       * lib/frexp.c: Likewise.
+       * lib/isfinite.c: Likewise.
+       * lib/signbitd.c: Likewise.
+       * lib/signbitf.c: Likewise.
+       * lib/vasnprintf.c: Likewise.
+       * tests/test-ceilf1.c: Likewise.
+       * tests/test-ceilf2.c: Likewise.
+       * tests/test-floorf1.c: Likewise.
+       * tests/test-floorf2.c: Likewise.
+       * tests/test-frexp.c: Likewise.
+       * tests/test-round1.c: Likewise.
+       * tests/test-round2.c: Likewise.
+       * tests/test-roundf1.c: Likewise.
+       * tests/test-strtod.c: Likewise.
+       * tests/test-trunc1.c: Likewise.
+       * tests/test-trunc2.c: Likewise.
+       * tests/test-truncf1.c: Likewise.
+       * tests/test-truncf2.c: Likewise.
+       * NEWS: Mention the renamed header files.
+
+2008-07-11  Jim Meyering  <meyering@redhat.com>
+
+       vc-list-files: make the last-resort awk code more portable
+       * build-aux/vc-list-files: Don't rely on awk's "sub" command.
+       /bin/awk from OpenSolaris 11's SUNWesu version 2008.03.22.10.56
+       does not support it.
+
+2008-07-10  Eric Blake  <ebb9@byu.net>
+
+       Work with tar's bootstrap.
+       * gnulib-tool (func_emit_initmacro_end): Use m4_defn in the case
+       where LIBSOURCES_DIR contains .#bootmp but must not be treated as
+       an m4 comment.
+
+2008-07-09  Jim Meyering  <meyering@redhat.com>
+
+       posix-shell.m4: fix typo that made this test malfunction
+       * m4/posix-shell.m4: Remove capitalization in variable name.
+
+2008-07-08  Bruno Haible  <bruno@clisp.org>
+
+       * m4/onceonly.m4: Update comments.
+       Reported by Ben Pfaff <blp@cs.stanford.edu>.
+
+2008-07-04  Jim Meyering  <meyering@redhat.com>
+
+       * users.txt: Add vc-dwim.
+       (bison, coreutils): Use the gitweb URL.
+
+2008-07-03  Jim Meyering  <meyering@redhat.com>
+
+       * users.txt: Add libffcall.  From Sam Steingold.
+
+2008-07-03  Ondřej Vašík  <ovasik@redhat.com>
+
+       getdate.y: do not ignore TZ with relative day, month or year offset
+       * lib/getdate.y (get_date): Move the tz-handling block to follow the
+       relative-date-handling, since otherwise, the latter would clobber the
+       sole output (an updated Start value) of the tz-handling block.
+       * tests/test-getdate.c: Tests for the fix
+
+2008-07-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Recognize 'foo_LIBRARIES += libgnu.a'.
+       * gnulib-tool (func_emit_lib_Makefile_am): Recognize if a
+       makefile snippet has already specified an installation location,
+       also using '+='.
+
+2008-07-02  Ondřej Vašík  <ovasik@redhat.com>
+
+       getdate.y: factor out common actions
+       * lib/getdate.y (apply_relative_time, set_hhmmss): New functions.
+       Use them in place of open-coded actions.
+
+2008-07-01  Simon Josefsson  <simon@josefsson.org>
+
+       Add self-test for getdate module.
+       * modules/getdate-tests: New file.
+       * tests/test-getdate.c: New file.
+
+2008-06-29  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_import): Put gnulib-comp.m4 into .cvsignore or
+       .gitignore.
+       Reported by Sylvain Beucler <beuc@beuc.net>.
+
+2008-06-29  Bruno Haible  <bruno@clisp.org>
+
+       * doc/gnulib-tool.texi (VCS Issues): Mention --no-vc-files option.
+       * m4/gnulib-tool.m4: Update to match current gnulib-tool.
+
+2008-06-29  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_import): Recommend to put gnulib-cache.m4 into
+       EXTRA_DIST.
+       Reported by Sylvain Beucler <beuc@beuc.net>.
+
+2008-06-26  Jim Meyering  <meyering@redhat.com>
+
+       make several modules depend on the "open" module
+       This provides slightly increased consistency when opening-for-write
+       the name of a non-directory spelled with a trailing slash.
+       * modules/chdir-safer: Likewise.
+       * modules/chown: Likewise.
+       * modules/clean-temp: Likewise.
+       * modules/copy-file: Likewise.
+       * modules/fchdir: Likewise.
+       * modules/fcntl-safer: Likewise.
+       * modules/pipe: Likewise.
+       * modules/utime: Likewise.
+       Prompted by Eric Blake and Bruno Haible.
+
+2008-06-24  Andreas Schwab  <schwab@suse.de>
+
+       * m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Don't test whether compound
+       literals can be used as initializers for global variables.
+
+2008-06-23  Eric Blake  <ebb9@byu.net>
+
+       Make gnulib-cache.m4 easier to diff.
+       * gnulib-tool (func_import): Allow newlines when reading cached
+       gl_MODULES, and generate newlines when creating gnulib-cache.m4.
+
+2008-06-23  Bruno Haible  <bruno@clisp.org>
+
+       * m4/signalblocking.m4 (gl_PREREQ_SIG_HANDLER_H): Remove macro.
+       (gl_PREREQ_SIGPROCMASK): Don't invoke it.
+       * m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): New macro, moved here from
+       m4/signalblocking.m4.
+       (gl_PREREQ_SIGACTION): Don't invoke it.
+       * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Invoke
+       gl_PREREQ_SIG_HANDLER_H.
+       * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise.
+       Don't check for sigaction here.
+
+2008-06-23  Bruno Haible  <bruno@clisp.org>
+
+       * lib/fatal-signal.c (fatal_signal_handler): Update comment.
+       (install_handlers): Don't set the SA_RESETHAND flag.
+
+2008-06-23  Bruno Haible  <bruno@clisp.org>
+
+       * m4/sigaction.m4: Comment fixes.
+       * lib/signal.in.h: Likewise.
+
+2008-06-23  Eric Blake  <ebb9@byu.net>
+
+       Fix typo.
+       * tests/test-sigaction.c (MASK_SA_FLAGS): Add missing operator.
+
+       Avoid SA_ namespace.
+       * tests/test-sigaction.c (MASK_SA_FLAGS): Rename from SA_MASK.
+       Reported by Ralf Wildenhues.
+
+       Avoid test failure due to SA_RESTORER.
+       * tests/test-sigaction.c (SA_MASK): New macro.
+       (main): Avoid failing due to extension flags being set.
+       Reported by Jim Meyering.
+
+       Revert use of sig-handler.h in sigprocmask.c.
+       * modules/sigprocmask (Files): Don't rely on sig-handler.h, since
+       it requires the existence of struct sigaction.
+       * lib/sigprocmask.c (handler_t): Restore typedef.
+       (rpl_signal, old_handlers): Use local type.
+
+2008-06-22  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-stdint.c: Disable the INTMAX_MAX preprocessor test
+       conditionally.
+       Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
+
+2008-06-22  Bruno Haible  <bruno@clisp.org>
+
+       * doc/posix-functions/siginterrupt.texi: Move note.
+
+       * lib/signal.in.h (SA_RESTART): New macro.
+       * lib/sigaction.c: Update comment.
+
+       * m4/sigaction.m4 (gl_SIGACTION): Require gl_SIGNAL_H_DEFAULTS.
+
+       * m4/signalblocking.m4 (gl_PREREQ_SIG_HANDLER_H): New macro.
+       (gl_PREREQ_SIGPROCMASK): Invoke it.
+       * m4/sigaction.m4 (gl_PREREQ_SIGACTION): Likewise.
+
+       * lib/nanosleep.c (rpl_nanosleep): Setup newact only when it is needed.
+
+       * lib/sigprocmask.c: Update a comment.
+
 2008-06-21  Eric Blake  <ebb9@byu.net>
 
+       Use sigaction module rather than signal().
+       * modules/c-stack (Depends-on): Add sigaction.
+       * modules/fatal-signal (Depends-on): Likewise.
+       * modules/nanosleep (Depends-on): Likewise.
+       * modules/sigprocmask (Files): Add sig-handler.h.
+       * modules/sigaction (Files): Likewise.
+       * lib/sig-handler.h (get_handler): New file, suggested by Paul
+       Eggert.
+       * lib/c-stack.c (SIGACTION_WORKS): Simplify conditions.
+       (c_stack_action) [!SIGACTION_WORKS]: Use sigaction, not signal.
+       * lib/fatal-signal.c (uninstall_handlers, install_handlers)
+       (init_fatal_signals): Likewise.
+       * lib/nanosleep.c (rpl_nanosleep): Likewise.
+       (siginterrupt): Delete fallback.
+       * lib/sigprocmask.c (handler_t, old_handlers): Use sa_handler_t
+       instead.
+       * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Drop check for
+       siginterrupt.
+
+       New module sigaction, for mingw.
+       * modules/sigaction: New module...
+       * modules/sigaction-tests: ...and its test.
+       * m4/sigaction.m4: New file.
+       * lib/sigaction.c: Likewise.
+       * tests/test-sigaction.c: Likewise.
+       * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Add sigaction variables.
+       * modules/signal (Makefile.am): Likewise.
+       * lib/signal.in.h (!@HAVE_SIGACTION@): Define replacements when
+       needed.
+       * doc/posix-headers/signal.texi (signal.h): Mention provided
+       types.
+       * doc/posix-functions/siginterrupt.texi (siginterrupt): Mention
+       that sigaction is preferable.
+       * doc/posix-functions/sigaction.texi (sigaction): Mention new
+       module.
+       * MODULES.html.sh (Support for systems lacking POSIX:2001): Add
+       sigaction.
+
        Improve robustness of sigprocmask by overriding signal.
        * lib/signal.in.h (rpl_signal): Override signal when sigprocmask
        is in use.