fdopendir: fix bug on MacOS X when low on file descriptors
[pspp] / ChangeLog
index 8c3353026f1ec66fc5b0686481ac9871af72aeb3..4d9c4ea555be80d7757b6aaf1177d29c8b9dcf9b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,534 @@
+2010-11-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fdopendir: fix bug on MacOS X when low on file descriptors
+
+       * lib/fdopendir.c (REPLACE_FCHDIR): #define to 0 if not defined.
+       (fdopendir_with_dup, fd_clone_opendir): Now have extra CWD arg.
+       All callers changed.
+       (fdopendir): Invoke save_cwd at the top level, not after using
+       multiple dup() calls to use up file descriptors.  Then retry
+       fdopendir_with_dup.  This avoids failure with EMFILE if FD is 1
+       less than the maximum number of open file descriptors, because
+       save_cwd fails with errno == EMFILE.  Problem reported by tsteven4
+       on Mac OS X 10.6.4 for tar 1.24
+       <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00084.html>
+       <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00000.html>
+       and for tar 1.25
+       <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00038.html>.
+
+2010-11-07  Bruno Haible  <bruno@clisp.org>
+
+       vasnprintf: Support I flag on glibc systems.
+       * lib/printf-parse.h (FLAG_LOCALIZED): New macro.
+       * lib/printf-parse.c (PRINTF_PARSE): Handle the 'I' flag.
+       * lib/vasnprintf.c (VASNPRINTF): Pass the 'I' flag on to the system's
+       snprintf function.
+       * tests/test-vasnprintf-posix.c (test_function): Test the 'I' flag on
+       glibc systems.
+       * tests/test-vasnprintf-posix3.c: New file.
+       * modules/vasnprintf-posix-tests (Files): Add it.
+       (TESTS, check_PROGRAMS): Add test-vasnprintf-posix3.
+
+2010-11-05  Thien-Thi Nguyen  <ttn@gnuvola.org>  (tiny change)
+
+       [html] Fix copy/paste bug: Use unique name for compiler warnings.
+       * MODULES.html.sh: For compiler warnings, use name
+       `ansic_ext_compwarn' since `ansic_ext_misc' is already taken.
+
+2010-11-05  Eric Blake  <eblake@redhat.com>
+
+       ceil, floor: avoid spurious failure with icc
+       * tests/test-ceilf2.c (ceilf_reference): Avoid icc's use of DAZ
+       [denormals-as-zero] when optimizing without -mieee-fp option.
+       * tests/test-floorf2.c (floorf_reference): Likewise.
+       * tests/test-ceilf1.c (dummy): New function.
+       (main): Use it to outsmart icc's optimization.
+       * tests/test-floorf1.c (dummy, main): Likewise.
+
+       tests: require working signbit
+       * modules/ceilf-tests (Depends-on): Add signbit.
+       * modules/ceill-tests (Depends-on): Likewise.
+       * modules/floorf-tests (Depends-on): Likewise.
+       * modules/floorl-tests (Depends-on): Likewise.
+       * modules/round-tests (Depends-on): Likewise.
+       * modules/roundf-tests (Depends-on): Likewise.
+       * modules/roundl-tests (Depends-on): Likewise.
+       * modules/trunc-tests (Depends-on): Likewise.
+       * modules/truncf-tests (Depends-on): Likewise.
+       * modules/truncl-tests (Depends-on): Likewise.
+
+       strtod: work around icc bug
+       * lib/strtod.c (minus_zero): Define to working value.
+       (strtod): Use it to avoid icc bug.
+
+       copysign: enhance tests
+       * modules/copysign-tests (Files): Add minus-zero.h.
+       * tests/test-copysign.c (main): Also test zeros.
+
+2010-11-04  Eric Blake  <eblake@redhat.com>
+
+       ceil, floor, round, trunc: enhance tests of -0
+       * tests/test-ceilf1.c (main): Ensure correct sign of result.
+       * tests/test-ceill.c (main): Likewise.
+       * tests/test-floorf1.c (main): Likewise.
+       * tests/test-floorl.c (main): Likewise.
+       * tests/test-round1.c (main): Likewise.
+       * tests/test-roundf1.c (main): Likewise.
+       * tests/test-roundl.c (main): Likewise.
+       * tests/test-trunc1.c (main): Likewise.
+       * tests/test-truncf1.c (main): Likewise.
+       * tests/test-truncl.c (main): Likewise.
+
+2010-11-04  Eric Blake  <eblake@redhat.com>
+
+       frexp, tests: work around ICC bug with -zero
+       * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Compute -0.0 in a way that
+       works with more compilers.
+       * tests/minus-zero.h: New file.
+       * modules/ceilf-tests (Files): Include it.
+       * modules/ceill-tests (Files): Likewise.
+       * modules/floorf-tests (Files): Likewise.
+       * modules/floorl-tests (Files): Likewise.
+       * modules/frexp-nolibm-tests (Files): Likewise.
+       * modules/frexp-tests (Files): Likewise.
+       * modules/frexpl-nolibm-tests (Files): Likewise.
+       * modules/frexpl-tests (Files): Likewise.
+       * modules/isnan-tests (Files): Likewise.
+       * modules/isnand-nolibm-tests (Files): Likewise.
+       * modules/isnand-tests (Files): Likewise.
+       * modules/isnanf-nolibm-tests (Files): Likewise.
+       * modules/isnanf-tests (Files): Likewise.
+       * modules/isnanl-nolibm-tests (Files): Likewise.
+       * modules/isnanl-tests (Files): Likewise.
+       * modules/round-tests (Files): Likewise.
+       * modules/roundf-tests (Files): Likewise.
+       * modules/roundl-tests (Files): Likewise.
+       * modules/ldexpl-tests (Files): Likewise.
+       * modules/signbit-tests (Files): Likewise.
+       * modules/snprintf-posix-tests (Files): Likewise.
+       * modules/sprintf-posix-tests (Files): Likewise.
+       * modules/strtod-tests (Files): Likewise.
+       * modules/trunc-tests (Files): Likewise.
+       * modules/truncf-tests (Files): Likewise.
+       * modules/truncl-tests (Files): Likewise.
+       * modules/vsnprintf-posix-tests (Files): Likewise.
+       * modules/vsprintf-posix-tests (Files): Likewise.
+       * modules/vasnprintf-posix-tests (Files): Likewise.
+       * modules/vasprintf-posix-tests (Files): Likewise.
+       * tests/test-ceilf1.c (main): Use it.
+       * tests/test-ceill.c (main): Likewise.
+       * tests/test-floorf1.c (main): Likewise.
+       * tests/test-floorl.c (main): Likewise.
+       * tests/test-frexp.c (main): Likewise.
+       * tests/test-frexpl.c (main): Likewise.
+       * tests/test-isnan.c (main): Likewise.
+       * tests/test-isnand.h (main): Likewise.
+       * tests/test-isnanf.h (main): Likewise.
+       * tests/test-isnanl.h (main): Likewise.
+       * tests/test-ldexpl.c (main): Likewise.
+       * tests/test-round.c (main): Likewise.
+       * tests/test-roundf.c (main): Likewise.
+       * tests/test-roundl.c (main): Likewise.
+       * tests/test-signbit.c (test_signbitf, test_signbitd)
+       (test_signbitl): Likewise.
+       * tests/test-snprintf-posix.h (test_function): Likewise.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+       * tests/test-strtod.c (main): Likewise.
+       * tests/test-trunc1.c (main): Likewise.
+       * tests/test-truncf1.c (main): Likewise.
+       * tests/test-truncl.c (main): Likewise.
+
+       isnanl: work around icc bug
+       * lib/isnan.c (FUNC): Compute run-time NaN under ICC as well.
+
+2010-11-03  Eric Blake  <eblake@redhat.com>
+
+       tests: fix compiler warnings
+       * tests/test-getopt.h (test_getopt): Fix condition.
+       * tests/test-getopt_long.h (test_getopt_long): Likewise.
+       * tests/test-pipe2.c (main): Likewise.
+       * tests/test-quotearg-simple.c (main): Avoid icc warning.
+
+       utimens: fix broken m4 test
+       * m4/utimens.m4 (gl_UTIMENS): Include correct headers.
+
+2010-10-28  Bruno Haible  <bruno@clisp.org>
+
+       posix_spawn*, getdtablesize: Relax license.
+       * modules/posix_spawn (License): Change to LGPLv2+.
+       * modules/posix_spawnp (License): Likewise.
+       * modules/posix_spawn-internal (License): Likewise.
+       * modules/posix_spawnattr_init (License): Likewise.
+       * modules/posix_spawnattr_getflags (License): Likewise.
+       * modules/posix_spawnattr_setflags (License): Likewise.
+       * modules/posix_spawnattr_getpgroup (License): Likewise.
+       * modules/posix_spawnattr_setpgroup (License): Likewise.
+       * modules/posix_spawnattr_getschedparam (License): Likewise.
+       * modules/posix_spawnattr_setschedparam (License): Likewise.
+       * modules/posix_spawnattr_getschedpolicy (License): Likewise.
+       * modules/posix_spawnattr_setschedpolicy (License): Likewise.
+       * modules/posix_spawnattr_getsigdefault (License): Likewise.
+       * modules/posix_spawnattr_setsigdefault (License): Likewise.
+       * modules/posix_spawnattr_getsigmask (License): Likewise.
+       * modules/posix_spawnattr_setsigmask (License): Likewise.
+       * modules/posix_spawnattr_destroy (License): Likewise.
+       * modules/posix_spawn_file_actions_init (License): Likewise.
+       * modules/posix_spawn_file_actions_addclose (License): Likewise.
+       * modules/posix_spawn_file_actions_adddup2 (License): Likewise.
+       * modules/posix_spawn_file_actions_addopen (License): Likewise.
+       * modules/posix_spawn_file_actions_destroy (License): Likewise.
+       * modules/getdtablesize (License): Likewise.
+       Requested by Adam Stokes <ajs@redhat.com> for use in netcf.
+
+2010-10-26  Bruno Haible  <bruno@clisp.org>
+
+       unistd: Refine workaround from 2009-12-23 against Cygwin bug.
+       * lib/unistd.in.h: Don't include <stdio.h> and <fcntl.h>, except on
+       Cygwin and mingw.
+       Suggested by Eric Blake.
+
+2010-10-26  Bruno Haible  <bruno@clisp.org>
+
+       stdio: Work around compilation error due to renameat() on Solaris 10.
+       * lib/stdio.in.h: Include <unistd.h> on Solaris.
+       * lib/renameat.c: Don't include <unistd.h> here.
+       * doc/posix-functions/renameat.texi: Mention the Solaris problem.
+       Reported by Paul Eggert and Eric Blake.
+
+2010-10-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       renameat: port to Solaris 10, which declares renameat in unistd.h
+
+       * lib/renameat.c: Include unistd.h before stdio.h, because
+       Solaris 10 declares renameat in unistd.h.  Problem encountered
+       when building GNU tar 1.24 on Solaris 10.
+
+2010-10-26  Christian Weisgerber  <naddy@mips.inka.de>  (tiny change)
+
+       fdopendir: fix C89 compilation
+       * lib/fdopendir.c (fd_clone_opendir): Move declaration for older
+       compilers.
+
+2010-10-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       inttostr: simplify by removing unnecessary redundancy
+       * lib/anytostr.c: Don't include verify.h.
+       (anytostr): Don't verify that TYPE_SIGNED (inttype) equals
+       inttype_is_signed.  Instead, disable the bogus GCC warnings, so that
+       there's no need for inttype_is_signed and for calling TYPE_SIGNED.
+       * lib/imaxtostr.c (inttype_is_signed): Remove; no longer needed.
+       * lib/inttostr.c, lib/offtostr.c, lib/uinttostr.c, lib/umaxtostr.c:
+       Likewise.
+       * modules/inttostr (Depends-on): Remove 'verify'.
+
+2010-10-23  Bruno Haible  <bruno@clisp.org>
+
+       nl_langinfo: Mention problem with CRNCYSTR on NetBSD 5.0.
+       * doc/posix-functions/nl_langinfo.texi: Mention problem with CRNCYSTR.
+       Reported by Eric Blake.
+
+2010-10-23  Bruno Haible  <bruno@clisp.org>
+
+       Tests: Fix LOCALE_JA on MirBSD 10.
+       * m4/locale-ja.m4 (gt_LOCALE_JA): Reject a locale identifier that leads
+       to an UTF-8 locale.
+       * m4/locale-fr.m4 (gt_LOCALE_FR): Likewise.
+       * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
+       Reported by Eric Blake.
+
+2010-10-21  Bruno Haible  <bruno@clisp.org>
+
+       nl_langinfo test: Avoid test failure on NetBSD 5.
+       * tests/test-nl_langinfo.c (main): Relax test of nl_langinfo(CRNCYSTR).
+       Reported by Eric Blake.
+
+2010-10-21  Eric Blake  <eblake@redhat.com>
+
+       c-stack: work around libsigsegv 2.8 bug
+       * lib/c-stack.c (SIGSTKSZ): Increase size to avoid alternate stack
+       overflow on at least PowerPC64.
+
+2010-10-17  Bruno Haible  <bruno@clisp.org>
+
+       userspec: Drop redundant file.
+       * modules/userspec (Files): Remove lib/inttostr.h.
+
+2010-10-17  Bruno Haible  <bruno@clisp.org>
+
+       nl_langinfo tests: Silence some warnings.
+       * tests/test-nl_langinfo.c: Silence -Wtype-limits warnings.
+       Reported by Jim Meyering.
+
+2010-10-17  Bruno Haible  <bruno@clisp.org>
+
+       Make use of GCC's attribute __alloc_size__.
+       * lib/xalloc.h (ATTRIBUTE_ALLOC_SIZE): New macro.
+       (xmalloc, xzalloc, xcalloc, xrealloc, xmemdup, xnmalloc, xnrealloc,
+       xcharalloc): Declare with ATTRIBUTE_ALLOC_SIZE.
+       * lib/eealloc.h (eemalloc, eerealloc): Declare with attribute
+       __alloc_size__.
+       * lib/pagealign_alloc.h (pagealign_alloc, pagealign_xalloc): Likewise.
+       Suggested by Jim Meyering.
+
+2010-10-16  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       bootstrap: anchor .gitignore entries.
+       * build-aux/bootstrap (insert_sorted_if_absent): Replace all uses
+       with...
+       (insert_vc_ignore): ... this new function, which prepends `/' to
+       all .gitignore entries before passing them to
+       insert_sorted_if_absent.
+
+2010-10-16  Bruno Haible  <bruno@clisp.org>
+
+       nextafter: Fix configure check.
+       * modules/nextafter (configure.ac): Correct expected prototype.
+
+2010-10-16  Bruno Haible  <bruno@clisp.org>
+
+       termios: Update documentation.
+       * doc/posix-headers/termios.texi: Mention remaining mingw problems.
+
+2010-10-16  Bruno Haible  <bruno@clisp.org>
+
+       tests: Make them compile with TinyCC.
+       * tests/test-strstr.c (main): Remove parentheses around array
+       initializer.
+
+2010-10-15  Eric Blake  <eblake@redhat.com>
+
+       ignore-value: make header idempotent
+       * lib/ignore-value.h: Add double-inclusion guards.
+       Reported by Stefan Berger.
+
+2010-10-15  Jim Meyering  <meyering@redhat.com>
+
+       GNUmakefile: handle "stable" target, not "major"
+       * top/GNUmakefile (_is-dist-target): s/major/stable/ to match the
+       lists in maint.mk and announce-gen.  Without this, "make stable"
+       would fail to ensure that $(VERSION) is up to date.
+
+2010-10-15  Ludovic Courtès  <ludo@gnu.org>
+
+       * lib/isnan.c (FUNC): Treat TinyCC (`__TINYC__') like `__SUNPRO_C'
+       & co.
+
+2010-10-14  Bruno Haible  <bruno@clisp.org>
+
+       vasnprintf: Don't set errno to 0.
+       * lib/vasnprintf.c (VASNPRINTF): Save and restore errno around the
+       block that sets it to 0.
+       Reported by Gianluigi Tiesi <sherpya@netfarm.it>.
+
+2010-10-14  Bruno Haible  <bruno@clisp.org>
+
+       socketlib: Fix.
+       * modules/socketlib (Files): Add m4/sys_socket_h.m4. Needed for
+       gl_PREREQ_SYS_H_WINSOCK2.
+       Reported by Ian Beckwith <ianb@erislabs.net>.
+
+2010-10-13  Jim Meyering  <meyering@redhat.com>
+
+       test-select-stdin.c: avoid warn_unused_result warnings
+       * tests/test-select-stdin.c: Include "macros.h".
+       ASSERT that read and fflush succeed.
+
+2010-10-13  Jim Meyering  <meyering@redhat.com>
+
+       git-version-gen: do require git-VC'd files in cwd
+       * build-aux/git-version-gen: Reject a git version string
+       if there are no commits associated with the current directory.
+       This avoids an unlikely false-positive (unrelated dir whose parent
+       repository also contains a tag matching v*), as pointed out
+       by Giuseppe Scrivano in
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=23664
+
+2010-10-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       argv-iter: omit nonconforming declaration
+       * lib/argv-iter.h (enum argv_iter_err): Omit the useless
+       enum arg_iter_err declaration, which doesn't conform to C99.
+       Solaris 10 cc warns about this.
+
+2010-10-13  Eric Blake  <eblake@redhat.com>
+
+       termios: fix compilation on mingw
+       * m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Set default.
+       (gl_TERMIOS_H): Adjust it on mingw.
+       * modules/termios (Makefile.am): Substitute new key.
+       * lib/termios.in.h (includes): Make include_next conditional.
+       * doc/posix-headers/termios.texi (termios.h): Update
+       documentation.
+       Reported by Daniel P. Berrange.
+
+2010-10-13  Jim Meyering  <meyering@redhat.com>
+
+       git-version-gen: don't require that .git/ be in the current dir
+       * build-aux/git-version-gen: Adjust this script so that it works
+       when run from any working directory beneath the top-level .git/-
+       containing directory.  Inspired by a patch from Giuseppe Scrivano,
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=21847
+
+       test-select: avoid warn_unused_result warnings
+       * tests/test-select.c: Include "macros.h".
+       ASSERT that each call to read, write, and pipe succeeds.
+       While not technically required, also check each "close".
+       * modules/select-tests (Files): Add tests/macros.h.
+
+       test-symlinkat: remove declaration of unused local
+       * tests/test-symlinkat.c (main): Remove unused local, "buf".
+
+       test-inttostr: avoid shadowing warnings
+       * tests/test-inttostr.c (main): Rename local, "buf" to "b",
+       and use malloc rather than the stack for the same reason as
+       mentioned in the comment justifying the other allocation.
+
+2010-10-11  Bruno Haible  <bruno@clisp.org>
+
+       stdlib: Allow multiple gnulib generated replacements to coexist.
+       * lib/stdlib.in.h (struct random_data): Avoid identical redefinition.
+       Reported by Sam Steingold <sds@gnu.org>.
+
+2010-10-11  Jim Meyering  <meyering@redhat.com>
+
+       fix a documentation typo
+       * doc/posix-functions/futimens.texi (futimens): Fix typo: s/itme/item/
+
+2010-10-11  Eric Blake  <eblake@redhat.com>
+
+       futimens: work around Solaris 11 bug
+       * m4/futimens.m4 (gl_FUNC_FUTIMENS): Detect the bug.
+       * tests/test-futimens.h (test_futimens): Enhance, rather than
+       weaken test.
+       * doc/posix-functions/futimens.texi (futimens): Document the bug.
+
+2010-10-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Indentation.
+       * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Indent
+       higher-level operators more to the left.
+
+2010-10-11  Jim Meyering  <meyering@redhat.com>
+
+       test-futimens: avoid unwarranted test failure on Solaris 5.11
+       * tests/test-futimens.h (test_futimens): When provoking EBADF, use an
+       invalid file descriptor, so we don't provoke EFAULT from Solaris 5.11,
+       because it tries to dereference the NULL name argument.
+
+2010-10-11  Bruno Haible  <bruno@clisp.org>
+
+       Indentation.
+       * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Improve
+       indentation.
+
+2010-10-11  Jim Meyering  <meyering@redhat.com>
+
+       spawn.in.h: make indentation consistent with parentheses
+       * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap):
+       Make indentation consistent with parentheses.
+
+2010-10-11  Gary V. Vaughan  <gary@gnu.org>
+
+       Fix mismatched parens in previous commit
+       * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Fix mismatched
+       parens.
+
+2010-10-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       rewrite int foo[2*X-1] to verify(X) or to int foo[X?1:-1]
+
+       * lib/float+.h (verify_sizeof_flt, verify_sizeof_dbl):
+       (verify_sizeof_ldbl): Rewrite 2*X-1 to X?1:-1.
+       * lib/malloca.c: Include "verify.h".
+       (verify1): Remove, replacing with a verify call.
+       * lib/relocwrapper.c (verify1): Likewise.
+       * lib/vasnprintf.c (mp_limb_verify, mp_twolimb_verify, TCHAR_T_verify):
+       Likewise.
+       * modules/malloca (Depends-on): Add 'verify'.
+       * modules/relocatable-prog-wrapper (Depends-on): Add 'verify'.
+       * modules/vasnprintf (Depends-on): Add 'verify'.
+       * modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
+
+       prefer (X ? 1 : -1) when converting from boolean (1,0) to int (1,-1)
+
+       Formerly the style was sometimes 2*X - 1, because the C standard
+       was wrongly thought to disallow ?: in integral constant expressions.
+       * lib/inet_ntop.c (verify_int_size): Rewrite 2*X-7 (!) to 4<=X?1:-1.
+       * lib/signal.in.h (verify_NSIG_constraint): Rewrite 2*X-1 to X?1:-1.
+       * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise.
+       * lib/stdint.in.h (_verify_intmax_size): Likewise.
+       * lib/time.in.h (struct __time_t_must_be_integral): Rewrite
+       2 * ((time_t) 1 / 2 == 0) - 1 to (time_t) 1; this suffices to
+       verify that time_t cannot be floating.
+
+2010-10-08  Eric Blake  <eblake@redhat.com>
+
+       time: enforce recent POSIX ruling that time_t is integral
+       * lib/time.in.h (__time_t_must_be_integral): Detect any
+       problematic systems, allowing the rest of gnulib to assume POSIX.
+
+2010-10-08  Jim Meyering  <meyering@redhat.com>
+
+       fdopendir: fix a bug on systems lacking openat and /proc support
+       OpenBSD 4.7 is one such system.  The most noticeable effect was
+       failure of any application making nontrivial use of fts: rm, du,
+       chown, chmod etc.  E.g., "mkdir -p a/b; ./rm -rf a" would fail with
+         ./rm: traversal failed: `a': Bad file descriptor
+       Debugging that, you see that even though FD 6 was closed just
+       prior to the opendir call in fd_clone_opendir, its resulting
+       dir->dd_fd was 8, rather than the expected value of 6:
+
+       Breakpoint 3, fdopendir_with_dup (fd=6, older_dupfd=-1) at fdopendir.c:93
+       93                close (fd);
+       (gdb) n
+       94                dir = fd_clone_opendir (dupfd);
+       (gdb) n
+       95                saved_errno = errno;
+       (gdb) p dir->dd_fd
+       $11 = 8
+
+       Notice how it closes FD 6, then gets a DIR* pointer using FD 8.
+       The problem is that on OpenBSD, fd_clone_opendir has to resort
+       to using the old-style save/restore CWD mechanism, due to its
+       lack of openat/proc support, and *that* would steal the FD (6)
+       that opendir was supposed to use.
+
+       The fix is to squirrel away the desired FD so that save_cwd uses a
+       different one, and then free the dest FD right before calling opendir.
+       That guarantees opendir will use the required file descriptor.
+
+       * lib/fdopendir.c (fd_clone_opendir): Handle the above.
+
+2010-10-08  Bruno Haible  <bruno@clisp.org>
+
+       sys_select: Avoid warning due to undeclared memset() on OpenBSD 4.5.
+       * lib/sys_select.in.h: Include <string.h> also on OpenBSD.
+
+2010-10-08  Bruno Haible  <bruno@clisp.org>
+
+       nanosleep: Make replacement POSIX compliant.
+       * lib/nanosleep.c (nanosleep): Return -1/EINVAL if the delay's tv_nsec
+       is out of range.
+       Reported by Jim Meyering.
+
 2010-10-08  Paul Eggert  <eggert@cs.ucla.edu>
 
+       bootstrap: add hook for altering gnulib.mk, for Bison
+       * build-aux/bootstrap (gnulib_mk_hook): New function, so that
+       the Bison bootstrapping process can rewrite file names and variables
+       in this file before later parts of 'bootstrap' use the file.
+       Bison wants to include lib/gnulib.mk from the top-level makefile,
+       so it needs the file names in this file to be relative to the top
+       level, not relative to lib; plus it needs variable names to be
+       rewritten.
+       (slurp): Use the new function.
+
        bootstrap: reformat for readability
        * build-aux/bootstrap: Rewrite to avoid lines longer than 80 columns.