implement a native version of poll for Win32
[gnulib.git] / ChangeLog
index 8d416fa..3dfc1c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,363 @@
+2008-09-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * lib/poll.c: Rewrite.
+       * modules/poll: Depend on alloca.
+
+2008-09-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * lib/sys_socket.in.h: Do not implement rpl_setsockopt here,
+       instead define prototypes for a full set of wrappers.  Ensure
+       that Cygwin does not use the compatibility code, which is only
+       for MinGW.
+       * lib/winsock.c: New.
+       * m4/sys_socket_h.m4: Compile lib/winsock.c if WinSock is being used.
+       * modules/sys_socket: Add lib/winsock.c.
+
+       * modules/poll-tests: Add errno and perror.
+       * tests/test-poll.c: Use ioctl, not ioctlsocket.
+
+2008-09-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tests/test-poll.c: Downgrade minimum needed Winsock version.
+
+2008-09-23  Bruno Haible  <bruno@clisp.org>
+
+       * doc/posix-functions/*: Add info about functions missing on IRIX 5.3.
+       * doc/glibc-functions/*: Likewise.
+
+2008-09-23  Simon Josefsson  <simon@josefsson.org>
+
+       * tests/test-perror.sh (tmpfiles): Cleanup temporary files on
+       success.
+
+2008-09-22  Eric Blake  <ebb9@byu.net>
+            Bruno Haible  <bruno@clisp.org>
+
+       vasnprintf: fix x86/glibc regression on printf("%La", 0.0L)
+       * lib/vasnprintf.c (VASNPRINTF): Support 0.0 on platforms that
+       supply %A but mishandle pseudo-NaN.
+       Reported by Simon Josefsson.
+
+2008-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-lock.c (main): Tweak skip message.
+       * tests/test-tls.c (main): Likewise.
+
+2008-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * m4/sigaction.m4 (gl_SIGACTION): Remove unnecessary AC_SUBST. Check
+       whether 'struct sigaction' has sa_sigaction here...
+       (gl_PREREQ_SIG_HANDLER_H): ... not here.
+       (gl_PREREQ_SIGACTION): Remove unnecessary AC_SUBST.
+
+2008-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * MODULES.html.sh (Support for obsolete systems lacking ANSI C 89): New
+       section.
+       (Support for systems lacking ANSI C 89): Move stdlib, exit, strtol,
+       strtoul, memchr, memcmp, memcpy, memmove, memset, strcspn, strpbrk to
+       the new section.
+       (Support for obsolete systems lacking POSIX:2001): New section.
+       (String handling <string.h>): Move strdup to the new section.
+       Suggested by Simon Josefsson and Paolo Bonzini.
+
+2008-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-vasnprintf-posix.c (test_function): Allow 3-digit
+       exponents in %e and %g results on 'long double'. Needed for mingw's
+       improved *printf functions.
+       * tests/test-vasprintf-posix.c (test_function): Likewise.
+       * tests/test-snprintf-posix.h (test_function): Likewise.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+       Reported by Eric Blake.
+
+2008-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-snprintf-posix.h (test_function): Remove useless ASSERTs.
+       * tests/test-sprintf-posix.h (test_function): Likewise.
+
+2008-09-21  Bruno Haible  <bruno@clisp.org>
+
+       * modules/getpass (Depends-on): Add strdup-posix.
+
+       New module 'strdup-posix'.
+       * modules/strdup-posix: New file.
+       * m4/strdup.m4 (gl_FUNC_STRDUP_POSIX): New macro.
+       * lib/string.in.h (strdup): Replace if REPLACE_STRDUP is 1.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
+       REPLACE_STRDUP.
+       * modules/string (Makefile.am): Substitute REPLACE_STRDUP.
+       * doc/posix-functions/strdup.texi: Mention module strdup-posix.
+       * MODULES.html.sh (Support for systems lacking POSIX:2001): Add
+       strdup-posix.
+
+       * modules/strdup (Depends-on): Remove malloc-posix.
+
+2008-09-20  Bruno Haible  <bruno@clisp.org>
+
+       * lib/fstrcmp.c: Add data about branch probabilities, from Ralf
+       Wildenhues.
+
+2008-09-20  Bruno Haible  <bruno@clisp.org>
+
+       Ensure that wint_t gets defined on IRIX 5.3.
+       * lib/wchar.in.h (wint_t): Define if not defined by the system.
+       * lib/wctype.in.h (wint_t): Likewise.
+       (__wctype_wint_t): Remove type.
+       (isw*): Use wint_t instead of __wctype_wint_t.
+       * m4/wchar.m4 (gl_WCHAR_H): Invoke gt_TYPE_WINT_T and set HAVE_WINT_T.
+       * modules/wchar (Files): Add m4/wint_t.m4.
+       (Makefile.am): Substitute HAVE_WINT_T.
+       * tests/test-wchar.c: Check that wchar_t and wint_t are defined.
+       * tests/test-wctype.c: Check that wint_t is defined.
+       * doc/posix-headers/wchar.texi: Mention the IRIX 5 problem.
+       * doc/posix-headers/wctype.texi: Likewise.
+       Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
+2008-09-18  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_exit): Update comment.
+
+2008-09-18  Simon Josefsson  <simon@josefsson.org>
+
+       * modules/getaddrinfo (Depends-on): Remove strdup, this module
+       assumes strdup exists and does not depend on strdup to return
+       ENOMEM on out of memory conditions.
+
+2008-09-18  Bruno Haible  <bruno@clisp.org>
+
+       * lib/vasnprintf.c (VASNPRINTF): When printing ±0.0L in
+       NEED_PRINTF_INFINITE_LONG_DOUBLE case with 'e' format, always use two
+       digits for the exponent.
+
+2008-09-18  Jim Meyering  <meyering@redhat.com>
+            Bruno Haible  <bruno@clisp.org>
+
+       * lib/vasnprintf.c (decimal_point_char): Define also if
+       NEED_PRINTF_INFINITE_LONG_DOUBLE.
+
+2008-09-16  Bruno Haible  <bruno@clisp.org>
+       and Eric Blake  <ebb9@byu.net>
+
+       vasnprintf: support Irix 5.3
+       * lib/vasnprintf.c (VASNPRINTF): Also handle -0.0L on platforms
+       that mishandle long double infinity.
+       Reported by Tom G. Christensen.
+
+2008-09-16  Bruno Haible  <bruno@clisp.org>
+
+       * doc/glibc-functions/scandir.texi: Mention the function is missing on
+       Solaris 9.
+       * doc/glibc-functions/alphasort.texi: Likewise.
+       Reported by Michael Haubenwallner <michael.haubenwallner@salomon.at>.
+
+2008-09-16  Jim Meyering  <meyering@redhat.com>
+
+       posix-shell.m4: reject opensolaris's "sh (AT&T Research) 1993-12-28 s+"
+       * m4/posix-shell.m4 (gl_POSIX_SHELL): Reject a shell that lets
+       a umask modification leak out of a subshell.  Otherwise, the
+       opensolaris /bin/sh would be accepted and thus cause unwarranted
+       failures in the coreutils test suite.
+
+2008-09-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tests/test-poll.c (connect_to_socket): Allow non-blocking connect
+       to succeed.
+
+2008-09-16  Jim Meyering  <meyering@redhat.com>
+
+       avoid spurious test failure when library is built without ACL support
+       * m4/acl.m4 (USE_ACL): Define as a shell variable, too, for...
+       * modules/acl-tests (Makefile.am) [TESTS_ENVIRONMENT]: Add USE_ACL.
+       * tests/test-file-has-acl.sh: Skip if USE_ACL == 0.
+       * tests/test-copy-acl.sh: Likewise.
+
+2008-09-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/fstrcmp.c (fstrcmp_bounded): Use a second, less quick upper bound
+       based on character occurrence counts.
+
+2008-09-15  Eric Blake  <ebb9@byu.net>
+
+       tests: avoid some compiler warnings
+       * tests/test-memchr.c (main): Pass NULL indirectly.
+       * tests/test-closein.c (main): Avoid unused variable.
+
+2008-09-15  Bruno Haible  <bruno@clisp.org>
+
+       * m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Test for all the macros that
+       are missing on OpenBSD 4.0 individually.
+       Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
+
+2008-09-15  Bruno Haible  <bruno@clisp.org>
+
+       * doc/posix-headers/errno.texi: Mention the Cygwin problem.
+       * doc/posix-functions/strerror.texi: Mention also Cygwin.
+       * doc/posix-functions/perror.texi: Likewise.
+       * m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Test also whether ECANCELED
+       is missing.
+       Reported by Eric Blake.
+
+       * lib/errno.in.h: Use replacement values >= 2000.
+       Reported by Eric Blake.
+
+2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/fstrcmp.c (EXTRA_CONTEXT_FIELDS): Add field 'edit_count_limit'.
+       (EARLY_ABORT): Return true when the edit_count has grown too beyond the
+       limit.
+       (fstrcmp_bounded): Initialize the edit_count_limit. Return 0 when
+       compareseq was aborted.
+
+2008-09-14  Bruno Haible  <bruno@clisp.org>
+
+       * lib/fstrcmp.c (EXTRA_CONTEXT_FIELDS): Combine xvec_edit_count and
+       yvec_edit_count.
+       (NOTE_DELETE, NOTE_INSERT): Increment the combined edit count.
+       (fstrcmp_bounded): Simplify result computation accordingly.
+
+2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/fstrcmp.h (fstrcmp_bounded): New declaration.
+       (fstrcmp): Define in terms of fstrcmp_bounded.
+       * lib/fstrcmp.c (fstrcmp_bounded): Renamed from fstrcmp. Add
+       lower_bound argument.
+       Return quickly if the result is certainly < lower_bound.
+       * tests/test-fstrcmp.c (check_fstrcmp): Test also fstrcmp_bounded.
+
+2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/diffseq.h (EARLY_ABORT): New macro.
+       (compareseq): Change return type to bool. Return true when EARLY_ABORT
+       evaluates to true.
+
+2008-09-14  Bruno Haible  <bruno@clisp.org>
+
+       * modules/perror-tests: New file.
+       * tests/test-perror.sh: New file.
+       * tests/test-perror.c: New file.
+
+       New module 'perror'.
+       * lib/stdio.in.h (perror): New declaration.
+       * lib/perror.c: New file.
+       * m4/perror.m4: New file.
+       * modules/perror: New file.
+       * MODULES.html.sh (Support for systems lacking POSIX:2001): Add perror.
+       * doc/posix-functions/perror.texi: Mention the perror module.
+       * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_PERROR,
+       REPLACE_PERROR.
+       * modules/stdio (Makefile.am): Substitute GNULIB_PERROR,
+       REPLACE_PERROR.
+
+2008-09-14  Bruno Haible  <bruno@clisp.org>
+
+       * modules/stdio (Makefile.am): Reorder to match the order in
+       lib/stdio.in.h.
+       * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
+
+2008-09-13  Bruno Haible  <bruno@clisp.org>
+
+       * lib/sys_socket.in.h (EINPROGRESS, ...): Remove definitions.
+
+2008-09-13  Bruno Haible  <bruno@clisp.org>
+
+       Extend strerror to cover the added errno values.
+       * lib/strerror.c: Include errno.h and winsock2.h if it exists.
+       (rpl_strerror): Provide error messages for the added errno values and
+       for the WSA* values.
+       * m4/strerror.m4 (gl_FUNC_STRERROR): Test REPLACE_STRERROR.
+       (gl_FUNC_STRERROR_SEPARATE): If errno.h is replaced, always replace
+       strerror.
+       (gl_PREREQ_STRERROR): Test whether winsock2.h exists.
+       * modules/strerror (Depends-on): Add errno.
+       * doc/posix-functions/strerror.texi: Document the change.
+       * tests/test-strerror.c (main): Check also the string for ETIMEDOUT
+       and EOVERFLOW.
+
+2008-09-13  Bruno Haible  <bruno@clisp.org>
+
+       * modules/EOVERFLOW: Remove file.
+       * m4/eoverflow.m4: Remove file.
+       * modules/EOVERFLOW-tests: Remove file.
+       * tests/test-EOVERFLOW.c: Remove file.
+       * modules/fprintf-posix (Depends-on): Replace EOVERFLOW with errno.
+       * modules/ftell (Depends-on): Likewise.
+       * modules/getdelim (Depends-on): Likewise.
+       * modules/getugroups (Depends-on): Likewise.
+       * modules/poll (Depends-on): Likewise.
+       * modules/snprintf (Depends-on): Likewise.
+       * modules/sprintf-posix (Depends-on): Likewise.
+       * modules/vasnprintf (Depends-on): Likewise.
+       * modules/vasprintf (Depends-on): Likewise.
+       * modules/vfprintf-posix (Depends-on): Likewise.
+       * modules/vsnprintf (Depends-on): Likewise.
+       * modules/vsprintf-posix (Depends-on): Likewise.
+       * modules/xvasprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-vsprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-u8-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-u8-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/u8-u8-vsprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-u16-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-u16-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-u16-vsprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-vsprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-vsprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-u32-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-u32-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-u32-vsprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-fprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vasprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vfprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vsnprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vsprintf (Depends-on): Likewise.
+       * MODULES.html.sh: Remove EOVERFLOW.
+       * NEWS: Mention the change.
+
+2008-09-13  Bruno Haible  <bruno@clisp.org>
+
+       * modules/errno-tests: New file.
+       * tests/test-errno.c: New file, incorporating tests/test-EOVERFLOW.c.
+
+       * lib/errno.in.h: New file.
+       * m4/errno_h.m4: New file, borrowing from m4/eoverflow.m4.
+       * modules/errno: New file.
+       * doc/posix-headers/errno.texi: Update documentation.
+       * MODULES.html.sh (Support for systems lacking POSIX:2001): Add errno.
+
+2008-09-13  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-poll.c: Use #if for native Windows, rather than testing
+       __MSVCRT__.
+
+2008-09-13  Yoann Vandoorselaere  <yoann.v@prelude-ids.com>
+           Bruno Haible  <bruno@clisp.org>
+
+       * lib/glob.c: Don't include <pwd.h> on native Windows.
+       (WINDOWS32): New macro.
+       (glob) [WINDOW32]: Provide a reasonable replacement for getenv("HOME").
+
+2008-09-13  Bruno Haible  <bruno@clisp.org>
+
+       * lib/glthread/cond.h [USE_SOLARIS_THREADS]
+       (ETIMEDOUT): Remove macro.
+       (glthread_cond_timedwait_multithreaded): New declaration.
+       (glthread_cond_timedwait): Use it.
+       * lib/glthread/cond.c [USE_SOLARIS_THREADS]
+       (glthread_cond_timedwait_multithreaded): New function.
+
 2008-09-12  Paolo Bonzini  <bonzini@gnu.org>
 
        * modules/poll-tests: Do not check for io.h.
        Approved by Eric Blake.
 
 2008-09-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        Make gnulib-tool work with native 'sed' on AIX.
        * gnulib-tool (sed_noop): New variable.
        Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
 
 2008-09-04  Albert Chin  <bug-gnulib@mlists.thewrittenword.com>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * m4/include_next.m4 (gl_INCLUDE_NEXT): Add check whether #include_next
        also works after #include directives.