fcntl-h: fix O_ACCMODE on cygwin
[gnulib.git] / ChangeLog
index 07abca6..58f0c53 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,294 @@
+2011-04-08  Eric Blake  <eblake@redhat.com>
+
+       fcntl-h: fix O_ACCMODE on cygwin
+       * doc/posix-headers/fcntl.texi (fcntl.h): Document the bug.
+       * lib/fcntl.in.h (O_ACCMODE): Fix it.
+
+       pipe-filter: drop O_NONBLOCK workarounds
+       * modules/pipe-filter-gi (Depends-on): Add fcntl-h.
+       * modules/pipe-filter-ii (Depends-on): Likewise.
+       * lib/pipe-filter-aux.h (O_NONBLOCK): Delete workaround.
+
+       nonblocking: provide O_NONBLOCK for mingw
+       * modules/nonblocking (Depends-on): Add open.
+       (configure.ac): Set new witness macro.
+       * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Provide default for it.
+       * modules/fcntl-h (Makefile.am): Substitute it.
+       * lib/fcntl.in.h (O_NONBLOCK): Guarantee non-zero definition when
+       nonblocking module is in use.
+       * lib/nonblocking.c: Adjust portability test.
+       * lib/open.c (open): Don't let native open see gnulib flag.
+       * tests/test-fcntl-h.c (main): Enhance test.
+       * tests/test-open.h (test_open): Likewise.
+       * doc/posix-headers/fcntl.texi (fcntl.h): Document the replacement.
+
+       careadlink: fix compilation error on mingw
+       * lib/careadlinkat.c (standard_allocator): Avoid renaming fields
+       within struct allocator.
+
+2011-04-06  Eric Blake  <eblake@redhat.com>
+
+       binary-io: relicense under LGPLv2+
+       * modules/binary-io (License): Relax to LGPLv2+.
+       Requested for libvirt, and required by pipe2.
+
+2011-04-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       verify: use _Static_assert if available
+       * lib/verify.h (HAVE__STATIC_ASSERT): New macro.
+       (verify_true, verify): Use it if available.  This generates better
+       diagnostics with GCC 4.6.0 and later.
+
+2011-04-05  Bruno Haible  <bruno@clisp.org>
+
+       Remove leftover generated .h files after config.status changed.
+
+       * m4/alloca.m4 (gl_FUNC_ALLOCA): New automake conditional
+       GL_GENERATE_ALLOCA_H.
+       * modules/alloca-opt (Makefile.am): Remove alloca.h if
+       GL_GENERATE_ALLOCA_H evaluates to false.
+
+       * m4/argz.m4 (gl_FUNC_ARGZ): New automake conditional
+       GL_GENERATE_ARGZ_H.
+       * modules/argz (Makefile.am): Remove argz.h if GL_GENERATE_ARGZ_H
+       evaluates to false.
+
+       * m4/byteswap.m4 (gl_BYTESWAP): New automake conditional
+       GL_GENERATE_BYTESWAP_H.
+       * modules/byteswap (Makefile.am): Remove byteswap.h if
+       GL_GENERATE_BYTESWAP_H evaluates to false.
+
+       * m4/errno_h.m4 (gl_HEADER_ERRNO_H): New automake conditional
+       GL_GENERATE_ERRNO_H.
+       * modules/errno (Makefile.am): Remove errno.h if GL_GENERATE_ERRNO_H
+       evaluates to false.
+
+       * m4/float_h.m4 (gl_FLOAT_H): New automake conditional
+       GL_GENERATE_FLOAT_H.
+       * modules/float (Makefile.am): Remove float.h if GL_GENERATE_FLOAT_H
+       evaluates to false.
+
+       * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): New automake conditional
+       GL_GENERATE_FNMATCH_H.
+       * modules/fnmatch (Makefile.am): Remove fnmatch.h if
+       GL_GENERATE_FNMATCH_H evaluates to false.
+
+       * m4/glob.m4 (gl_GLOB_SUBSTITUTE, gl_GLOB): New automake conditional
+       GL_GENERATE_GLOB_H.
+       * modules/glob (Makefile.am): Remove glob.h if GL_GENERATE_GLOB_H
+       evaluates to false.
+
+       * m4/iconv_h.m4 (gl_REPLACE_ICONV_H, gl_ICONV_H_DEFAULTS): New
+       automake conditional GL_GENERATE_ICONV_H.
+       * modules/iconv-h (Makefile.am): Remove iconv.h if GL_GENERATE_ICONV_H
+       evaluates to false.
+
+       * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): New automake conditional
+       GL_GENERATE_NETINET_IN_H.
+       * modules/netinet_in (Makefile.am): Remove netinet/in.h if
+       GL_GENERATE_NETINET_IN_H evaluates to false.
+
+       * m4/pthread.m4 (gl_PTHREAD_CHECK): Set PTHREAD_H here. New automake
+       conditional GL_GENERATE_PTHREAD_H.
+       (gl_PTHREAD_DEFAULTS): Don't set PTHREAD_H here.
+       * modules/pthread (Makefile.am): Remove pthread.h if
+       GL_GENERATE_PTHREAD_H evaluates to false.
+
+       * m4/sched_h.m4 (gl_SCHED_H): New automake conditional
+       GL_GENERATE_SCHED_H.
+       * modules/sched (Makefile.am): Remove sched.h if GL_GENERATE_SCHED_H
+       evaluates to false.
+
+       * m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): New automake
+       conditional GL_GENERATE_SELINUX_CONTEXT_H.
+       * modules/selinux-h (Makefile.am): Remove selinux/context.h if
+       GL_GENERATE_SELINUX_CONTEXT_H evaluates to false.
+
+       * m4/stdarg.m4 (gl_STDARG_H): New automake conditional
+       GL_GENERATE_STDARG_H.
+       * modules/stdarg (Makefile.am): Remove stdarg.h if
+       GL_GENERATE_STDARG_H evaluates to false.
+
+       * m4/stdbool.m4 (AM_STDBOOL_H): New automake conditional
+       GL_GENERATE_STDBOOL_H.
+       * modules/stdbool (Makefile.am): Remove stdbool.h if
+       GL_GENERATE_STDBOOL_H evaluates to false.
+
+       * m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_H here. New automake
+       conditional GL_GENERATE_STDDEF_H.
+       (gl_STDDEF_H_DEFAULTS): Don't set STDDEF_H here.
+       * modules/stddef (Makefile.am): Remove stddef.h if
+       GL_GENERATE_STDDEF_H evaluates to false.
+
+       * m4/stdint.m4 (gl_STDINT_H): New automake conditional
+       GL_GENERATE_STDINT_H.
+       * modules/stdint (Makefile.am): Remove stdint.h if
+       GL_GENERATE_STDINT_H evaluates to false.
+
+       * m4/sysexits.m4 (gl_SYSEXITS): New automake conditional
+       GL_GENERATE_SYSEXITS_H.
+       * modules/sysexits (Makefile.am): Remove sysexits.h if
+       GL_GENERATE_SYSEXITS_H evaluates to false.
+
+       Reported by Karl Berry and Ralf Wildenhues.
+
+2011-04-05  Bruno Haible  <bruno@clisp.org>
+
+       Ensure to rebuild generated .h files when config.status has changed.
+       * modules/arpa_inet (Makefile.am): Add dependency from .h file to
+       config.status.
+       * modules/ctype (Makefile.am): Likewise.
+       * modules/dirent (Makefile.am): Likewise.
+       * modules/errno (Makefile.am): Likewise.
+       * modules/fcntl-h (Makefile.am): Likewise.
+       * modules/float (Makefile.am): Likewise.
+       * modules/getopt-posix (Makefile.am): Likewise.
+       * modules/glob (Makefile.am): Likewise.
+       * modules/iconv-h (Makefile.am): Likewise.
+       * modules/inttypes (Makefile.am): Likewise.
+       * modules/langinfo (Makefile.am): Likewise.
+       * modules/locale (Makefile.am): Likewise.
+       * modules/math (Makefile.am): Likewise.
+       * modules/netdb (Makefile.am): Likewise.
+       * modules/netinet_in (Makefile.am): Likewise.
+       * modules/poll-h (Makefile.am): Likewise.
+       * modules/pthread (Makefile.am): Likewise.
+       * modules/pty (Makefile.am): Likewise.
+       * modules/sched (Makefile.am): Likewise.
+       * modules/search (Makefile.am): Likewise.
+       * modules/selinux-h (Makefile.am): Likewise.
+       * modules/signal (Makefile.am): Likewise.
+       * modules/spawn (Makefile.am): Likewise.
+       * modules/stdarg (Makefile.am): Likewise.
+       * modules/stdbool (Makefile.am): Likewise.
+       * modules/stddef (Makefile.am): Likewise.
+       * modules/stdint (Makefile.am): Likewise.
+       * modules/stdio (Makefile.am): Likewise.
+       * modules/stdlib (Makefile.am): Likewise.
+       * modules/string (Makefile.am): Likewise.
+       * modules/strings (Makefile.am): Likewise.
+       * modules/sys_file (Makefile.am): Likewise.
+       * modules/sys_ioctl (Makefile.am): Likewise.
+       * modules/sys_select (Makefile.am): Likewise.
+       * modules/sys_socket (Makefile.am): Likewise.
+       * modules/sys_stat (Makefile.am): Likewise.
+       * modules/sys_time (Makefile.am): Likewise.
+       * modules/sys_times (Makefile.am): Likewise.
+       * modules/sys_utsname (Makefile.am): Likewise.
+       * modules/sys_wait (Makefile.am): Likewise.
+       * modules/sysexits (Makefile.am): Likewise.
+       * modules/termios (Makefile.am): Likewise.
+       * modules/time (Makefile.am): Likewise.
+       * modules/unistd (Makefile.am): Likewise.
+       * modules/wchar (Makefile.am): Likewise.
+       * modules/wctype-h (Makefile.am): Likewise.
+       Reported by Karl Berry, Eric Blake, and Ralf Wildenhues.
+
+2011-04-05  Bruno Haible  <bruno@clisp.org>
+
+       pipe2: Relicense under LGPLv2+.
+       * modules/pipe2 (License): Change to LGPLv2+.
+       Requested by Eric Blake, for libvirt.
+
+2011-04-05  Bruce Korb  <bkorb@gnu.org>
+
+       bootstrap: compute gnulib_extra_files after updating build_aux
+       * build-aux/bootstrap (gnulib_extra_files): bootstrap.conf may
+       change build_aux or also supply gnulib_extra_files.  Handle correctly.
+
+2011-04-05  Eric Blake  <eblake@redhat.com>
+
+       bootstrap: preserve git whitelist item sorting
+       * build-aux/bootstrap (sort_patterns): New function.
+       (insert_sorted_if_absent): Use it to sink ! lines to the bottom.
+
+2011-04-05  Simon Josefsson  <simon@josefsson.org>
+
+       * top/maint.mk (sc_prohibit_empty_lines_at_EOF): Don't trigger
+       sc_space_tab check.
+
+2011-04-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       areadlink, areadlinkat: rewrite in terms of careadlinkat
+       * lib/areadlink.c, lib/areadlinkat.c: Include careadlinkat.h
+       instead of errno.h, limits.h, stdint.h, stdlib.h, string.h, unistd.h.
+       (SSIZE_MAX, INITIAL_BUF_SIZE): Remove.
+       (malloc, realloc): Remove #undefs.
+       (areadlink, areadlinkat): Rewrite in terms of careadlinkat.
+       * modules/areadlink (Depends-on): Add careadlinkat.  Remove
+       readlink, ssize_t, stdint, unistd.
+       * modules/areadlinkat (Depends-on): Add careadlinkat.  Remove
+       areadlink, stdint.
+
+       careadlinkat: new module
+       * lib/allocator.h, lib/careadlinkat.h, lib/careadlinkat.c:
+       * modules/careadlinkat: New files, written by me with
+       a review and feedback from Ben Pfaff in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00008.html>.
+
+2011-04-01  Bruno Haible  <bruno@clisp.org>
+
+       wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr: Avoid errors in C++ mode.
+       * lib/wchar.in.h (wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr): Use
+       _GL_CXXALIAS_SYS_CAST2 instead of _GL_CXXALIAS_SYS. On glibc >= 2.10
+       systems, use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN.
+       Reported by Bruce Korb <bruce.korb@gmail.com>.
+
+2011-04-01  Bruno Haible  <bruno@clisp.org>
+
+       wcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems.
+       * m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Require AC_USE_SYSTEM_EXTENSIONS.
+       * m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Likewise.
+       * modules/wcpcpy (Depends-on): Add extensions.
+       * modules/wcpncpy (Depends-on): Likewise.
+       * doc/posix-functions/wcpcpy.texi: Mention missing declaration on glibc
+       systems.
+       * doc/posix-functions/wcpncpy.texi: Likewise.
+       * doc/posix-functions/wcwidth.texi: Likewise.
+
+2011-03-31  Eric Blake  <eblake@redhat.com>
+
+       nonblocking: fix mingw test failures
+       * lib/nonblocking.c (set_nonblocking_flag): Succeed when clearing
+       non-blocking flag on regular file.
+       (get_nonblocking_flag): Set errno on invalid fd.
+       * tests/test-nonblocking.c (main): Avoid test failure on
+       directories if fchdir is not active.
+       * modules/nonblocking-tests (Depends-on): Drop unused dependency.
+
+2011-03-31  Bruno Haible  <bruno@clisp.org>
+
+       Fix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23.
+       * m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): Hide the
+       gl_WARN_ON_USE_PREPARE definition from 'aclocal'.
+       Reported by Simon Josefsson <simon@josefsson.org>.
+
+2011-03-31  Bruno Haible  <bruno@clisp.org>
+       and Eric Blake  <eblake@redhat.com>
+
+       nonblocking: new module
+       * modules/nonblocking: New module.
+       * modules/nonblocking-tests: Likewise.
+       * lib/nonblocking.h: New file.
+       * lib/nonblocking.c: Likewise.
+       * tests/test-nonblocking.c: New test.
+       * lib/ioctl.c (ioctl) [mingw]: Update comment.
+
+2011-03-30  Bruno Haible  <bruno@clisp.org>
+
+       stdio: Avoid GCC >= 4.4 warnings when using %lld and similar on mingw.
+       * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_PRINTF): Use 'gnu_printf' format
+       instead of 'printf' format for GCC >= 4.4.
+       (_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): New macro.
+       (fprintf, printf, vfprintf, vprintf): Declare with
+       _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM when the function ends up calling
+       the system's vfprintf() function.
+       Reported by Daniel P. Berrange <berrange@redhat.com> via Eric Blake.
+
 2011-03-30  Eric Blake  <eblake@redhat.com>
 
        passfd: fix scoping bug
-       * lib/passfd.c (sendfd, passfd): Don't let buf go out of scope
+       * lib/passfd.c (sendfd, recvfd): Don't let buf go out of scope
        before sendmsg/recvmsg.
 
        passfd: standardize coding conventions
@@ -9,7 +296,7 @@
        can be learned at compile time.
        * lib/passfd.c (MSG_CMSG_CLOEXEC): Reduce number of in-function
        ifdefs.
-       (passfd, recvfd): Follow gnulib code conventions.
+       (sendfd, recvfd): Follow gnulib code conventions.
 
        passfd: fix incorrect sendmsg arguments
        * lib/passfd.c (sendfd): Avoid uninitialized msg_flags field, and
 
 2011-01-23  Paul Eggert  <eggert@cs.ucla.edu>
 
-       Allow the user to avoid the GNULIB_TEST_* macros.
+       Allow the user to avoid the HAVE_RAW_DECL_* macros.
        * m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): New macro.
 
 2011-01-23  Bruno Haible  <bruno@clisp.org>