+2008-09-28 Bruno Haible <bruno@clisp.org>
+
+ New module 'posix_spawnattr_setsigmask'.
+ * modules/posix_spawnattr_setsigmask: New file.
+ * lib/spawnattr_setsigmask.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_setsigmask.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_getsigmask'.
+ * modules/posix_spawnattr_getsigmask: New file.
+ * lib/spawnattr_getsigmask.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_getsigmask.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_setsigdefault'.
+ * modules/posix_spawnattr_setsigdefault: New file.
+ * lib/spawnattr_setdefault.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_setsigdefault.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_getsigdefault'.
+ * modules/posix_spawnattr_getsigdefault: New file.
+ * lib/spawnattr_getdefault.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_getsigdefault.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_setschedpolicy'.
+ * modules/posix_spawnattr_setschedpolicy: New file.
+ * lib/spawnattr_setschedpolicy.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_setschedpolicy.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_getschedpolicy'.
+ * modules/posix_spawnattr_getschedpolicy: New file.
+ * lib/spawnattr_getschedpolicy.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_getschedpolicy.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_setschedparam'.
+ * modules/posix_spawnattr_setschedparam: New file.
+ * lib/spawnattr_setschedparam.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_setschedparam.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_getschedparam'.
+ * modules/posix_spawnattr_getschedparam: New file.
+ * lib/spawnattr_getschedparam.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_getschedparam.texi: Mention the
+ new module.
+
+ New module 'posix_spawnattr_setpgroup'.
+ * modules/posix_spawnattr_setpgroup: New file.
+ * lib/spawnattr_setpgroup.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_setpgroup.texi: Mention the new
+ module.
+
+ New module 'posix_spawnattr_getpgroup'.
+ * modules/posix_spawnattr_getpgroup: New file.
+ * lib/spawnattr_getpgroup.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawnattr_getpgroup.texi: Mention the new
+ module.
+
+ New module 'posix_spawnattr_setflags'.
+ * modules/posix_spawnattr_setflags: New file.
+ * lib/spawnattr_setflags.c: New file, from GNU libc with modifications.
+ * doc/posix-functions/posix_spawnattr_setflags.texi: Mention the new
+ module.
+
+ New module 'posix_spawnattr_getflags'.
+ * modules/posix_spawnattr_getflags: New file.
+ * lib/spawnattr_getflags.c: New file, from GNU libc with modifications.
+ * doc/posix-functions/posix_spawnattr_getflags.texi: Mention the new
+ module.
+
+ New module 'posix_spawnattr_init'.
+ * modules/posix_spawnattr_init: New file.
+ * lib/spawnattr_init.c: New file, from GNU libc with modifications.
+ * doc/posix-functions/posix_spawnattr_init.texi: Mention the new
+ module.
+
+ New module 'posix_spawn_file_actions_destroy'.
+ * modules/posix_spawn_file_actions_destroy: New file.
+ * lib/spawn_faction_destroy.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawn_file_actions_destroy.texi: Mention
+ the new module.
+
+ New module 'posix_spawn_file_actions_addopen'.
+ * modules/posix_spawn_file_actions_addopen: New file.
+ * lib/spawn_faction_addopen.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawn_file_actions_addopen.texi: Mention
+ the new module.
+
+ New module 'posix_spawn_file_actions_adddup2'.
+ * modules/posix_spawn_file_actions_adddup2: New file.
+ * lib/spawn_faction_adddup2.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Mention
+ the new module.
+
+ New module 'posix_spawn_file_actions_addclose'.
+ * modules/posix_spawn_file_actions_addclose: New file.
+ * lib/spawn_faction_addclose.c: New file, from GNU libc with
+ modifications.
+ * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention
+ the new module.
+
+ New module 'posix_spawn_file_actions_init'.
+ * modules/posix_spawn_file_actions_init: New file.
+ * lib/spawn_faction_init.c: New file, from GNU libc with modifications.
+ * doc/posix-functions/posix_spawn_file_actions_init.texi: Mention the
+ new module.
+
+ New module 'posix_spawn-internal'.
+ * modules/posix_spawn-internal: New file.
+ * lib/spawn_int.h: New file, from GNU libc with modifications.
+ * lib/spawni.c: New file, from GNU libc with modifications.
+ * m4/posix_spawn.m4: New file.
+
+ New module 'spawn'.
+ * modules/spawn: New file.
+ * lib/spawn.in.h: New file, from GNU libc with modifications.
+ * m4/spawn_h.m4: New file.
+ * doc/posix-headers/spawn.texi: Mention the new module.
+
+2008-09-28 Bruno Haible <bruno@clisp.org>
+
+ * modules/sched-tests: New file.
+ * tests/test-sched.c: New file.
+
+ New module 'sched'.
+ * modules/sched: New file.
+ * lib/sched.in.h: New file.
+ * m4/sched_h.m4: New file.
+ * doc/posix-headers/sched.texi: Mention the new module.
+
+2008-09-27 Eric Blake <ebb9@byu.net>
+
+ Fix previous patch, and tweak references to $0.
+ * posix-modules: Call func_gnulib_dir before using $gnulib_dir.
+ (func_version, func_gnulib_dir): Don't call this program
+ gnulib-tool.
+ (func_gnulib_dir, func_tmpdir, func_fatal_error): Avoid shell bugs
+ with using $0 in function.
+ * gnulib-tool (func_gnulib_dir, func_tmpdir): Likewise.
+ (func_fatal_error): Reuse the name the user invoked us with.
+
+2008-09-27 Bruno Haible <bruno@clisp.org>
+
+ * m4/iconv_h.m4 (gl_REPLACE_ICONV_H): New macro.
+ (gl_ICONV_H_DEFAULTS): Initialize ICONV_H here...
+ (gl_ICONV_H): Not here.
+ * m4/iconv_open.m4 (gl_REPLACE_ICONV_OPEN): Invoke gl_REPLACE_ICONV_H
+ instead of assigning ICONV_H directly.
+
+ * m4/wchar.m4 (gl_REPLACE_WCHAR_H): New macro.
+ * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Invoke it instead of assigning
+ WCHAR_H directly.
+
+2008-09-27 Bruno Haible <bruno@clisp.org>
+
+ * lib/arpa_inet.in.h: Include the GL_LINK_WARNING anchor.
+ * modules/arpa_inet (Depends-on): Add link-warning.
+ (Makefile.am): Insert the definition of GL_LINK-WARNING.
+ * modules/unistd (Makefile.am): Likewise.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * posix-modules (cvsdatestamp, last_checkin_date, version): Remove
+ variables.
+ (func_version): Essentially copied from gnulib-tool.
+ (func_exit, func_gnulib_dir, func_tmpdir, func_fatal_error,
+ func_readlink): Copied from gnulib-tool.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * gnulib-tool (func_version): Change directory to $gnulib_dir before
+ invoking git-version-gen.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * posix-modules: Update to directory names changed on 2008-01-19.
+ Remove commas in output before splitting into words. No more need to
+ avoid 'ftruncate' since 2007-02-19.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * doc/posix-headers/errno.texi: Remove mention of module 'EOVERFLOW'.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * lib/fwriteerror.c (do_fwriteerror): Ignore error EPIPE.
+ * modules/fwriteerror (Depends-on): Add errno.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * tests/test-vc-list-files-git.sh: Explain reason for skipping test.
+ * tests/test-vc-list-files-cvs.sh: Likewise.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * doc/posix-headers/sys_resource.texi: Reorder items.
+
+2008-09-26 Jim Meyering <meyering@redhat.com>
+
+ fts: tweak inode comparison function
+ * lib/fts.c (fts_compare_ino): Sort on increasing, not decreasing
+ inode numbers, as documented.
+
+ fts: sort dirent entries on inode number before traversing
+ This avoids a quadratic, seek-related performance penalty when
+ operating on a directory containing many entries (measurable at 10k;
+ 3.5 hours at 2 million entries with a cold cache) on certain types
+ of file systems, including ext3 and ext4, but not tmpfs.
+ * lib/fts.c (DT_MUST_BE, NOT_AN_INODE_NUMBER, D_INO): Define.
+ (FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD): Define if not defined.
+ (S_MAGIC_TMPFS, S_MAGIC_NFS): Define.
+ (fs_handles_readdir_ordered_dirents_efficiently): New function.
+ (dirent_inode_sort_may_be_useful, fts_compare_ino): Likewise.
+ (fts_build): Set the stat.st_ino member from D_INO.
+ If it is likely to be useful, sort dirent entries on inode number.
+
+ * m4/fts.m4 (gl_FUNC_FTS_CORE): Check for fstatfs, sys/vfs.h,
+ and the struct statfs.f_type member.
+ * modules/fts (Depends-on): Add d-ino.
+
+2008-09-26 Bruno Haible <bruno@clisp.org>
+
+ * modules/sigpipe-die (Depends-on): Add sigpipe.
+
+ * lib/stdio.in.h (fprintf, vfprintf, printf, vprintf, fputc, putc,
+ putchar, fputs, puts, fwrite): Replace when REPLACE_STDIO_WRITE_FUNCS
+ and GNULIB_STDIO_H_SIGPIPE are set.
+ * lib/stdio-write.c: New file.
+ * m4/stdio_h.m4 (gl_STDIO_H): Set GNULIB_FPRINTF, GNULIB_PRINTF,
+ GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC,
+ GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE,
+ REPLACE_STDIO_WRITE_FUNCS.
+ (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FPRINTF, GNULIB_PRINTF,
+ GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC,
+ GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE,
+ GNULIB_STDIO_H_SIGPIPE, REPLACE_STDIO_WRITE_FUNCS.
+ * modules/stdio (Files): Add lib/stdio-write.c.
+ (Makefile.am): Substitute GNULIB_FPRINTF, GNULIB_PRINTF,
+ GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC,
+ GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE,
+ GNULIB_STDIO_H_SIGPIPE, REPLACE_STDIO_WRITE_FUNCS.
+ * m4/fprintf-posix.m4 (gl_REPLACE_FPRINTF): Define
+ REPLACE_FPRINTF_POSIX.
+ * m4/printf-posix-rpl.m4 (gl_REPLACE_PRINTF): Define
+ REPLACE_PRINTF_POSIX.
+ * m4/vfprintf-posix.m4 (gl_REPLACE_VFPRINTF): Define
+ REPLACE_VFPRINTF_POSIX.
+ * m4/vprintf-posix.m4 (gl_REPLACE_VPRINTF): Define
+ REPLACE_VPRINTF_POSIX.
+ * doc/posix-functions/fprintf.texi: Mention the sigpipe module and the
+ SIGPIPE issue.
+ * doc/posix-functions/fputc.texi: Likewise.
+ * doc/posix-functions/fputs.texi: Likewise.
+ * doc/posix-functions/fwrite.texi: Likewise.
+ * doc/posix-functions/printf.texi: Likewise.
+ * doc/posix-functions/putc.texi: Likewise.
+ * doc/posix-functions/putchar.texi: Likewise.
+ * doc/posix-functions/puts.texi: Likewise.
+ * doc/posix-functions/vfprintf.texi: Likewise.
+ * doc/posix-functions/vprintf.texi: Likewise.
+
+ * modules/safe-write (Depends-on): Add write.
+
+ * modules/sigpipe-tests: New file.
+ * tests/test-sigpipe.c: New file.
+ * tests/test-sigpipe.sh: New file.
+
+ * modules/write: New file.
+ * lib/unistd.in.h: Include <sys/types.h>.
+ (write): New declaration.
+ * lib/write.c: New file.
+ * m4/write.m4: New file.
+ * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
+ GNULIB_UNISTD_H_SIGPIPE, GNULIB_WRITE, REPLACE_WRITE.
+ * modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_SIGPIPE,
+ GNULIB_WRITE, REPLACE_WRITE.
+ * doc/posix-functions/write.texi: Mention the write, sigpipe modules
+ and the SIGPIPE issue.
+
+ * lib/signal.in.h (SIGPIPE): Define to a replacement value.
+ (raise): New declaration.
+ * lib/sigprocmask.c (SIGPIPE_handler): New variable.
+ (ext_signal): New function.
+ (rpl_raise): New function.
+ * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
+ GNULIB_SIGNAL_H_SIGPIPE.
+ * modules/signal (Makefile.am): Substitute GNULIB_SIGNAL_H_SIGPIPE.
+ * doc/posix-headers/signal.texi: Mention the SIGPIPE issue.
+
+ * modules/sigpipe: New file.
+ * m4/sigpipe.m4: New file.
+
+2008-09-25 Derek Price <derek@ximbiot.com>
+ Bruno Haible <bruno@clisp.org>
+
+ * gnulib-tool (func_import): Report all license incompatibilities, not
+ just the first one.
+
+2008-09-25 Bruno Haible <bruno@clisp.org>
+
+ * gnulib-tool (func_import): When computing the edits, consider not
+ only the Makefile.ams that exist but also those that will be generated.
+
+2008-09-25 Simon Josefsson <simon@josefsson.org>
+
+ * modules/sys_select-tests (Depends-on): Remove sys_select itself,
+ fixes gnulib-tool --test warning about duplicate dependency.
+
+2008-09-25 Bruno Haible <bruno@clisp.org>
+
+ * gnulib-tool: Don't ask the user to perform edits in the generated
+ Makefile.ams.
+ (func_emit_lib_Makefile_am): Emit empty SUBDIRS. Execute edits that
+ apply to the Makefile.am being generated.
+ (func_emit_tests_Makefile_am): Execute edits that apply to the
+ Makefile.am being generated.
+ (func_import): Setup list of Makefile.am edits before emitting the
+ Makefile.ams, not at the end.
+ (func_create_testdir): Update.
+ Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
+
+2008-09-25 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
+
+ * gnulib-tool (func_import): Store the --tests-base option in the
+ comment in gnulib-cache.m4.
+
+2008-09-24 Paolo Bonzini <bonzini@gnu.org>
+
+ * NEWS: Document increased portability that sys_select now provides.
+
+ * lib/sys_select.in.h: Install select wrapper.
+ * lib/sys_socket.in.h: Use more descriptive name when there is no
+ select wrapper.
+ * lib/winsock-select.c: New.
+ * m4/sys_select_h.m4: Compile lib/winsock-select.c if WinSock is used.
+ Require gl_HEADER_SYS_SOCKET.
+ * modules/sys_select: Depend on alloca, add lib/winsock-select.c.
+ * modules/sys_select-tests: Copy dependencies from modules/poll-tests.
+ * tests/test-sys_select.c: Add functional tests.
+
+2008-09-24 Eric Blake <ebb9@byu.net>
+
+ open, fopen: close fd leak in last patch
+ * lib/open.c (rpl_open): Close fd before returning error.
+ * lib/fopen.c (rpl_fopen): Close fd before returning error.
+ * doc/posix-functions/open.texi (open): Document that Irix also
+ has the bug.
+ * doc/posix-functions/fopen.texi (fopen): Likewise.
+ Reported by Paolo Bonzini.
+
+2008-09-24 Bruno Haible <bruno@clisp.org>
+
+ Ensure that a filename ending in a slash cannot be used to access a
+ non-directory.
+ * lib/open.c (rpl_open): When the filename ends in a slash, use fstat()
+ to check whether it's really a directory.
+ * lib/fopen.c: Include fcntl.h, unistd.h.
+ (rpl_fopen): When the filename ends in a slash, use open(), fstat(),
+ and fdopen().
+ * modules/fopen (Depends-on): Add unistd.
+ * tests/test-open.c (main): Try to open "/dev/null/" as a directory.
+ * tests/test-fopen.c (main): Likewise.
+ * doc/posix-functions/open.texi: Mention the HP-UX, Solaris bug.
+ * doc/posix-functions/fopen.texi: Likewise.
+ Reported by Eric Blake.
+
2008-09-23 Eric Blake <ebb9@byu.net>
c-stack: avoid compiler optimizations when provoking overflow