_Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER.
[gnulib.git] / ChangeLog
index e56cd80..2897371 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,452 @@
+2011-07-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       _Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER.
+       * build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__.
+       Reparenthesize to avoid GCC warning.
+       Support Microsoft's syntax.
+       * m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
+
+       _Noreturn-tests: remove module
+       * modules/_Noreturn-tests: Remove.
+       * modules/stdnoreturn-tests (Files): Remove tests/test-_Noreturn.c.
+       * tests/test-_Noreturn.c: Remove.
+       * tests/test-stdnoreturn.c: Merge from the old
+       tests/test-_Noreturn.c, testing both noreturn and _Noreturn.
+
+       * top/maint.mk: Adjust to new noreturn support.
+       (gl_extract_significant_defines_): Omit pattern ATTRIBUTE_NORETURN.
+       (def_sym_regex): Do not remove ATTRIBUTE_NORETURN.
+
+       xalloc: use stdnoreturn.h
+       * lib/xalloc.h: Include <stdnoreturn.h>.
+       (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+       * modules/xalloc (Depends-on): Add stdnoreturn.
+
+       xstrtol: use stdnoreturn.h
+       * lib/xstrtol.h: Include <stdnoreturn.h>.
+       (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+       * modules/xstrtol (Depends-on): Add stdnoreturn.
+
+       xmemdup0: use stdnoreturn.h
+       * lib/xmemdup0.h: Include <stdnoreturn.h>.
+       (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+       * modules/xmemdup0 (Depends-on): Add stdnoreturn.
+
+       sigpipe-die: use stdnoreturn.h
+       * lib/sigpipe-die.h: Include <stdnoreturn.h>.
+       (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+       * modules/sigpipe-die (Depends-on): Add stdnoreturn.
+
+       openat: use stdnoreturn.h
+       * lib/openat.h: Include <stdnoreturn.h>.
+       (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
+       * modules/openat (Depends-on): Add stdnoreturn.
+
+       * lib/openat-die.c (openat_save_fail): Modernize comment.
+
+       * lib/xalloc-die.c (xalloc_die): Modernize comment.
+
+       * lib/glthread/thread.h: Modernize comment.
+
+       obstack: use _Noreturn
+       * lib/obstack.c (__attribute__): Remove macro.
+       (print_and_abort): Use _Noreturn.
+
+       c-stack: use _Noreturn
+       * lib/c-stack.c (die, overflow_handler, segv_handler):
+       Use _Noreturn rather than __attribute__((noreturn)).
+
+       argmatch-tests, exclude_tests: use _Noreturn
+       * tests/test-argmatch.c, tests/test-exclude.c (_GL_ATTRIBUTE_NORETURN):
+       Remove.
+       (ARGMATCH_DIE_DECL): Use _Noreturn instead.
+
+       stdlib: use _Noreturn
+       * lib/stdlib.in.h (_GL_ATTRIBUTE_NORETURN): Remove.
+       (_Exit): Use _Noreturn rather than _GL_ATTRIBUTE_NORETURN.
+       * modules/stdlib (Depends-on): Add _Noreturn.
+       (stdlib.h): Depend on $(_NORETURN_H), and copy it in.
+
+       stdnoreturn-tests: new module
+       * modules/stdnoreturn-tests, tests/test-stdnoreturn.c: New files.
+
+       stdnoreturn: new module
+       * MODULES.html.sh (Noreturn <stdnoreturn.h>): New section.
+       * m4/stdnoreturn.m4, modules/stdnoreturn: New files.
+
+       _Noreturn-tests: new module
+       * modules/_Noreturn-tests, tests/test-_Noreturn.c: New files.
+
+       _Noreturn: new module
+       * MODULES.html.sh (Support for systems lacking draft ISO C 1X):
+       New section, mentioning it.
+       * build-aux/_Noreturn.h, modules/_Noreturn: New files.
+
+       * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
+
+2011-07-11  Eric Blake  <eblake@redhat.com>
+
+       ffs: new module
+       * modules/ffs: New file.
+       * m4/ffs.m4: Likewise.
+       * lib/ffs.c: Likewise.
+       * m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Add default.
+       * modules/strings (Makefile.am): Substitute witness.
+       (Depends-on): Add c++defs.
+       * lib/strings.in.h (ffs): Declare.
+       * modules/ffs-tests: New test file.
+       * tests/test-ffs.c: Test new module.
+       * MODULES.html.sh (Integer arithmetic functions): Mention it.
+       * doc/posix-functions/ffs.texi (ffs): Likewise.
+
+       regex: avoid compiler warning
+       * lib/regex.c (includes): Include <strings.h>, for use of
+       strcasecmp in regcomp.c.
+       Reported by Joachim Schmitz.
+
+2011-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdint: respect system's intmax_t if INTMAX_MAX
+       * lib/stdint.in.h (intmax_t, uintmax_t): If the system defines
+       INTMAX_MAX, assume its intmax_t is OK.  Similarly for and
+       uintmax_t.  This is for some Mac OS X builds, where intmax_t is
+       long but int64_t is long long, and where we will clash with the
+       system intmax_t if we override it.  See
+       <http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00160.html>.
+       (INTMAX_C, UINTMAX_C): For consistency, respect the system's
+       INTMAX_C if INTMAX_MAX and INTMAX_C are both defined, and
+       similarly for UINTMAX_C.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask tests: Avoid a compiler warning.
+       * tests/test-pthread_sigmask1.c (main): Complain if system() returns
+       non-zero.
+
+       sigprocmask tests: A better way to avoid a compiler warning.
+       * tests/test-sigprocmask.c: Don't include "ignore-value.h".
+       (main): Complain if system() returns non-zero.
+       * modules/sigprocmask-tests (Depends-on): Remove ignore-value.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Work around IRIX bug.
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the IRIX
+       bug.
+       * lib/pthread_sigmask.c (pthread_sigmask): usleep for some time when
+       there may be unblocked pending signals.
+       * doc/posix-functions/pthread_sigmask.texi: Mention the IRIX bug.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Work around Cygwin bug.
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the Cygwin
+       bug.
+       * lib/pthread_sigmask.c (pthread_sigmask): Fix the return value from
+       the system's pthread_sigmask function.
+       * doc/posix-functions/pthread_sigmask.texi: Mention the Cygwin bug.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Work around bug in single-threaded implementation.
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the
+       FreeBSD, HP-UX, Solaris bug.
+       (gl_PREREQ_PTHREAD_SIGMASK): New macro.
+       * lib/pthread_sigmask.c: Include <stddef.h>.
+       (pthread_sigmask): If HAVE_PTHREAD_SIGMASK, define as a wrapper around
+       the system's pthread_sigmask function.
+       * modules/pthread_sigmask (configure.ac): Invoke
+       gl_PREREQ_PTHREAD_SIGMASK.
+       * doc/posix-functions/pthread_sigmask.texi: Mention bug on FreeBSD,
+       HP-UX, Solaris.
+
+2011-07-08  Eric Blake  <eblake@redhat.com>
+
+       test-sigprocmask: avoid compiler warning
+       * modules/sigprocmask-tests (Depends-on): Add ignore-value.
+       * tests/test-sigprocmask.c (main): Use it to silence warning.
+       Reported by Jim Meyering.
+
+       test-snprintf: avoid compiler warning
+       * tests/test-snprintf.c (main): Avoid shadowed declaration.
+       * tests/test-vsnprintf.c (main): Likewise.
+       Reported by Jim Meyering.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'pthread_sigmask'.
+       * modules/pthread_sigmask-tests: New file.
+       * tests/test-pthread_sigmask1.c: New file, based on
+       tests/test-sigprocmask.c.
+       * tests/test-pthread_sigmask2.c: New file.
+
+2011-07-08  Jim Meyering  <meyering@redhat.com>
+
+       test-getopt.h: avoid warning about an unused variable
+       * tests/test-getopt.h (test_getopt): Remove unused variable, "c".
+
+2011-07-07  Jim Meyering  <meyering@redhat.com>
+
+       maint: reduce list of files exempt from sc_prohibit_leading_TABs
+       * Makefile (sc_prohibit_leading_TABs): Don't exempt m4/po.m4,
+       now that it no longer contains leading TABs.
+       Remove unused "url=FIXME" statement.
+
+2011-07-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       pthread_sigmask: Assume POSIX when not gl_THREADLIB.
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
+       When gl_THREADLIB is not in use, assume that the POSIX sematics
+       are desired.  This is better for Emacs, which uses POSIX semantics
+       on GNUish and/or POSIXish platforms, and does not use threads at
+       all otherwise.
+
+       pthread_sigmask: fix typo when testing for libraries
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
+       AC_LINK_IFELSE, not AC_COMPILE_IFELSE.
+
+2011-07-08  Eric Blake  <eblake@redhat.com>
+
+       fts: introduce FTS_NOATIME
+       * lib/fts_.h (FTS_NOATIME): New bit flag.
+       (FTS_OPTIONMASK): Adjust.
+       * lib/fts.c (diropen, fts_open, fts_build): Honor it.
+       (fd_ring_check): Debug code unconditionally uses O_NOATIME.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'thread'.
+       * modules/thread-tests: New file.
+       * tests/test-thread_self.c: New file.
+       * tests/test-thread_create.cc: New file.
+
+2011-07-08  Bruno Haible  <bruno@clisp.org>
+
+       thread: Avoid gcc warnings when using gl_thread_self().
+       * lib/glthread/thread.h (gl_thread_self): Return a pthread_t, not a
+       'void *'.
+       (gl_thread_self_pointer): Update.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       signal-c++-tests: Check declaration of pthread_sigmask.
+       * tests/test-signal-c++.cc: Check declaration of pthread_sigmask.
+       * modules/signal-c++-tests (Makefile.am): Link test-signal-c++ against
+       $(LIB_PTHREAD_SIGMASK).
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Fix link requirements on OSF/1 5.1 and with pth.
+       * lib/signal.in.h (pthread_sigmask): Override if
+       REPLACE_PTHREAD_SIGMASK is 1.
+       * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
+       REPLACE_PTHREAD_SIGMASK.
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Set also
+       REPLACE_PTHREAD_SIGMASK. Set and substitute LIB_PTHREAD_SIGMASK.
+       * modules/signal (Makefile.am): Substitute REPLACE_PTHREAD_SIGMASK.
+       * modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
+       (Link): Set to $(LIB_PTHREAD_SIGMASK), not $(LIBMULTITHREAD).
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Ensure declaration in <signal.h>.
+       * lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, Solaris 2.6,
+       include <pthread.h>.
+       * doc/posix-functions/pthread_sigmask.texi: Mention the header file
+       problem.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Document the module.
+       * doc/posix-functions/pthread_sigmask.texi: Mention the new module.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Follow gnulib conventions.
+       * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Renamed from
+       gl_PTHREAD_SIGMASK.
+       * modules/pthread_sigmask (configure.ac): Update.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Make declaration C++ safe.
+       * lib/signal.in.h: In two special conditions, just do an #include_next.
+       (pthread_sigmask): Test HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
+       Invoke _GL_CXXALIAS_SYS and _GL_CXXALIASWARN.
+       * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
+       HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
+       * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Set HAVE_PTHREAD_SIGMASK,
+       not REPLACE_PTHREAD_MASK.
+       * modules/signal (Makefile.am): Substitute HAVE_PTHREAD_SIGMASK,
+       not REPLACE_PTHREAD_MASK.
+       * modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       pthread_sigmask: Fix return value.
+       * lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro.
+       * lib/pthread_sigmask.c: New file.
+       * modules/pthread_sigmask (Files): Add it.
+       (configure.ac): Invoke AC_LIBOBJ.
+
+2011-07-07  Eric Blake  <eblake@redhat.com>
+
+       getopt: more portable argv creation
+       * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Rather than casting away
+       const, use char arrays rather than strings.
+       Suggested by Paul Eggert.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'sigprocmask'.
+       * modules/sigprocmask-tests: New file.
+       * tests/test-sigprocmask.c: New file.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       float tests: Tweak.
+       * tests/test-float.c (main): Tweak skip message.
+
+2011-07-07  Eric Blake  <eblake@redhat.com>
+
+       getopt: avoid compiler warning during configure
+       * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Avoid problems with
+       assigning string literals to non-const pointer.
+
+       getopt-gnu: avoid crash in glibc getopt
+       * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Detect the problem.
+       * tests/test-getopt.h (test_getopt): Enhance test.
+       * tests/test-getopt_long.h (test_getopt_long): Likewise.
+       * doc/posix-functions/getopt.texi (getopt): Document it.
+       * doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
+       * doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
+       Likewise.
+
+2011-07-07  Ulrich Drepper  <drepper@gmail.com>
+
+       getopt: handle W; without long options in getopt [BZ #12922]
+       * lib/getopt.c (_getopt_internal_r): When "W;" is in short options
+       but no long options are defined, just return 'W'.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       Avoid literal tabs.
+       * m4/po,m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Use a shell
+       variable containing a tab instead of a literal tab.
+       Reported by Jim Meyering.
+
+2011-07-07  Bruno Haible  <bruno@clisp.org>
+
+       Comments.
+       * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Update comments about mingw.
+
+2011-07-06  Bruno Haible  <bruno@clisp.org>
+
+       sys_select: Fix compilation error on mingw, introduced on 2011-06-30.
+       * lib/sys_select.in.h: Don't include <sys/socket.h>. Instead, include
+       <winsock2.h>.
+       (rpl_fd_isset, FD_ISSET): New definitions, copied from
+       lib/sys_socket.in.h.
+       (close, gethostname): Hide declarations from <winsock2.h>.
+       (socket, connect, accept, bind, getpeername, getsockname, getsockopt,
+       listen, recv, send, recvfrom, sendto, setsockopt, shutdown): Likewise.
+       * lib/sys_socket.in.h (close, gethostname): Tweak indentation.
+       (select): Don't override if gnulib's <sys/select.h> was already
+       included.
+       * lib/unistd.in.h (socket, connect, accept, bind, getpeername,
+       getsockname, getsockopt, listen, recv, send, recvfrom, sendto,
+       setsockopt, shutdown, select): Tweak indentation.
+
+2011-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * modules/pthread_sigmask (configure.ac): gl_SIGNAL_MODULE_INDICATOR
+       and not gl_SYS_SELECT_MODULE_INDICATOR, fixing a typo exposed
+       in an application that does not use the sys_select module.
+
+2011-07-06  Erik Faye-Lund  <kusmabite@gmail.com>
+
+       poll: do not return 0 on timeout=-1
+       * lib/poll.c: Loop with yield if no events occured
+
+2011-07-06  Eric Blake  <eblake@redhat.com>
+
+       pthread_sigmask: always replace when not using pthread
+       * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Force sigprocmask
+       replacement when using some threading other than pthread.  Fix
+       logic bug.
+
+2011-07-06  Bruno Haible  <bruno@clisp.org>
+
+       Comments.
+       * m4/printf.m4: Update comments about mingw.
+
+2011-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sys_select: define sigset_t more portably
+       * lib/sys_select.in.h: Always include <sys/types.h>, since
+       we now need sigset_t and mingw defines it there.
+       Include <signal.h> before split inclusion guard, to avoid
+       mishaps on Solaris, whose <signal.h> eventually includes us.
+       * m4/signal_h.m4 (gl_SIGNAL_H): Require gl_CHECK_TYPE_SIGSET_T.
+       (gl_CHECK_TYPE_SIGSET_T): New macro, most of the contents of
+       which come from ...
+       * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require
+       gl_CHECK_TYPE_SIGSET_T.
+       (gl_PREREQ_SIGPROCMASK): Now a no-op, since gl_CHECK_TYPE_SIGSET_T
+       does the real work.
+       * modules/sys_select (Depends-on): Add 'signal'.
+
+       * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Poison pselect.
+       Suggested by Bruno Haible.
+
+       pselect: Use pthread_sigmask, not sigprocmask.
+       * lib/pselect.c (pselect): Use pthread_sigmask, as it supports
+       multithreaded apps better than sigprocmask does.
+       * modules/pselect (Depends-on): Depend on pthread_sigmask, not
+       sigprocmask directly.
+
+2011-07-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/pselect.c (pselect): Use plain name, without "rpl_".
+       Don't #undef,  since we don't need any underlying pselect.
+       * modules/pselect (configure.ac): Use our pselect.o if !HAVE_PSELECT.
+       (Depends-on): Add select.
+       (Link): Add $(LIBSOCKET).
+       These changes suggested by Bruno Haible.
+
+       pselect: document better
+       * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
+       * doc/posix-functions/pselect.texi (pselect): Document new module.
+
+       pthread_sigmask: new module
+       * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
+       * doc/posix-functions/pthread_sigmask.texi: Document new module.
+       * lib/signal.in.h (pthread_sigmask): Arrange for replacement.
+       This is done only as a macro; I don't know how well that'll
+       work for C++.  Move <sys/types.h> include before the include_next,
+       to avoid mishap on Solaris.
+       * m4/signal_h.m4 (gl_SIGNAL_H, gl_SIGNAL_H_DEFAULTS): Check for it.
+       * modules/signal (Makefile.am): Substitute the check's results.
+       * modules/pthread_sigmask, m4/pthread_sigmask.m4: New files.
+
+       test-pselect: new module
+       * modules/pselect-tests, tests/test-pselect.c: New files.
+       * tests/test-select.c, tests/test-sys_select-c++.cc:
+       If TEST_PSELECT is defined, test pselect instead of testing select.
+
+       * tests/test-sys_select.c (sigset_t): Test for it, too.
+       Suggested by Bruno Haible.
+
+2011-07-05  Eric Blake  <eblake@redhat.com>
+
+       snprintf: guarantee %1$d, for libintl
+       * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require %1$d support.
+       * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise.
+       * doc/posix-functions/snprintf.texi (snprintf): Update.
+       * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
+       * tests/test-snprintf.c (main): Enhance test.
+       * tests/test-vsnprintf.c (main): Likewise.
+
 2011-07-05  Jim Meyering  <meyering@redhat.com>
 
        maint: exempt stdio-read.c and stdio-write.c from the cppi check