changeset 14115:ef8b363d4b54

hand merged
author Bruce Korb <bkorb@gnu.org>
date Tue, 14 Dec 2010 11:49:02 -0800
parents 3b33c82c8c95 (current diff) 2a046f95cb50 (diff)
children 2256b67fa8bc
files ChangeLog build-aux/git-version-gen lib/pipe.c lib/pipe.h m4/pipe.m4 modules/arpa_inet modules/iconv-h modules/link-warning modules/pipe-tests modules/string modules/sys_socket modules/termios modules/unistd modules/wchar tests/test-pipe.c tests/test-pipe.sh
diffstat 1450 files changed, 8649 insertions(+), 4207 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,520 @@
+<<<<<<< HEAD
+=======
+2010-12-13  Pádraig Brady <P@draigBrady.com>
+
+	read-file: Improve handling of large files
+	* lib/read-file.c (fread_file): Minimize realloc()s
+	for regular files, and better manage sizes around SIZE_MAX.
+
+2010-12-13  Eric Blake  <eblake@redhat.com>
+
+	cloexec, fcntl: relax license
+	* modules/cloexec (License): Change from LGPLv3+ to LGPLv2+, with
+	consent from all contributors.
+	* modules/fcntl (License): Likewise.
+
+2010-12-10  Bruno Haible  <bruno@clisp.org>
+
+	Tests for module 'pipe-posix'.
+	* modules/pipe-posix-tests: New file.
+	* tests/test-pipe.c: New file, based on tests/test-pipe2.c.
+
+2010-12-10  Bruno Haible  <bruno@clisp.org>
+
+	pipe-posix: Make it work in C++ mode.
+	* lib/unistd.in.h: Don't include <io.h>, <fcntl.h> for pipe.
+	(pipe): Use common idiom, not a macro definition.
+	* lib/pipe.c: New file.
+	* m4/pipe.m4: New file.
+	* modules/pipe-posix (Description): Enhance.
+	(Files): Add lib/pipe.c, m4/pipe.m4.
+	(configure.ac): Invoke gl_FUNC_PIPE.
+	* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_PIPE.
+	* modules/unistd (Makefile.am): Substitute HAVE_PIPE.
+	* tests/test-unistd-c++.cc: Check the signature of pipe.
+
+2010-12-10  Bruno Haible  <bruno@clisp.org>
+
+	Rename module 'pipe' to 'spawn-pipe'.
+	* modules/spawn-pipe: New file, renamed from modules/pipe.
+	(Files, configure.ac, Makefile.am): Update.
+	(Include): Mention "spawn-pipe.h" instead of "pipe.h".
+	* modules/pipe: Reduce to an obsolete indirection to 'spawn-pipe'.
+	* lib/spawn-pipe.h: New file, renamed from lib/pipe.h.
+	* lib/spawn-pipe.c: New file, renamed from lib/pipe.c. Include
+	"spawn-pipe.h" instead of "pipe.h".
+	* m4/spawn-pipe.m4: New file, renamed from m4/pipe.m4. Rename gl_PIPE
+	to gl_SPAWN_PIPE.
+	* modules/spawn-pipe-tests: New file, renamed from modules/pipe-tests.
+	(Files, Makefile.am): Update.
+	* tests/test-spawn-pipe.sh: New file, renamed from tests/test-pipe.sh.
+	Update.
+	* tests/test-spawn-pipe.c: New file, renamed from tests/test-pipe.c.
+	Include "spawn-pipe.h" instead of "pipe.h".
+	* lib/csharpcomp.c: Include "spawn-pipe.h" instead of "pipe.h".
+	* lib/javacomp.c: Likewise.
+	* lib/javaversion.c: Likewise.
+	* lib/pipe-filter-gi.c: Likewise.
+	* lib/pipe-filter-ii.c: Likewise.
+	* modules/csharpcomp (Depends-on): Add 'spawn-pipe', remove 'pipe'.
+	* modules/javacomp (Depends-on): Likewise.
+	* modules/javaversion (Depends-on): Likewise.
+	* modules/pipe-filter-gi (Depends-on): Likewise.
+	* modules/pipe-filter-ii (Depends-on): Likewise.
+	* MODULES.html.sh (Executing programs): Update.
+	* NEWS: Mention the change.
+
+2010-12-10  Eric Blake  <eblake@redhat.com>
+
+	pipe-posix: new module
+	* modules/pipe-posix: New file.
+	* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set default.
+	(gl_UNISTD_H): Check for declaration.
+	* modules/unistd (Makefile.am): Substitute it.
+	* lib/unistd.in.h (pipe): Provide it for mingw.
+	* doc/posix-functions/pipe.texi (pipe): Update documentation.
+	* MODULES.html.sh (File descriptor based Input/Output): Likewise.
+
+2010-12-07  Bruno Haible  <bruno@clisp.org>
+
+	unistr/u8-strcmp: Avoid collision with libc function on Solaris 11.
+	* lib/unistr.in.h (u8_strcmp) [__sun]: Declare with real name
+	u8_strcmp_gnu.
+	* modules/unistr/u8-strcmp (configure.ac): Bump version number.
+
+2010-12-06  Bruno Haible  <bruno@clisp.org>
+
+	Update internal documentation.
+	* m4/README: Document new idioms for AC_RUN_IFELSE invocations.
+
+2010-12-04  Bruno Haible  <bruno@clisp.org>
+
+	Put more information about failed tests into the test return codes.
+	* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change test
+	program so that it returns an enumerated value (0, 1, 2, 3, 4, ...).
+	* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
+	* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
+	* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
+	* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
+	* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
+	* m4/intdiv0.m4 (gt_INTDIV0): Likewise.
+	* m4/isapipe.m4 (gl_PREREQ_ISAPIPE): Likewise.
+	* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
+	* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Likewise.
+	* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
+	* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
+	* m4/stdint.m4 (gl_STDINT_H): Likewise.
+	* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Change test program so that it
+	returns a bit mask.
+	* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise.
+	* m4/chown.m4 (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Likewise.
+	* m4/dup2.m4 (gl_FUNC_DUP2): Likewise.
+	* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise.
+	* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
+	* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise.
+	* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise.
+	* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise.
+	* m4/iconv.m4 (AM_ICONV_LINK): Likewise.
+	* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Likewise.
+	* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
+	* m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise.
+	* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
+	* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise.
+	* m4/link.m4 (gl_FUNC_LINK): Likewise.
+	* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
+	* m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise.
+	* m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Likewise.
+	* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
+	* m4/memchr.m4 (gl_FUNC_MEMCHR): Likewise.
+	* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
+	* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
+	* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
+	* m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
+	* m4/open.m4 (gl_FUNC_OPEN): Likewise.
+	* m4/poll.m4 (gl_FUNC_POLL): Likewise.
+	* m4/popen.m4 (gl_FUNC_POPEN): Likewise.
+	* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE,
+	gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE,
+	gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_LS,
+	gl_PRINTF_PRECISION): Likewise.
+	* m4/regex.m4 (gl_REGEX): Likewise.
+	* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
+	* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
+	* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Likewise.
+	* m4/stat.m4 (gl_FUNC_STAT): Likewise.
+	* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
+	* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
+	* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
+	* m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Likewise.
+	* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
+	* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
+	* m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
+	* m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise.
+	* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise.
+	* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
+	* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
+	* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
+	* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
+	* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
+	* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
+	* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Likewise.
+	(gl_FLOATTYPE_SIGN_LOCATION): Change test program so that it returns an
+	enumerated value.
+	* m4/acl.m4 (gl_ACL_GET_FILE): Use "if ... return 1; return 0;" style.
+
+2010-12-04  Bruno Haible  <bruno@clisp.org>
+
+	Update for Solaris 11 2010-11.
+	* doc/{glibc,posix}-{functions,headers}: Add info about Solaris 11
+	Express, released in November 2010.
+
+2010-12-04  Bruno Haible  <bruno@clisp.org>
+
+	nproc: Relax license.
+	* modules/nproc (License): Change to LGPL, with consent by Glen Lenker
+	and Paul Eggert.
+	Requested by Ludovic Courtès <ludo@gnu.org>.
+
+2010-12-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+	utimecmp: fine-grained src to nearby coarse-grained dest
+
+	* lib/utimecmp.c (utimecmp): When UTIMECMP_TRUNCATE_SOURCE is set,
+	and the source is on a file system with higher-resolution time
+	stamps, than the destination, and _PC_TIMESTAMP_RESOLUTION does
+	not work, and the time stamps are close together, the algorithm to
+	determine the exact resolution from the read-back mtime was buggy:
+	it had a "!=" where it should have had an "==".  This bug has been
+	in the code ever since it was introduced to gnulib.
+	Problem reported by Dan Jacobson in
+	<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7529>.
+
+2010-11-30  Bruno Haible  <bruno@clisp.org>
+
+	strerror_r-posix: Fix autoconf test.
+	* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Fix typo.
+
+2010-11-28  Bruno Haible  <bruno@clisp.org>
+            Paul Eggert  <eggert@cs.ucla.edu>
+
+	Tests for module 'getdomainname'.
+	* modules/getdomainname-tests: New file.
+	* tests/test-getdomainname.c: New file, based on
+	tests/test-gethostname.c.
+
+2010-11-28  Bruno Haible  <bruno@clisp.org>
+            Paul Eggert  <eggert@cs.ucla.edu>
+
+	getdomainname: Use the system function when possible.
+	* lib/unistd.in.h: Include <netdb.h>, for getdomainname's declaration.
+	(getdomainname): Replace if needed. Provide the declaration if it is
+	missing. Don't use _GL_CXXALIAS_SYS_CAST.
+	* lib/getdomainname.c: Include <limits.h> and <sys/systeminfo.h>.
+	(getdomainname): When the system has getdomainname, call the system
+	function. When sysinfo (SI_SRPC_DOMAIN, ...) is possible, use that.
+	* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Require
+	gl_HEADER_SYS_SOCKET and gl_HEADER_NETDB. Test whether the function is
+	found in libnsl. Look for the declaration also in <netdb.h>. Replace
+	the function if its second argument is of type 'int' or if it is found
+	in libnsl.
+	(gl_PREREQ_GETDOMAINNAME): Define HAVE_GETDOMAINNAME. Check for
+	<sys/systeminfo.h> and sysinfo().
+	* modules/getdomainname (Depends-on): Add netdb, sys_socket.
+	* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
+	HAVE_DECL_GETDOMAINNAME and REPLACE_GETDOMAINNAME instead of
+	HAVE_GETDOMAINNAME.
+	* modules/unistd (Makefile.am): Substitute HAVE_DECL_GETDOMAINNAME and
+	REPLACE_GETDOMAINNAME instead of HAVE_GETDOMAINNAME.
+	* doc/glibc-functions/getdomainname.texi: Document the problems with
+	the getdomainname declaration.
+
+2010-11-28  Bruno Haible  <bruno@clisp.org>
+
+	sys_socket: Ensure ss_family field on AIX.
+	* lib/sys_socket.in.h (ss_family): New macro definition.
+	* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Set
+	HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY. Set SYS_SOCKET_H if necessary.
+	(gl_SYS_SOCKET_H_DEFAULTS): Initialize
+	HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY.
+	* modules/sys_socket (Makefile.am): Substitute
+	HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY.
+	* doc/posix-headers/sys_socket.texi: Mention the AIX bug.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	readline: Improve configure output.
+	* m4/readline.m4 (gl_FUNC_READLINE): Make the
+	"checking for readline..." result understandable.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	*printf-posix: Detect a bug on Solaris 10/x86.
+	* m4/printf.m4 (gl_PRINTF_PRECISION): Detect crash with large precision
+	for floating-point output.
+	* tests/test-vasnprintf-posix.c (test_function): Test precision with %f
+	directive.
+	* tests/test-snprintf-posix.h (test_function): Likewise.
+	* tests/test-sprintf-posix.h (test_function): Likewise.
+	* tests/test-vasprintf-posix.c (test_function): Likewise.
+	* doc/posix-functions/fprintf.texi: Mention Solaris/x86 bug.
+	* doc/posix-functions/printf.texi: Likewise.
+	* doc/posix-functions/snprintf.texi: Likewise.
+	* doc/posix-functions/sprintf.texi: Likewise.
+	* doc/posix-functions/vfprintf.texi: Likewise.
+	* doc/posix-functions/vprintf.texi: Likewise.
+	* doc/posix-functions/vsnprintf.texi: Likewise.
+	* doc/posix-functions/vsprintf.texi: Likewise.
+	* doc/glibc-functions/obstack_printf.texi: Likewise.
+	* doc/glibc-functions/obstack_vprintf.texi: Likewise.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	Fix link error when module libunistring-optional is in use.
+	* modules/striconveh-tests (Makefile.am): Link with $(LIBUNISTRING).
+	* modules/striconveha-tests (Makefile.am): Likewise.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	regex: Mention link dependencies.
+	* modules/regex (Link): New section.
+	* modules/rpmatch (Link): Likewise.
+	* modules/regex-quote-tests (Makefile.am): Link with $(LIBINTL).
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	ftoastr: Fix compilation error on Solaris.
+	* lib/ftoastr.c: Include <config.h>.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	getloadavg: Update documentation.
+	* doc/glibc-functions/getloadavg.texi: Mention the Solaris problem.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	sys_socket: Fix test whether the functions are declared.
+	* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Include <sys/socket.h>,
+	not <sys/select.h>.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+	getpass: Make sure to get system declaration on some platforms.
+	* m4/getpass.m4 (gl_FUNC_GETPASS, gl_FUNC_GETPASS_GNU): Require
+	gl_USE_SYSTEM_EXTENSIONS.
+	* modules/getpass (Depends-on): Add extensions.
+
+2010-11-26  Bruno Haible  <bruno@clisp.org>
+
+	iconv-h: Fix test-iconv-h-c++ failure on Solaris 11 2010-11.
+	* lib/iconv.in.h (iconv_open, iconv, iconv_close): Define only if the
+	'iconv' module is present.
+	(ICONV_CONST): New macro.
+	* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Initialize GNULIB_ICONV and
+	ICONV_CONST.
+	* m4/iconv.m4 (AM_ICONV): If the gnulib module 'iconv-h' is present,
+	set ICONV_CONST.
+	* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Don't set ICONV_CONST
+	here.
+	* modules/iconv (configure.ac): Invoke gl_ICONV_MODULE_INDICATOR.
+	* modules/iconv-h (Makefile.am): Substitute GNULIB_ICONV.
+	* tests/test-iconv-h.c (ICONV_CONST): Don't define here.
+	* tests/test-iconv-h-c++.cc (ICONV_CONST): Don't define here.
+	(iconv_open, iconv, iconv_close): Test only if the 'iconv' module is
+	present.
+
+2010-11-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+	ftoastr: comment fix
+	* lib/ftoastr.c: "little" -> "little or no" in comment
+
+2010-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+	stdint: port to GCC 4.3 + OSX + Octave
+	On this platform, stdint.h is buggy and defines int64_t to long
+	long int.  The replacement defined it to long int, causing
+	problems with C++ style name mangling.  Instead, trust the system
+	definition if INT64_MAX is defined, and likewise for the unsigned
+	variant.   Problem reported by Jarno Rajahalme in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-04/msg00143.html>.
+	* lib/stdint.in.h (GL_INT64_T): Define if INT64_MAX is defined,
+	and don't mess with int64_t and INT64_MAX in this case.
+	(GL_UINT64_T): Likewise for UINT64_MAX and uint64_t.
+
+2010-11-24  Bruno Haible  <bruno@clisp.org>
+
+	doc: Corrections regarding MacOS X 10.4 and 10.5.
+	* doc/{glibc,posix,pastposix}-functions/*.texi: Update info about
+	MacOS X.
+	Reported by Simon Josefsson.
+
+2010-11-22  Ben Pfaff  <blp@cs.stanford.edu>
+
+	Uninstall ".bin" files installed by relocwrapper.
+	* modules/relocatable-prog-wrapper (uninstall-relocwrapper):
+	Recursively run "make uninstall" with ".bin" prefixed to EXEEXT,
+	unless it is already there.
+
+2010-11-21  Bruno Haible  <bruno@clisp.org>
+
+	Update for NetBSD 5.0.
+	* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Don't guess yes on
+	NetBSD; the test fails on NetBSD 5.0.
+	* doc/{glibc,posix,pastposix}-{headers,functions}/*.texi: Update info
+	about NetBSD.
+
+2010-11-21  Bruno Haible  <bruno@clisp.org>
+
+	Update for HP-UX 11.23 and HP-UX 11.31.
+	* doc/{glibc,posix}-{headers,functions}/*.texi: Update info about
+	HP-UX.
+
+2010-11-21  Bruno Haible  <bruno@clisp.org>
+
+	Update for MacOS X 10.5.
+	* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Don't guess yes on
+	MacOS X; the test fails on MacOS X 10.5.8.
+	* doc/{glibc,posix,pastposix}-{headers,functions}/*.texi: Update info
+	about MacOS X.
+
+2010-11-20  Joel E. Denny  <joeldenny@joeldenny.org>
+
+	bootstrap: add bootstrap_sync option.
+	See discussion at
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-10/msg00369.html>,
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00200.html>.
+	* build-aux/bootstrap: Accept --bootstrap-sync to update
+	bootstrap if it is not identical to the local gnulib's
+	bootstrap.  Accept bootstrap_sync=true in bootstrap.conf to
+	enable this by default.  Accept --no-bootstrap-sync to disable
+	it.
+
+2010-11-20  Bruno Haible  <bruno@clisp.org>
+
+	Ensure that <features.h> is included before __GLIBC__ is tested.
+	* lib/printf-parse.h: Include <features.h>.
+	* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Require gl_FEATURES_H.
+	Reported by Mike Frysinger <vapier@gentoo.org>.
+
+	Ensure that <features.h> is included before __GLIBC__ is tested.
+	* lib/wchar.in.h: Include <features.h>.
+	* m4/wchar_h.m4 (gl_WCHAR_H): Require gl_FEATURES_H.
+	* modules/wchar (Makefile.am): Substitute HAVE_FEATURES_H.
+	Reported by Mike Frysinger <vapier@gentoo.org>.
+
+	Ensure that <features.h> is included before __GLIBC__ is tested.
+	* lib/arpa_inet.in.h: Include <features.h>.
+	* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Require gl_FEATURES_H.
+	* modules/arpa_inet (Makefile.am): Substitute HAVE_FEATURES_H.
+	Reported by Mike Frysinger <vapier@gentoo.org>.
+
+	Ensure that <features.h> is included before __GLIBC__ is tested.
+	* build-aux/link-warning.h: Include <features.h>.
+	* modules/link-warning (configure.ac): Require gl_FEATURES_H.
+	(Makefile.am): Substitute HAVE_FEATURES_H into link-warning.h.
+	Reported by Mike Frysinger <vapier@gentoo.org>.
+
+	Ensure that <features.h> is included before __GLIBC__ is tested.
+	* m4/gnulib-common.m4 (gl_FEATURES_H): New macro.
+	Reported by Mike Frysinger <vapier@gentoo.org>.
+
+2010-11-20  Bruno Haible  <bruno@clisp.org>
+
+	memmem: Fix autoconf test.
+	* m4/memmem.m4 (gl_FUNC_MEMMEM): Test HAVE_DECL_MEMMEM, not HAVE_MEMMEM.
+
+2010-11-20  Bruno Haible  <bruno@clisp.org>
+
+	Port to uClibc.
+	* build-aux/link-warning.h (GL_LINK_WARNING): Treat uClibc like glibc.
+	* lib/fcntl.in.h: Likewise.
+	* lib/hard-locale.c (GLIBC_VERSION): Likewise.
+	* lib/mbrtowc.c (mbrtowc): Likewise.
+	* lib/relocatable.c (find_shared_library_fullname): Likewise.
+	* lib/strerror_r.c: Likewise.
+	* lib/unistr/u8-strnlen.c: Likewise.
+	* lib/vasnprintf.c (decimal_point_char): Likewise.
+	* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Likewise.
+	* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Likewise.
+	* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Likewise.
+	* m4/glibc21.m4 (gl_GLIBC21): Likewise.
+	* tests/test-sigaction.c (handler, main): Likewise.
+	* lib/freading.h: Treat uClibc like a non-glibc platform.
+	* lib/freading.c: Likewise.
+	* lib/gettext.h: Likewise.
+	* lib/localename.c (gl_locale_name_thread_unsafe, HAVE_LOCALE_NULL):
+	Likewise.
+	* lib/printf-parse.h (FLAG_LOCALIZED): Likewise.
+	* lib/printf-parse.c (PRINTF_PARSE): Likewise.
+	* lib/propername.c (proper_name_utf8): Likewise.
+	* lib/spawn.in.h: Likewise.
+	* lib/striconv.c (mem_cd_iconv, str_cd_iconv, str_iconv): Likewise.
+	* lib/striconveh.c (iconveh_open, iconv_carefully, iconv_carefully_1,
+	mem_cd_iconveh_internal): Likewise.
+	* lib/striconveha.c (mem_iconveha, str_iconveha): Likewise.
+	* lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk,
+	strstr, strcasestr): Likewise.
+	* lib/unicodeio.c (unicode_to_mb): Likewise.
+	* lib/uniconv/u16-conv-from-enc.c (UTF16_NAME): Likewise.
+	* lib/uniconv/u16-conv-to-enc.c (UTF16_NAME): Likewise.
+	* lib/uniconv/u16-strconv-to-enc.c (UTF16_NAME): Likewise.
+	* lib/uniconv/u32-conv-from-enc.c (UTF32_NAME): Likewise.
+	* lib/uniconv/u32-conv-to-enc.c (UTF32_NAME): Likewise.
+	* lib/uniconv/u32-strconv-to-enc.c (UTF32_NAME): Likewise.
+	* lib/unistr/u8-stpncpy.c: Likewise.
+	* lib/vasnprintf.c (VASNPRINTF): Likewise.
+	* lib/xmalloc.c (HAVE_GNU_CALLOC): Likewise.
+	* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
+	* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
+	* m4/glibc2.m4 (gt_GLIBC2): Likewise.
+	* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Likewise.
+	* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Likewise.
+	* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Likewise.
+	* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE, gl_FUNC_STRCASESTR):
+	Likewise.
+	* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise.
+	* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
+	* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
+	* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
+	* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
+	* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
+	* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
+	* m4/wchar_h.m4 (gl_WCHAR_H): Likewise.
+	* tests/test-getopt.h (OPTIND_MIN): Likewise.
+	* tests/test-striconveha.c (main): Likewise.
+	* tests/test-vasnprintf-posix.c (test_function): Likewise.
+	* tests/test-vasnprintf-posix3.c (test_function, main): Likewise.
+	* doc/posix-functions/getdelim.texi: Mention an uClibc bug.
+	* doc/posix-functions/getline.texi: Likewise.
+	Reported by Mike Frysinger <vapier@gentoo.org>.
+
+2010-11-20  Bruno Haible  <bruno@clisp.org>
+
+	nproc: Fix condition.
+	* lib/nproc.c: Test HAVE_PTHREAD_GETAFFINITY_NP, not
+	HAVE_PTHREAD_AFFINITY_NP.
+
+2010-11-20  Bruno Haible  <bruno@clisp.org>
+
+	Fix a comment.
+	* lib/vasnprintf.c (VASNPRINTF): Fix comment.
+
+2010-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+	ftoastr: don't assume snprintf
+	* lib/ftoastr.c (snprintf) [! GNULIB_SNPRINTF_POSIX]:
+	Implement a subset of snprintf here, by using sprintf safely.
+	* modules/ftoastr (Depends-on): Remove snprintf.
+
+2010-11-19  Jim Meyering  <meyering@redhat.com>
+
+	test-rename.h: fix compilation failure
+	* tests/test-rename.h (test_rename): Add omitted "}".
+
+2010-11-17  Jim Meyering  <meyering@redhat.com>
+
+	maint.mk: add a URL discussing the no-@acronym policy
+	* top/maint.mk (sc_texinfo_acronym): Add a URL in a comment.
+
 2010-11-17  Bruce Korb  <bkorb@gnu.org>
 
 	* libposix/lib/Makefile.am (lpx-config.h): generate the new header
@@ -20,6 +537,45 @@
 	setrlimit under Linux.  Avoid setrlimit/malloc interaction bug.
 	* tests/test-fprintf-posix3.c: ditto
 
+2010-11-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+	ftoastr: depend on snprintf, improve comments
+	* lib/ftoastr.c: Also mention Loitsch's draft.
+	* lib/ftoastr.h: Require WIDTH to be nonnegative.  This isn't
+	needed in the current implementation, but it might simplify
+	speeding up the code later.
+	* modules/ftoastr: Depend on snprintf; this improves portability.
+	Suggested by Bruno Haible in the same email.
+
+	ftoastr: port to hosts lacking strtof and strtold
+	Problem reported by Bruno Haible in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00242.html>.
+	* lib/ftoastr.c (STRTOF): Define to strtod if in a pre-C99
+	environment and strtold (and presumably strtof) are not available.
+	* modules/ftoastr (Files): Add m4/c-strtod.m4.
+	(configure.ac): Require gl_C99_STRTOLD.
+
+2010-11-18  Bruno Haible  <bruno@clisp.org>
+
+	c-strtold: Avoid link error on AIX 7.
+	* lib/c-strtod.c: Test also HAVE_STRTOD_L or HAVE_STRTOLD_L.
+	* m4/c-strtod.m4 (gl_C_STRTOD): Test whether strtod_l exists.
+	(gl_C_STRTOLD): Test whether strtold_l exists.
+	Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
+
+2010-11-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+	intprops: new macro INT_BITS_STRLEN_BOUND
+	* lib/intprops.h (INT_BITS_STRLEN_BOUND): New macro, needed by
+	ftoastr.h.  This exposes an internal of intprops.h that was formerly
+	not exposed.  Also, it uses a slightly tighter bound than before;
+	though this makes no practical difference, we might as well be as
+	tight as we easily can.
+
+	ftoastr: new module, for lossless conversion of floats to short strings
+	* lib/ftoastr.h, lib/ftoastr.c, lib/dtoastr.c, lib/ldtoastr.c:
+	* modules/ftoastr: New files.
+
 2010-11-16  Bruce Korb  <bkorb@gnu.org>
 
 	* libposix/bootstrap: generate libposix module file on the fly.
@@ -28,6 +584,231 @@
 	* libposix/lib/Makefile.am: adjust here, too
 	* gnulib-tool: adjust here, too
 
+2010-11-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+	bootstrap: port to Solaris sed
+	* build-aux/bootstrap (get_version): Port to Solaris sed.
+	See Ralf Wildenhues's note in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00156.html>.
+
+2010-11-14  Jim Meyering  <meyering@redhat.com>
+
+	maint.mk: rename variable: s/noteworthy/gl_noteworthy_news_/
+	* top/maint.mk (gl_noteworthy_news_): Rename from "noteworthy"
+	and move definition closer to sole use.
+
+2010-11-13  Jim Meyering  <meyering@redhat.com>
+
+	remove autoconf-2.57 work-around requiring AC_PROG_EGREP and AC_PROG_CPP
+	Now we require at least autoconf-2.59, which means the work-around
+	is no longer needed.
+	* m4/alloca.m4 (gl_FUNC_ALLOCA): Remove work-around.
+	* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
+	* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise.
+	* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise.
+	* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+	rename, renameat: Avoid test failures at NFS mounted locations.
+	* tests/test-rename.h (dentry_exists, assert_nonexistent): New
+	functions.
+	(test_rename): Use assert_nonexistent.
+	* tests/test-rename.c: Include <dirent.h>.
+	* tests/test-renameat.c: Likewise.
+	Reported by Gary V. Vaughan <gary@gnu.org>.
+
+	rename, renameat: Document Linux bug with NFS
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00154.html>.
+	* doc/posix-functions/rename.texi: Mention the NFS bug on Linux.
+	* doc/posix-functions/renameat.texi: Likewise.
+	Suggested by Eric Blake.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+	rename test: Add comments.
+	* tests/test-rename.h (test_rename): Add structure and comments.
+
+2010-11-13  Eric Blake  <eblake@redhat.com>
+
+	maintainer-makefile: cover a few more files
+	* top/maint.mk (sc_prohibit_test_double_equal): Also cover shell
+	scripts generated within C files, for libvirt.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+	unistr/u8-mbtouc: Improve handling of ill-formed UTF-8 input.
+	* lib/unistr/u8-mbtouc.c (u8_mbtouc): For an invalid multibyte
+	character, return the number of bytes that belong together, not always
+	1.
+	* lib/unistr/u8-mbtouc-unsafe.c (u8_mbtouc_unsafe): Likewise.
+	* lib/unistr/u8-mbtouc-aux.c (u8_mbtouc_aux): Likewise.
+	* lib/unistr/u8-mbtouc-unsafe-aux.c (u8_mbtouc_unsafe_aux): Likewise.
+	* lib/unistr/u8-mbsnlen.c (u8_mbsnlen): Use u8_mbtouc to determine the
+	number of bytes of an invalid character.
+	* tests/unistr/test-u8-mbtouc.c (test_safe_function): New function.
+	(main): Invoke it.
+	* tests/unistr/test-u8-mbtouc.h (test_function): Update two test
+	results.
+	* tests/unistr/test-u8-mbsnlen.c (main): Test various kinds of
+	malformed byte sequences.
+	* modules/unistr/u8-mbtouc (configure.ac): Bump version number.
+	* modules/unistr/u8-mbtouc-unsafe (configure.ac): Likewise.
+	* modules/unistr/u8-mbsnlen (configure.ac): Likewise.
+	Reported by Ben Pfaff and Paolo Bonzini.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+	openat: Work around glibc bug with fchownat() and empty file names.
+	* m4/openat.m4 (gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): New macro.
+	(gl_FUNC_FCHOWNAT): Invoke it.
+	* lib/fchownat.c (rpl_fchownat): Handle the empty file name specially.
+	* doc/posix-functions/fchownat.texi: Document the glibc bug.
+	Reported by Gary V. Vaughan <gary@gnu.org>.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+	openat: Ensure autoconf macro ordering.
+	* m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Require
+	gl_USE_SYSTEM_EXTENSIONS.
+	(gl_FUNC_FCHOWNAT): Require gl_UNISTD_H_DEFAULTS.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+	Update comments.
+	* lib/unistr/u8-check.c: Update file name in comments.
+	* lib/unistr/u8-mblen.c: Likewise.
+	* lib/unistr/u8-prev.c: Likewise.
+	* lib/unistr/u8-strmblen.c: Likewise.
+	* lib/unistr/u8-strmbtouc.c: Likewise.
+
+2010-11-13  Jim Meyering  <meyering@redhat.com>
+
+	tests: avoid test failure on Solaris 10 due to lack of PATH export
+	* tests/test-update-copyright.sh: Don't forget to export PATH.
+
+	init.sh: ensure that IFS is defined, just in case...
+	* tests/init.sh (setup_): Ensure that IFS is defined,
+	so that saving and restoring it works as expected.  This
+	appears to be useful at least for an old version of dash
+	from a long time ago (RH 6).  See here for details:
+	http://thread.gmane.org/gmane.comp.gnu.coreutils.general/436/focus=455
+
+	maint.mk: tighten "test a == b" check
+	* top/maint.mk (sc_prohibit_test_double_equal): Restrict this
+	test to files that contain something like #!/bin/sh.
+	Without this, coreutils would get two false positives in
+	the comments of C source files.
+
+2010-11-12  Eric Blake  <eblake@redhat.com>
+
+	bootstrap: fix typo in previous attempt
+	* build-aux/bootstrap (buildreq): Correct the grouping.
+	Reported by Paul Eggert.
+
+	maintainer-makefile: prohibit test x == x
+	* top/maint.mk (sc_prohibit_test_double_equal): New rule.
+	Based on a report by Matthias Bolte.
+
+	bootstrap: allow FreeBSD gzip
+	* build-aux/bootstrap (get_version): Parse FreeBSD gzip version,
+	which has no '.' and goes to stderr.
+	* build-aux/bootstrap.conf (buildreq): Improve the sample file.
+	Reported by Matthias Bolte.
+
+	maintainer-makefile: check for i18n setup
+	* top/maint.mk (sc_bindtextdomain): Check for evidence that _()
+	will likely work.
+
+2010-11-12  Bruno Haible  <bruno@clisp.org>
+
+	sleep, nanosleep: Work around Linux 2.6.9 nanosleep bug.
+	* lib/sleep.c (rpl_sleep): Split in chunks no larger than 24 days.
+	* lib/nanosleep.c (nanosleep): Likewise.
+
+2010-11-11  Bruno Haible  <bruno@clisp.org>
+
+	fcntl-h: Fix for use of C++ on glibc systems.
+	* lib/fcntl.in.h: Include <sys/stat.h> before include_next <fcntl.h>
+	also on glibc systems in C++ mode.
+	Reported by Gary V. Vaughan <gary@gnu.org>.
+
+2010-11-11  Christian Weisgerber  <naddy@mips.inka.de>  (tiny change)
+
+	mknod: avoid false failure with dash
+	* m4/mknod.m4 (gl_FUNC_MKNOD): Use portable shell syntax.
+
+2010-11-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+	unlink: Fix "is it should" typo in diagnostic.
+	* m4/unlink.m4 (gl_FUNC_UNLINK): Fix typo, as per Reuben Thomas in
+	<http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00106.html>.
+
+2010-11-11  Bruno Haible  <bruno@clisp.org>
+
+	Tests for module 'strerror_r-posix'.
+	* modules/strerror_r-posix-tests: New file.
+	* tests/test-strerror_r.c: New file.
+	* tests/test-string-c++.cc: Check the signature of strerror_r.
+
+	New module 'strerror_r-posix'.
+	* lib/string.in.h (strerror_r): New declaration.
+	* lib/strerror_r.c: New file.
+	* m4/strerror_r.m4: New file.
+	* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Check for the declaration
+	of strerror_r.
+	(gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERROR_R,
+	HAVE_DECL_STRERROR_R, REPLACE_STRERROR_R.
+	* modules/strerror_r-posix: New file.
+	* modules/string (Makefile.am): Substitute GNULIB_STRERROR_R,
+	HAVE_DECL_STRERROR_R, REPLACE_STRERROR_R.
+	* doc/posix-functions/strerror_r.texi: Mention the new module and the
+	portability problems.
+
+2010-11-11  Torsten Scheck  <Torsten.Scheck@Leica-Microsystems.com> (tiny change)
+
+	* build-aux/pmccabe2html: Fixed a off-by-one error, so last input
+	line is also considered for output. Quoted function name in shell
+	command, so temporary files for functions like MyClass::operator()
+	are removed correctly without errors.
+
+2010-11-09  Bruno Haible  <bruno@clisp.org>
+
+	* doc/posix-functions/strerror.texi: List more failing platforms.
+
+	* doc/posix-functions/strerror.texi: Add a comment.
+
+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-06  Gary V. Vaughan  <gary@gnu.org>
 
 	libposix: vastly simplified bootstrap sanity check
@@ -35,6 +816,360 @@
 	output of the posix-modules script remains in sync with the module
 	list of the libposix module.
 
+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-13  Gary V. Vaughan  <gary@gnu.org>
 
 	libposix: reindent with spaces instead of tabs
@@ -604,6 +1739,17 @@
 	* lib/sys_socket.in.h: Update an URL.
 	* lib/sys_stat.in.h: Break long line.
 
+2010-10-03  Reuben Thomas  <rrt@sc3d.org>
+
+	Improve pmccabe2html.
+	* build-aux/pmccabe2html: Add CYCLO_SRCS variable, and make
+	cyclo-$(PACKAGE).html depend on it, so the HTML file is remade
+	when the sources change. Remove the line in the HTML about "Used
+	ranges" (which implied that there might be other unused ranges),
+	rename "Resume" to "Summary" (easier to understand for more users).
+	* build-aux/pmccabe.css: Removing the dashed dividers, some unused
+	styles, and some unnecessary blank lines.
+
 2010-10-03  Bruno Haible  <bruno@clisp.org>
             Joachim Schmitz  <schmitz@hp.com>  (tiny change)
 
--- a/MODULES.html.sh
+++ b/MODULES.html.sh
@@ -1953,7 +1953,7 @@
 
   element="Compiler warning management"
   element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"`
-  func_section_wrap ansic_ext_misc
+  func_section_wrap ansic_ext_compwarn
   func_wrap H3
   func_echo "$element"
 
@@ -2649,6 +2649,7 @@
   func_module full-write
   func_module binary-io
   func_module isapipe
+  func_module pipe-posix
   func_module pipe2
   func_module pipe2-safer
   func_end_table
@@ -3323,7 +3324,7 @@
   func_module findprog-lgpl
   func_module wait-process
   func_module execute
-  func_module pipe
+  func_module spawn-pipe
   func_module pipe-filter-gi
   func_module pipe-filter-ii
   func_module sh-quote
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,9 @@
 
 Date        Modules         Changes
 
+2010-12-10  pipe            This module is renamed to spawn-pipe. The include
+                            file is renamed to "spawn-pipe.h".
+
 2010-10-05  getdate         This module is deprecated. Please use the new
                             parse-datetime module for the replacement
                             function parse_datetime(), or help us write
--- a/build-aux/bootstrap
+++ b/build-aux/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2010-10-08.16; # UTC
+scriptversion=2010-11-20.03; # UTC
 
 # Bootstrap this package from checked-out sources.
 
@@ -54,6 +54,12 @@
                           have gnulib sources on your machine, and
                           do not want to waste your bandwidth downloading
                           them again.  Defaults to \$GNULIB_SRCDIR.
+ --bootstrap-sync         If this bootstrap script is not identical to
+                          the version in the local gnulib sources,
+                          update this script, and then restart it with
+                          /bin/sh or the shell \$CONFIG_SHELL if
+                          defined.
+ --no-bootstrap-sync      Do not check whether bootstrap is out of sync.
  --copy                   Copy files instead of creating symbolic links.
  --force                  Attempt to bootstrap even if the sources seem
                           not to have been checked out.
@@ -168,6 +174,10 @@
 # on which version control system (if any) is used in the source directory.
 vc_ignore=auto
 
+# Set this to true in bootstrap.conf to enable --bootstrap-sync by
+# default.
+bootstrap_sync=false
+
 # find_tool ENVVAR NAMES...
 # -------------------------
 # Search for a required program.  Use the value of ENVVAR, if set,
@@ -239,6 +249,10 @@
     checkout_only_file=;;
   --copy)
     copy=true;;
+  --bootstrap-sync)
+    bootstrap_sync=true;;
+  --no-bootstrap-sync)
+    bootstrap_sync=false;;
   *)
     echo >&2 "$0: $option: unknown option"
     exit 1;;
@@ -261,6 +275,21 @@
     || exit 1
 }
 
+# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
+# insert_sorted_if_absent.
+insert_vc_ignore() {
+  vc_ignore_file="$1"
+  pattern="$2"
+  case $vc_ignore_file in
+  *.gitignore)
+    # A .gitignore entry that does not start with `/' applies
+    # recursively to subdirectories, so prepend `/' to every
+    # .gitignore entry.
+    pattern=`echo "$pattern" | sed s,^,/,`;;
+  esac
+  insert_sorted_if_absent "$vc_ignore_file" "$pattern"
+}
+
 # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
 found_aux_dir=no
 grep '^[	 ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
@@ -279,7 +308,7 @@
   mkdir $build_aux
   for dot_ig in x $vc_ignore; do
     test $dot_ig = x && continue
-    insert_sorted_if_absent $dot_ig $build_aux
+    insert_vc_ignore $dot_ig $build_aux
   done
 fi
 
@@ -329,17 +358,18 @@
   $app --version >/dev/null 2>&1 || return 1
 
   $app --version 2>&1 |
-  sed -n '# extract version within line
-          s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
-          t done
+  sed -n '# Move version to start of line.
+          s/.*[v ]\([0-9]\)/\1/
+
+          # Skip lines that do not start with version.
+          /^[0-9]/!d
 
-          # extract version at start of line
-          s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
-          t done
+          # Remove characters after the version.
+          s/[^.a-z0-9-].*//
 
-          d
+          # The first component must be digits only.
+          s/^\([0-9]*\)[a-z-].*/\1/
 
-          :done
           #the following essentially does s/5.005/5.5/
           s/\.0*\([1-9]\)/.\1/g
           p
@@ -485,6 +515,16 @@
   ;;
 esac
 
+if $bootstrap_sync; then
+  cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" || {
+    echo "$0: updating bootstrap and restarting..."
+    exec sh -c \
+      'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
+      -- "$GNULIB_SRCDIR/build-aux/bootstrap" \
+      "$0" "$@" --no-bootstrap-sync
+  }
+fi
+
 gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
 <$gnulib_tool || exit
 
@@ -565,7 +605,7 @@
       for dot_ig in x $vc_ignore; do
         test $dot_ig = x && continue
         ig=$parent/$dot_ig
-        insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
+        insert_vc_ignore $ig `echo "$dst_dir"|sed 's,.*/,,'`
       done
     fi
 
@@ -725,7 +765,7 @@
       test $dot_ig = x && continue
       ig=$dir/$dot_ig
       if test -n "$copied"; then
-        insert_sorted_if_absent $ig "$copied"
+        insert_vc_ignore $ig "$copied"
         # If an ignored file name ends with .in.h, then also add
         # the name with just ".h".  Many gnulib headers are generated,
         # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
@@ -738,12 +778,12 @@
             s/\.gperf$/.h/
           '
         `
-        insert_sorted_if_absent $ig "$f"
+        insert_vc_ignore $ig "$f"
 
         # For files like sys_stat.in.h and sys_time.in.h, record as
         # ignorable the directory we might eventually create: sys/.
         f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
-        insert_sorted_if_absent $ig "$f"
+        insert_vc_ignore $ig "$f"
       fi
     done
   done
--- a/build-aux/bootstrap.conf
+++ b/build-aux/bootstrap.conf
@@ -57,3 +57,11 @@
       m4/xsize.m4
   '
 fi
+
+# Build prerequisites
+buildreq="\
+autoconf   2.59
+automake   1.9.6
+git        1.5.5
+tar        -
+"
--- a/build-aux/compile
+++ b/build-aux/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand `-c -o'.
 
-scriptversion=2010-09-21.14; # UTC
+scriptversion=2010-11-15.09; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010 Free Software
 # Foundation, Inc.
@@ -192,6 +192,8 @@
   exit 1
 }
 
+eat=
+
 case $1 in
   '')
      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
@@ -223,7 +225,6 @@
 
 ofile=
 cfile=
-eat=
 
 for arg
 do
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 #   Free Software Foundation, Inc.
 
-timestamp='2010-09-11'
+timestamp='2010-12-11'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -539,7 +539,7 @@
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16)
+	cr16 | cr16-*)
 		basic_machine=cr16-unknown
 		os=-elf
 		;;
--- a/build-aux/gendocs.sh
+++ b/build-aux/gendocs.sh
@@ -2,10 +2,10 @@
 # gendocs.sh -- generate a GNU manual in many formats.  This script is
 #   mentioned in maintain.texi.  See the help message below for usage details.
 
-scriptversion=2010-09-17.07
+scriptversion=2010-11-29.11
 
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -22,6 +22,13 @@
 #
 # Original author: Mohit Agarwal.
 # Send bug reports and any other correspondence to bug-texinfo@gnu.org.
+#
+# The latest version of this script, and the companion template, is
+# available from Texinfo CVS:
+# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh
+# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template
+#
+# An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib).
 
 prog=`basename "$0"`
 srcdir=`pwd`
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2010-06-14.19; # UTC
+scriptversion=2010-12-14.19; # UTC
 
 # Copyright (C) 2007-2010 Free Software Foundation, Inc.
 #
@@ -98,7 +98,11 @@
 if test -n "$v"
 then
     : # use $v
-elif test -d .git || test -d ../.git \
+
+# Otherwise, if there is at least one git commit involving the working
+# directory, and "git describe" output looks sensible, use that to
+# derive a version string.
+elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
     && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
 	  || git describe --abbrev=4 HEAD 2>/dev/null` \
     && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
--- a/build-aux/link-warning.h
+++ b/build-aux/link-warning.h
@@ -15,6 +15,10 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__, __UCLIBC__ */
+#endif
+
 /* GL_LINK_WARNING("literal string") arranges to emit the literal string as
    a linker warning on most glibc systems.
    We use a linker warning rather than a preprocessor warning, because
@@ -24,7 +28,7 @@
      Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
      Testing __ELF__ guarantees the ELF object format.
      Testing __GNUC__ is necessary for the compound expression syntax.  */
-# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
+# if (defined __GLIBC__ || defined __UCLIBC__) && defined __ELF__ && defined __GNUC__
 #  define GL_LINK_WARNING(message) \
      GL_LINK_WARNING1 (__FILE__, __LINE__, message)
 #  define GL_LINK_WARNING1(file, line, message) \
--- a/build-aux/pmccabe.css
+++ b/build-aux/pmccabe.css
@@ -1,56 +1,41 @@
 body {
-
     font-family: Helvetica, sans-serif;
-
 }
 
 .page_title {
-
     font: 18pt Georgia, serif;
-/*    font-size: 1.5em;
-    font-weight: bold; */
     color: darkred;
-    border-bottom: 2px solid darkred;
 }
 
 .section_title {
-
     font: 14pt Georgia, serif;
     color: darkred;
-    border-bottom: 2px dashed darkred;
 }
 
 .report_timestamp {
-
     color: darkred;
     font-weight: bold;
-
 }
 
 .function_src {
-
     text-align: left;
     background: white;
 }
 
 .resume_table {
-
 }
 
 .resume_header_entry {
-    
     color: black;
 }
 
 .resume_number_entry {
-
     color: darkred;
     font-weight: bold;
     text-align: right;
 }
 
 .ranges_table {
-
     border-spacing: 0px;
     border-bottom: solid 2px black;
     border-top: solid 2px black;
@@ -59,7 +44,6 @@
 }
 
 .ranges_header_entry {
-
     padding: 5px;
     border-bottom: solid 1px black;
     font-size: 1em;
@@ -69,36 +53,26 @@
 }
 
 .ranges_entry {
-
 }
 
 .ranges_entry_simple {
-
     background: #87ff75; 
-
 }
 
 .ranges_entry_moderate {
-
     background: #fffc60;
-
 }
 
 .ranges_entry_high {
-
     background: #ff5a5d;
-
 }
 
 .ranges_entry_untestable {
-
     background: #993300
-
 }
 
 
 .function_table {
-
     border-spacing: 0px;
     border-bottom: solid 2px black;
     border-top: solid 2px black;
@@ -107,7 +81,6 @@
 }
 
 .function_table_caption {
-
     font-size: 1.1em;
     font-weight: bold;
     color: black;
@@ -115,12 +88,10 @@
 }
 
 .function_table_header {
-    
 }
 
 
 .function_table_header_entry {
-
     padding: 5px;
     border-bottom: solid 1px black;
     font-size: 1em;
@@ -130,38 +101,27 @@
 }
 
 .function_entry {
-
-
 }
 
 
 .function_entry_simple {
-
     background: #87ff75; 
-
 }
 
 .function_entry_moderate {
-
     background: #fffc60;
-
 }
 
 .function_entry_high {
-
     background: #ff5a5d;
-
 }
 
 .function_entry_untestable {
-
     background: #993300
-
 }
 
 
 .function_entry_name {
-
     font-size: 1em;
     text-align: left;
     font-weight: bold;
@@ -172,7 +132,6 @@
 }
 
 .function_entry_cyclo {
-
     font-size: 1em;
     text-align: right;
     text-valign: top;
@@ -182,7 +141,6 @@
 }
 
 .function_entry_number {
-
     font-size: 1em;
     text-align: right;
     text-valign: top;
@@ -192,7 +150,6 @@
 }
 
 .function_entry_filename {
-
     font-size: 1em;
     text-align: left;
     text-valign: top;
@@ -200,28 +157,3 @@
     border-top: solid 1px black;
     padding: 3px;
 }
-
-.sidemenu {
-    
-    border: 1px black solid;
-    padding: 5px;
-
-}
-
-.sidemenuheader {
- 
-    color: darkred;
-    font-size: 1.1em;
-    font-weight: bold;
-    border-bottom: 1px dashed darkred;
-}
-
-.sidemenuentry {
-
-
-}
-
-.menu {
-
-}
-
--- a/build-aux/pmccabe2html
+++ b/build-aux/pmccabe2html
@@ -21,8 +21,10 @@
 
 # Typical Invocation is from a Makefile.am:
 #
-# cyclo-$(PACKAGE).html:
-# 	$(PMCCABE) ${top_srcdir}/src/*.[ch] \
+# CYCLO_SOURCES = ${top_srcdir}/src/*.[ch]
+#
+# cyclo-$(PACKAGE).html: $(CYCLO_SOURCES)
+# 	$(PMCCABE) $(CYCLO_SOURCES) \
 # 		| sort -nr \
 # 		| $(AWK) -f ${top_srcdir}/build-aux/pmccabe2html \
 # 			-v lang=html -v name="$(PACKAGE_NAME)" \
@@ -112,12 +114,12 @@
 
 function html_fnc_table_complete (caption)
 {
-    html_fnc_table(caption, 1, 0, 1, 1, 1, 0, 1)
+    html_fnc_table(caption, 1, 1, 0, 1, 1, 0, 1)
 }
 
 function html_fnc_table_abbrev (caption)
 {
-    html_fnc_table(caption, 1, 0, 1, 0, 1, 0, 0)
+    html_fnc_table(caption, 1, 1, 0, 0, 1, 0, 0)
 }
 
 
@@ -142,7 +144,7 @@
                     num_lines_p,
                     first_line_p,
                     file_p)
-    for (nfnc = 1; nfnc < nfuncs; nfnc++)
+    for (nfnc = 1; nfnc <= nfuncs; nfnc++)
     {
         html_fnc(nfnc,
                  fname_p,
@@ -423,7 +425,7 @@
                 print codeline
             }
             close(fname nfun "_fn.txt")
-            system("rm " fname nfun "_fn.txt")
+            system("rm " "'" fname "'" nfun "_fn.txt")
             print "</pre>"
             print "</div>"
             print "</td>"
@@ -435,52 +437,51 @@
 
 function html_global_stats ()
 {
-    print "<div class=\"section_title\">Resume</div>"
+    print "<div class=\"section_title\">Summary</div>"
 
-    print "<br/>"
-    print "<table class=\"resume_table\">"
+    print "<table class=\"summary_table\">"
     # Total number of functions
     print "<tr>"
-    print "<td class=\"resume_header_entry\">"
+    print "<td class=\"summary_header_entry\">"
     print "Total number of functions"
     print "</td>"
-    print "<td class=\"resume_number_entry\">"
+    print "<td class=\"summary_number_entry\">"
     print num_of_functions
     print "</td>"
     print "</tr>"
     # Number of simple functions
     print "<tr>"
-    print "<td class=\"resume_header_entry\">"
+    print "<td class=\"summary_header_entry\">"
     print "Number of low risk functions"
     print "</td>"
-    print "<td class=\"resume_number_entry\">"
+    print "<td class=\"summary_number_entry\">"
     print num_of_simple_functions
     print "</td>"
     print "</tr>"
     # Number of moderate functions
     print "<tr>"
-    print "<td class=\"resume_header_entry\">"
+    print "<td class=\"summary_header_entry\">"
     print "Number of moderate risk functions"
     print "</td>"
-    print "<td class=\"resume_number_entry\">"
+    print "<td class=\"summary_number_entry\">"
     print num_of_moderate_functions
     print "</td>"
     print "</tr>"
     # Number of high functions
     print "<tr>"
-    print "<td class=\"resume_header_entry\">"
+    print "<td class=\"summary_header_entry\">"
     print "Number of high risk functions"
     print "</td>"
-    print "<td class=\"resume_number_entry\">"
+    print "<td class=\"summary_number_entry\">"
     print num_of_high_functions
     print "</td>"
     print "</tr>"
     # Number of untestable functions
     print "<tr>"
-    print "<td class=\"resume_header_entry\">"
+    print "<td class=\"summary_header_entry\">"
     print "Number of untestable functions"
     print "</td>"
-    print "<td class=\"resume_number_entry\">"
+    print "<td class=\"summary_number_entry\">"
     print num_of_untestable_functions
     print "</td>"
     print "</tr>"
@@ -491,7 +492,6 @@
 function html_function_cyclo ()
 {
     print "<div class=\"section_title\">Details for all functions</div>"
-    print "<p>Used ranges:</p>"
 
     print "<table class=\"ranges_table\">"
     print "<tr>"
@@ -560,27 +560,27 @@
 
 function wiki_global_stats ()
 {
-    print "{| class=\"cyclo_resume_table\""
+    print "{| class=\"cyclo_summary_table\""
     # Total number of functions
     print "|-"
-    print "| class=\"cyclo_resume_header_entry\" | Total number of functions"
-    print "| class=\"cyclo_resume_number_entry\" |" num_of_functions
+    print "| class=\"cyclo_summary_header_entry\" | Total number of functions"
+    print "| class=\"cyclo_summary_number_entry\" |" num_of_functions
     # Number of simple functions
     print "|-"
-    print "| class=\"cyclo_resume_header_entry\" | Number of low risk functions"
-    print "| class=\"cyclo_resume_number_entry\" |" num_of_simple_functions
+    print "| class=\"cyclo_summary_header_entry\" | Number of low risk functions"
+    print "| class=\"cyclo_summary_number_entry\" |" num_of_simple_functions
     # Number of moderate functions
     print "|-"
-    print "| class=\"cyclo_resume_header_entry\" | Number of moderate risk functions"
-    print "| class=\"cyclo_resume_number_entry\" |" num_of_moderate_functions
+    print "| class=\"cyclo_summary_header_entry\" | Number of moderate risk functions"
+    print "| class=\"cyclo_summary_number_entry\" |" num_of_moderate_functions
     # Number of high functions
     print "|-"
-    print "| class=\"cyclo_resume_header_entry\" | Number of high risk functions"
-    print "| class=\"cyclo_resume_number_entry\" |" num_of_high_functions
+    print "| class=\"cyclo_summary_header_entry\" | Number of high risk functions"
+    print "| class=\"cyclo_summary_number_entry\" |" num_of_high_functions
     # Number of untestable functions
     print "|-"
-    print "| class=\"cyclo_resume_header_entry\" | Number of untestable functions"
-    print "| class=\"cyclo_resume_number_entry\" |" num_of_untestable_functions
+    print "| class=\"cyclo_summary_header_entry\" | Number of untestable functions"
+    print "| class=\"cyclo_summary_number_entry\" |" num_of_untestable_functions
     print "|}"
 }
 
@@ -624,7 +624,7 @@
 
 function wiki_fnc_table_complete (caption)
 {
-    wiki_fnc_table(caption, 1, 0, 1, 1, 1, 0, 1)
+    wiki_fnc_table(caption, 1, 1, 0, 1, 1, 0, 1)
 }
 
 function wiki_fnc_table_abbrev (caption)
@@ -653,7 +653,7 @@
                     num_lines_p,
                     first_line_p,
                     file_p)
-    for (nfnc = 1; nfnc < nfuncs; nfnc++)
+    for (nfnc = 1; nfnc <= nfuncs; nfnc++)
     {
         wiki_fnc(nfnc,
                  fname_p,
--- a/doc/glibc-functions/accept4.texi
+++ b/doc/glibc-functions/accept4.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/addmntent.texi
+++ b/doc/glibc-functions/addmntent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/addseverity.texi
+++ b/doc/glibc-functions/addseverity.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/adjtimex.texi
+++ b/doc/glibc-functions/adjtimex.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/advance.texi
+++ b/doc/glibc-functions/advance.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/aio_init.texi
+++ b/doc/glibc-functions/aio_init.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_err_exit_status.texi
+++ b/doc/glibc-functions/argp_err_exit_status.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_error.texi
+++ b/doc/glibc-functions/argp_error.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_failure.texi
+++ b/doc/glibc-functions/argp_failure.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_help.texi
+++ b/doc/glibc-functions/argp_help.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_parse.texi
+++ b/doc/glibc-functions/argp_parse.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_program_bug_address.texi
+++ b/doc/glibc-functions/argp_program_bug_address.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_program_version.texi
+++ b/doc/glibc-functions/argp_program_version.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_program_version_hook.texi
+++ b/doc/glibc-functions/argp_program_version_hook.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_state_help.texi
+++ b/doc/glibc-functions/argp_state_help.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argp_usage.texi
+++ b/doc/glibc-functions/argp_usage.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/argz_add.texi
+++ b/doc/glibc-functions/argz_add.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_add_sep.texi
+++ b/doc/glibc-functions/argz_add_sep.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_append.texi
+++ b/doc/glibc-functions/argz_append.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_count.texi
+++ b/doc/glibc-functions/argz_count.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_create.texi
+++ b/doc/glibc-functions/argz_create.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_create_sep.texi
+++ b/doc/glibc-functions/argz_create_sep.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_delete.texi
+++ b/doc/glibc-functions/argz_delete.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_extract.texi
+++ b/doc/glibc-functions/argz_extract.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_insert.texi
+++ b/doc/glibc-functions/argz_insert.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_next.texi
+++ b/doc/glibc-functions/argz_next.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_replace.texi
+++ b/doc/glibc-functions/argz_replace.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/argz_stringify.texi
+++ b/doc/glibc-functions/argz_stringify.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 
 @item
 This function is broken on some platforms:
--- a/doc/glibc-functions/authdes_create.texi
+++ b/doc/glibc-functions/authdes_create.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/authdes_getucred.texi
+++ b/doc/glibc-functions/authdes_getucred.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/authdes_pk_create.texi
+++ b/doc/glibc-functions/authdes_pk_create.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/authunix_create.texi
+++ b/doc/glibc-functions/authunix_create.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, Solaris 10, Cygwin, mingw, BeOS.
+HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/authunix_create_default.texi
+++ b/doc/glibc-functions/authunix_create_default.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, Solaris 10, Cygwin, mingw, BeOS.
+HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/backtrace.texi
+++ b/doc/glibc-functions/backtrace.texi
@@ -11,6 +11,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This function is missing on many platforms:
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/backtrace_symbols.texi
+++ b/doc/glibc-functions/backtrace_symbols.texi
@@ -11,6 +11,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This function is missing on many platforms:
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/backtrace_symbols_fd.texi
+++ b/doc/glibc-functions/backtrace_symbols_fd.texi
@@ -11,6 +11,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This function is missing on many platforms:
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/bdflush.texi
+++ b/doc/glibc-functions/bdflush.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/bind_textdomain_codeset.texi
+++ b/doc/glibc-functions/bind_textdomain_codeset.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/bindtextdomain.texi
+++ b/doc/glibc-functions/bindtextdomain.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/bswap_16.texi
+++ b/doc/glibc-functions/bswap_16.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/bswap_32.texi
+++ b/doc/glibc-functions/bswap_32.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/bswap_64.texi
+++ b/doc/glibc-functions/bswap_64.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/canonicalize_file_name.texi
+++ b/doc/glibc-functions/canonicalize_file_name.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @item
 This function fails to detect trailing slashes on non-directories on
--- a/doc/glibc-functions/capget.texi
+++ b/doc/glibc-functions/capget.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/capset.texi
+++ b/doc/glibc-functions/capset.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/cbc_crypt.texi
+++ b/doc/glibc-functions/cbc_crypt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/cfmakeraw.texi
+++ b/doc/glibc-functions/cfmakeraw.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/cfree.texi
+++ b/doc/glibc-functions/cfree.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/cfsetspeed.texi
+++ b/doc/glibc-functions/cfsetspeed.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/clearenv.texi
+++ b/doc/glibc-functions/clearenv.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/clearerr_unlocked.texi
+++ b/doc/glibc-functions/clearerr_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/clntunix_create.texi
+++ b/doc/glibc-functions/clntunix_create.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/clog10.texi
+++ b/doc/glibc-functions/clog10.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/clog10f.texi
+++ b/doc/glibc-functions/clog10f.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/clog10l.texi
+++ b/doc/glibc-functions/clog10l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/clone.texi
+++ b/doc/glibc-functions/clone.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/crypt_r.texi
+++ b/doc/glibc-functions/crypt_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/cuserid.texi
+++ b/doc/glibc-functions/cuserid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw.
 @end itemize
--- a/doc/glibc-functions/dcgettext.texi
+++ b/doc/glibc-functions/dcgettext.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dcngettext.texi
+++ b/doc/glibc-functions/dcngettext.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/des_setparity.texi
+++ b/doc/glibc-functions/des_setparity.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dgettext.texi
+++ b/doc/glibc-functions/dgettext.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dl_iterate_phdr.texi
+++ b/doc/glibc-functions/dl_iterate_phdr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dladdr1.texi
+++ b/doc/glibc-functions/dladdr1.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dlinfo.texi
+++ b/doc/glibc-functions/dlinfo.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dlmopen.texi
+++ b/doc/glibc-functions/dlmopen.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dlvsym.texi
+++ b/doc/glibc-functions/dlvsym.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dngettext.texi
+++ b/doc/glibc-functions/dngettext.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/drand48_r.texi
+++ b/doc/glibc-functions/drand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/drem.texi
+++ b/doc/glibc-functions/drem.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, Solaris 10, mingw.
+HP-UX 11, Solaris 11 2010-11, mingw.
 @end itemize
--- a/doc/glibc-functions/dremf.texi
+++ b/doc/glibc-functions/dremf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw.
 @end itemize
--- a/doc/glibc-functions/dreml.texi
+++ b/doc/glibc-functions/dreml.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/dup3.texi
+++ b/doc/glibc-functions/dup3.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/dysize.texi
+++ b/doc/glibc-functions/dysize.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ecb_crypt.texi
+++ b/doc/glibc-functions/ecb_crypt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ecvt_r.texi
+++ b/doc/glibc-functions/ecvt_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/encrypt_r.texi
+++ b/doc/glibc-functions/encrypt_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/endaliasent.texi
+++ b/doc/glibc-functions/endaliasent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/endfsent.texi
+++ b/doc/glibc-functions/endfsent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/endmntent.texi
+++ b/doc/glibc-functions/endmntent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/endspent.texi
+++ b/doc/glibc-functions/endspent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/endttyent.texi
+++ b/doc/glibc-functions/endttyent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/endutent.texi
+++ b/doc/glibc-functions/endutent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/envz_add.texi
+++ b/doc/glibc-functions/envz_add.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/envz_entry.texi
+++ b/doc/glibc-functions/envz_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/envz_get.texi
+++ b/doc/glibc-functions/envz_get.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/envz_merge.texi
+++ b/doc/glibc-functions/envz_merge.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/envz_remove.texi
+++ b/doc/glibc-functions/envz_remove.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/envz_strip.texi
+++ b/doc/glibc-functions/envz_strip.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/epoll_create.texi
+++ b/doc/glibc-functions/epoll_create.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/epoll_ctl.texi
+++ b/doc/glibc-functions/epoll_ctl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/epoll_wait.texi
+++ b/doc/glibc-functions/epoll_wait.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/erand48_r.texi
+++ b/doc/glibc-functions/erand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/error.texi
+++ b/doc/glibc-functions/error.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/error_at_line.texi
+++ b/doc/glibc-functions/error_at_line.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/error_message_count.texi
+++ b/doc/glibc-functions/error_message_count.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/error_one_per_line.texi
+++ b/doc/glibc-functions/error_one_per_line.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/error_print_progname.texi
+++ b/doc/glibc-functions/error_print_progname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ether_aton_r.texi
+++ b/doc/glibc-functions/ether_aton_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ether_ntoa_r.texi
+++ b/doc/glibc-functions/ether_ntoa_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/euidaccess.texi
+++ b/doc/glibc-functions/euidaccess.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/execvpe.texi
+++ b/doc/glibc-functions/execvpe.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-glibc 2.9, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
+glibc 2.9, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
+5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/exp10.texi
+++ b/doc/glibc-functions/exp10.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/exp10f.texi
+++ b/doc/glibc-functions/exp10f.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/exp10l.texi
+++ b/doc/glibc-functions/exp10l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fallocate.texi
+++ b/doc/glibc-functions/fallocate.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on older glibc versions and all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fcloseall.texi
+++ b/doc/glibc-functions/fcloseall.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/fcvt_r.texi
+++ b/doc/glibc-functions/fcvt_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/fedisableexcept.texi
+++ b/doc/glibc-functions/fedisableexcept.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX
+11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/feenableexcept.texi
+++ b/doc/glibc-functions/feenableexcept.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX
+11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fegetexcept.texi
+++ b/doc/glibc-functions/fegetexcept.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.7, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/feof_unlocked.texi
+++ b/doc/glibc-functions/feof_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/ferror_unlocked.texi
+++ b/doc/glibc-functions/ferror_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/fflush_unlocked.texi
+++ b/doc/glibc-functions/fflush_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/ffsl.texi
+++ b/doc/glibc-functions/ffsl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ffsll.texi
+++ b/doc/glibc-functions/ffsll.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetc_unlocked.texi
+++ b/doc/glibc-functions/fgetc_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetgrent.texi
+++ b/doc/glibc-functions/fgetgrent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetgrent_r.texi
+++ b/doc/glibc-functions/fgetgrent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetpwent.texi
+++ b/doc/glibc-functions/fgetpwent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetpwent_r.texi
+++ b/doc/glibc-functions/fgetpwent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgets_unlocked.texi
+++ b/doc/glibc-functions/fgets_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/fgetspent.texi
+++ b/doc/glibc-functions/fgetspent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetspent_r.texi
+++ b/doc/glibc-functions/fgetspent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fgetwc_unlocked.texi
+++ b/doc/glibc-functions/fgetwc_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/fgetws_unlocked.texi
+++ b/doc/glibc-functions/fgetws_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/fgetxattr.texi
+++ b/doc/glibc-functions/fgetxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fileno_unlocked.texi
+++ b/doc/glibc-functions/fileno_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/finitef.texi
+++ b/doc/glibc-functions/finitef.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw.
 @end itemize
--- a/doc/glibc-functions/finitel.texi
+++ b/doc/glibc-functions/finitel.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/flistxattr.texi
+++ b/doc/glibc-functions/flistxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/flock.texi
+++ b/doc/glibc-functions/flock.texi
@@ -15,5 +15,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 10, BeOS.
+AIX 5.1, HP-UX 11.23, Solaris 11 2010-11, BeOS.
 @end itemize
--- a/doc/glibc-functions/fopencookie.texi
+++ b/doc/glibc-functions/fopencookie.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/forkpty.texi
+++ b/doc/glibc-functions/forkpty.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
 @item
 One some systems (at least including Cygwin, Interix, OSF/1 4 and 5,
 and Mac OS X) linking with @code{-lutil} is not required.
--- a/doc/glibc-functions/fputc_unlocked.texi
+++ b/doc/glibc-functions/fputc_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/fputs_unlocked.texi
+++ b/doc/glibc-functions/fputs_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fputwc_unlocked.texi
+++ b/doc/glibc-functions/fputwc_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/fputws_unlocked.texi
+++ b/doc/glibc-functions/fputws_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/fread_unlocked.texi
+++ b/doc/glibc-functions/fread_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/fremovexattr.texi
+++ b/doc/glibc-functions/fremovexattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fsetxattr.texi
+++ b/doc/glibc-functions/fsetxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/fts_children.texi
+++ b/doc/glibc-functions/fts_children.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/fts_close.texi
+++ b/doc/glibc-functions/fts_close.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/fts_open.texi
+++ b/doc/glibc-functions/fts_open.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/fts_read.texi
+++ b/doc/glibc-functions/fts_read.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/fts_set.texi
+++ b/doc/glibc-functions/fts_set.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/futimes.texi
+++ b/doc/glibc-functions/futimes.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix
 3.5, BeOS.
 @item
 This function cannot set full timestamp resolution.  Use
--- a/doc/glibc-functions/futimesat.texi
+++ b/doc/glibc-functions/futimesat.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 @item
--- a/doc/glibc-functions/fwrite_unlocked.texi
+++ b/doc/glibc-functions/fwrite_unlocked.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/gammaf.texi
+++ b/doc/glibc-functions/gammaf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/gammal.texi
+++ b/doc/glibc-functions/gammal.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/get_avphys_pages.texi
+++ b/doc/glibc-functions/get_avphys_pages.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/get_current_dir_name.texi
+++ b/doc/glibc-functions/get_current_dir_name.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/get_nprocs.texi
+++ b/doc/glibc-functions/get_nprocs.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
 
--- a/doc/glibc-functions/get_nprocs_conf.texi
+++ b/doc/glibc-functions/get_nprocs_conf.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/get_phys_pages.texi
+++ b/doc/glibc-functions/get_phys_pages.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getaliasbyname.texi
+++ b/doc/glibc-functions/getaliasbyname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getaliasbyname_r.texi
+++ b/doc/glibc-functions/getaliasbyname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getaliasent.texi
+++ b/doc/glibc-functions/getaliasent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getaliasent_r.texi
+++ b/doc/glibc-functions/getaliasent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getdate_r.texi
+++ b/doc/glibc-functions/getdate_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getdirentries.texi
+++ b/doc/glibc-functions/getdirentries.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 4.3.2, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getdomainname.texi
+++ b/doc/glibc-functions/getdomainname.texi
@@ -8,7 +8,18 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, mingw, Interix 3.5, BeOS.
+Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
+@item
+This function is declared in @code{netdb.h}, not in @code{unistd.h}, on
+some platforms:
+AIX 7.1.
+@item
+This function is declared in @code{netdb.h} and in @code{sys/socket.h}, not
+in @code{unistd.h}, on some platforms:
+OSF/1 5.1.
+@item
+The second argument is of type @code{int}, not @code{size_t}, on some platforms:
+MacOS X 10.5, FreeBSD 6.4, AIX 7.1, IRIX 6.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/getfilecon-desc.texi
+++ b/doc/glibc-functions/getfilecon-desc.texi
@@ -5,7 +5,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 On those platforms, this module provides a stub that always sets
 @code{errno} to @code{ENOTSUP} and returns @samp{-1}.
 @item
--- a/doc/glibc-functions/getfsent.texi
+++ b/doc/glibc-functions/getfsent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getfsfile.texi
+++ b/doc/glibc-functions/getfsfile.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getfsspec.texi
+++ b/doc/glibc-functions/getfsspec.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getgrent_r.texi
+++ b/doc/glibc-functions/getgrent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getgrouplist.texi
+++ b/doc/glibc-functions/getgrouplist.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/gethostbyaddr_r.texi
+++ b/doc/glibc-functions/gethostbyaddr_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gethostbyname2.texi
+++ b/doc/glibc-functions/gethostbyname2.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gethostbyname2_r.texi
+++ b/doc/glibc-functions/gethostbyname2_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gethostbyname_r.texi
+++ b/doc/glibc-functions/gethostbyname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gethostent_r.texi
+++ b/doc/glibc-functions/gethostent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getipv4sourcefilter.texi
+++ b/doc/glibc-functions/getipv4sourcefilter.texi
@@ -11,6 +11,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This function is missing on many platforms:
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getloadavg.texi
+++ b/doc/glibc-functions/getloadavg.texi
@@ -9,6 +9,10 @@
 @item
 This function is missing on some platforms:
 AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+@item
+This function is declared in @code{<sys/loadavg.h>}, not @code{<stdlib.h>},
+on some platforms:
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/getmntent.texi
+++ b/doc/glibc-functions/getmntent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/getmntent_r.texi
+++ b/doc/glibc-functions/getmntent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getnetbyaddr_r.texi
+++ b/doc/glibc-functions/getnetbyaddr_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getnetbyname_r.texi
+++ b/doc/glibc-functions/getnetbyname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getnetent_r.texi
+++ b/doc/glibc-functions/getnetent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getnetgrent_r.texi
+++ b/doc/glibc-functions/getnetgrent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getnetname.texi
+++ b/doc/glibc-functions/getnetname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getopt_long.texi
+++ b/doc/glibc-functions/getopt_long.texi
@@ -33,7 +33,7 @@
 @item
 The function @code{getopt_long} does not support options with optional
 arguments on some platforms:
-MacOS X 10.5, OpenBSD 4.0, AIX 5.2, IRIX 6.5, Solaris 10, Cygwin 1.5.x.
+MacOS X 10.5, OpenBSD 4.0, AIX 5.2, IRIX 6.5, Solaris 11 2010-11, Cygwin 1.5.x.
 @item
 This function is missing on some platforms:
 AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Interix 3.5.
--- a/doc/glibc-functions/getopt_long_only.texi
+++ b/doc/glibc-functions/getopt_long_only.texi
@@ -33,10 +33,10 @@
 @item
 The function @code{getopt_long_only} does not support options with
 optional arguments on some platforms:
-MacOS X 10.5, OpenBSD 4.0, AIX 5.2, Solaris 10, Cygwin 1.5.x.
+MacOS X 10.5, OpenBSD 4.0, AIX 5.2, Solaris 11 2010-11, Cygwin 1.5.x.
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5,
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5,
 OSF/1 5.1, mingw, Interix 3.5.
 @end itemize
 
--- a/doc/glibc-functions/getpass.texi
+++ b/doc/glibc-functions/getpass.texi
@@ -15,7 +15,7 @@
 @itemize
 @item
 The returned password is truncated to PASS_MAX characters on some platforms:
-MacOS X 10.5 (128), FreeBSD 6.2 (128), NetBSD 3.0 (128), OpenBSD 4.0 (128), AIX 5.1 (32), HP-UX 11 (8), IRIX 6.5 (32), OSF/1 5.1 (80), Solaris 10 (8, even less than PASS_MAX), Cygwin (128).
+MacOS X 10.5 (128), FreeBSD 6.2 (128), NetBSD 3.0 (128), OpenBSD 4.0 (128), AIX 5.1 (32), HP-UX 11 (8), IRIX 6.5 (32), OSF/1 5.1 (80), Solaris 11 2010-11 (8, even less than PASS_MAX), Cygwin (128).
 The gnulib implementation returns the password untruncated.
 @end itemize
 
--- a/doc/glibc-functions/getprotobyname_r.texi
+++ b/doc/glibc-functions/getprotobyname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getprotobynumber_r.texi
+++ b/doc/glibc-functions/getprotobynumber_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getprotoent_r.texi
+++ b/doc/glibc-functions/getprotoent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getpt.texi
+++ b/doc/glibc-functions/getpt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getpublickey.texi
+++ b/doc/glibc-functions/getpublickey.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getpw.texi
+++ b/doc/glibc-functions/getpw.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getpwent_r.texi
+++ b/doc/glibc-functions/getpwent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getresgid.texi
+++ b/doc/glibc-functions/getresgid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getresuid.texi
+++ b/doc/glibc-functions/getresuid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getrpcbyname_r.texi
+++ b/doc/glibc-functions/getrpcbyname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getrpcbynumber_r.texi
+++ b/doc/glibc-functions/getrpcbynumber_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getrpcent_r.texi
+++ b/doc/glibc-functions/getrpcent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getsecretkey.texi
+++ b/doc/glibc-functions/getsecretkey.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getservbyname_r.texi
+++ b/doc/glibc-functions/getservbyname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getservbyport_r.texi
+++ b/doc/glibc-functions/getservbyport_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getservent_r.texi
+++ b/doc/glibc-functions/getservent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getsourcefilter.texi
+++ b/doc/glibc-functions/getsourcefilter.texi
@@ -11,6 +11,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This function is missing on many platforms:
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getspent.texi
+++ b/doc/glibc-functions/getspent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getspent_r.texi
+++ b/doc/glibc-functions/getspent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getspnam.texi
+++ b/doc/glibc-functions/getspnam.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getspnam_r.texi
+++ b/doc/glibc-functions/getspnam_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gettext.texi
+++ b/doc/glibc-functions/gettext.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getttyent.texi
+++ b/doc/glibc-functions/getttyent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getttynam.texi
+++ b/doc/glibc-functions/getttynam.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutent.texi
+++ b/doc/glibc-functions/getutent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutent_r.texi
+++ b/doc/glibc-functions/getutent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutid.texi
+++ b/doc/glibc-functions/getutid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutid_r.texi
+++ b/doc/glibc-functions/getutid_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutline.texi
+++ b/doc/glibc-functions/getutline.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutline_r.texi
+++ b/doc/glibc-functions/getutline_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutmp.texi
+++ b/doc/glibc-functions/getutmp.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getutmpx.texi
+++ b/doc/glibc-functions/getutmpx.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/getwc_unlocked.texi
+++ b/doc/glibc-functions/getwc_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/getwchar_unlocked.texi
+++ b/doc/glibc-functions/getwchar_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/getxattr.texi
+++ b/doc/glibc-functions/getxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/glob_pattern_p.texi
+++ b/doc/glibc-functions/glob_pattern_p.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on most non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gnu_dev_major.texi
+++ b/doc/glibc-functions/gnu_dev_major.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gnu_dev_makedev.texi
+++ b/doc/glibc-functions/gnu_dev_makedev.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gnu_dev_minor.texi
+++ b/doc/glibc-functions/gnu_dev_minor.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gnu_get_libc_release.texi
+++ b/doc/glibc-functions/gnu_get_libc_release.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/gnu_get_libc_version.texi
+++ b/doc/glibc-functions/gnu_get_libc_version.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/group_member.texi
+++ b/doc/glibc-functions/group_member.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/gsignal.texi
+++ b/doc/glibc-functions/gsignal.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/hasmntopt.texi
+++ b/doc/glibc-functions/hasmntopt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/hcreate_r.texi
+++ b/doc/glibc-functions/hcreate_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/hdestroy_r.texi
+++ b/doc/glibc-functions/hdestroy_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/host2netname.texi
+++ b/doc/glibc-functions/host2netname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/hsearch_r.texi
+++ b/doc/glibc-functions/hsearch_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/in6addr_any.texi
+++ b/doc/glibc-functions/in6addr_any.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This constant is missing on some platforms:
-MacOS X 10.3, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/in6addr_loopback.texi
+++ b/doc/glibc-functions/in6addr_loopback.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This constant is missing on some platforms:
-MacOS X 10.3, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, AIX 4.3.2, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet6_option_alloc.texi
+++ b/doc/glibc-functions/inet6_option_alloc.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet6_option_append.texi
+++ b/doc/glibc-functions/inet6_option_append.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet6_option_find.texi
+++ b/doc/glibc-functions/inet6_option_find.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet6_option_init.texi
+++ b/doc/glibc-functions/inet6_option_init.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet6_option_next.texi
+++ b/doc/glibc-functions/inet6_option_next.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet6_option_space.texi
+++ b/doc/glibc-functions/inet6_option_space.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet_net_ntop.texi
+++ b/doc/glibc-functions/inet_net_ntop.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet_net_pton.texi
+++ b/doc/glibc-functions/inet_net_pton.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet_neta.texi
+++ b/doc/glibc-functions/inet_neta.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet_nsap_addr.texi
+++ b/doc/glibc-functions/inet_nsap_addr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11.00, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/inet_nsap_ntoa.texi
+++ b/doc/glibc-functions/inet_nsap_ntoa.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11.00, IRIX 5.3, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/initstate_r.texi
+++ b/doc/glibc-functions/initstate_r.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/ioperm.texi
+++ b/doc/glibc-functions/ioperm.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/iopl.texi
+++ b/doc/glibc-functions/iopl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/isctype.texi
+++ b/doc/glibc-functions/isctype.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/isfdtype.texi
+++ b/doc/glibc-functions/isfdtype.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/isinff.texi
+++ b/doc/glibc-functions/isinff.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw.
+MacOS X 10.5, FreeBSD 6.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @end itemize
--- a/doc/glibc-functions/isinfl.texi
+++ b/doc/glibc-functions/isinfl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/isnanf.texi
+++ b/doc/glibc-functions/isnanf.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11.
+MacOS X 10.5, AIX 5.1, HP-UX 11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/isnanl.texi
+++ b/doc/glibc-functions/isnanl.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/j0f.texi
+++ b/doc/glibc-functions/j0f.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/j0l.texi
+++ b/doc/glibc-functions/j0l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/j1f.texi
+++ b/doc/glibc-functions/j1f.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/j1l.texi
+++ b/doc/glibc-functions/j1l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/jnf.texi
+++ b/doc/glibc-functions/jnf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/jnl.texi
+++ b/doc/glibc-functions/jnl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/jrand48_r.texi
+++ b/doc/glibc-functions/jrand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/key_decryptsession.texi
+++ b/doc/glibc-functions/key_decryptsession.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_decryptsession_pk.texi
+++ b/doc/glibc-functions/key_decryptsession_pk.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_encryptsession.texi
+++ b/doc/glibc-functions/key_encryptsession.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_encryptsession_pk.texi
+++ b/doc/glibc-functions/key_encryptsession_pk.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_gendes.texi
+++ b/doc/glibc-functions/key_gendes.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_get_conv.texi
+++ b/doc/glibc-functions/key_get_conv.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_secretkey_is_set.texi
+++ b/doc/glibc-functions/key_secretkey_is_set.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/key_setsecret.texi
+++ b/doc/glibc-functions/key_setsecret.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/klogctl.texi
+++ b/doc/glibc-functions/klogctl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/lchmod.texi
+++ b/doc/glibc-functions/lchmod.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/lckpwdf.texi
+++ b/doc/glibc-functions/lckpwdf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/lcong48_r.texi
+++ b/doc/glibc-functions/lcong48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/lgamma_r.texi
+++ b/doc/glibc-functions/lgamma_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5 x86, IRIX 6.5, OSF/1 5.1, mingw.
 @end itemize
--- a/doc/glibc-functions/lgammaf_r.texi
+++ b/doc/glibc-functions/lgammaf_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
 @end itemize
--- a/doc/glibc-functions/lgammal_r.texi
+++ b/doc/glibc-functions/lgammal_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/lgetxattr.texi
+++ b/doc/glibc-functions/lgetxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/listxattr.texi
+++ b/doc/glibc-functions/listxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/llistxattr.texi
+++ b/doc/glibc-functions/llistxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/loc1.texi
+++ b/doc/glibc-functions/loc1.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/loc2.texi
+++ b/doc/glibc-functions/loc2.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/locs.texi
+++ b/doc/glibc-functions/locs.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/login_tty.texi
+++ b/doc/glibc-functions/login_tty.texi
@@ -8,12 +8,12 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
 @item
 This function requires linking with @code{-lutil} on some platforms:
-glibc 2.3.6, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8.
+glibc 2.3.6, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8.
 It is available without link options on other platforms:
-MacOS X 10.3, OSF/1 5.1, Cygwin, Interix 3.5.
+MacOS X 10.5, OSF/1 5.1, Cygwin, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
@@ -23,7 +23,7 @@
 mingw.
 @item
 This function is declared in @code{<utmp.h>} on glibc, Cygwin,
-in @code{<util.h>} on MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8,
+in @code{<util.h>} on MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8,
 in @code{<libutil.h>} on FreeBSD 6.0, Haiku, and not declared at all
 on OSF/1 5.1, Interix 3.5.  Also note that @code{<sys/types.h>} is
 a prerequisite of @code{<utmp.h>} on FreeBSD 8.0, OpenBSD 4.6 and
--- a/doc/glibc-functions/lrand48_r.texi
+++ b/doc/glibc-functions/lrand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/lremovexattr.texi
+++ b/doc/glibc-functions/lremovexattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/lsetxattr.texi
+++ b/doc/glibc-functions/lsetxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/lutimes.texi
+++ b/doc/glibc-functions/lutimes.texi
@@ -12,8 +12,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
-Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @item
 This function cannot set full timestamp resolution.  Use
 @code{utimensat(AT_FDCWD,file,times,AT_SYMLINK_NOFOLLOW)}, or the
--- a/doc/glibc-functions/mallinfo.texi
+++ b/doc/glibc-functions/mallinfo.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/malloc_get_state.texi
+++ b/doc/glibc-functions/malloc_get_state.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/malloc_set_state.texi
+++ b/doc/glibc-functions/malloc_set_state.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/malloc_stats.texi
+++ b/doc/glibc-functions/malloc_stats.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/malloc_trim.texi
+++ b/doc/glibc-functions/malloc_trim.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/malloc_usable_size.texi
+++ b/doc/glibc-functions/malloc_usable_size.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/mallopt.texi
+++ b/doc/glibc-functions/mallopt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/mcheck.texi
+++ b/doc/glibc-functions/mcheck.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/mcheck_check_all.texi
+++ b/doc/glibc-functions/mcheck_check_all.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/mcheck_pedantic.texi
+++ b/doc/glibc-functions/mcheck_pedantic.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/memalign.texi
+++ b/doc/glibc-functions/memalign.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.00, OSF/1 5.1, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/memfrob.texi
+++ b/doc/glibc-functions/memfrob.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/memmem.texi
+++ b/doc/glibc-functions/memmem.texi
@@ -9,7 +9,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 4.0, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 4.0, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
 @item
 This function has reversed arguments on some older platforms:
 Linux libc 5.0.9
@@ -28,7 +28,7 @@
 @item
 This function has quadratic instead of linear worst-case complexity on some
 platforms:
-glibc 2.8, FreeBSD 6.2, NetBSD 3.0, AIX 5.1, Cygwin 1.5.x.
+glibc 2.8, FreeBSD 6.2, NetBSD 5.0, AIX 5.1, Solaris 11 2010-11, Cygwin 1.5.x.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/mempcpy.texi
+++ b/doc/glibc-functions/mempcpy.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/memrchr.texi
+++ b/doc/glibc-functions/memrchr.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/mkostemp.texi
+++ b/doc/glibc-functions/mkostemp.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/mkostemps.texi
+++ b/doc/glibc-functions/mkostemps.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-glibc 2.10, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
+5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/monstartup.texi
+++ b/doc/glibc-functions/monstartup.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/mprobe.texi
+++ b/doc/glibc-functions/mprobe.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/mrand48_r.texi
+++ b/doc/glibc-functions/mrand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/mremap.texi
+++ b/doc/glibc-functions/mremap.texi
@@ -11,6 +11,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This function is missing on many platforms:
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/mtrace.texi
+++ b/doc/glibc-functions/mtrace.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/muntrace.texi
+++ b/doc/glibc-functions/muntrace.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/netname2host.texi
+++ b/doc/glibc-functions/netname2host.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/netname2user.texi
+++ b/doc/glibc-functions/netname2user.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ngettext.texi
+++ b/doc/glibc-functions/ngettext.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_add.texi
+++ b/doc/glibc-functions/nis_add.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_add_entry.texi
+++ b/doc/glibc-functions/nis_add_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_addmember.texi
+++ b/doc/glibc-functions/nis_addmember.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_checkpoint.texi
+++ b/doc/glibc-functions/nis_checkpoint.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_clone_object.texi
+++ b/doc/glibc-functions/nis_clone_object.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_creategroup.texi
+++ b/doc/glibc-functions/nis_creategroup.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_destroy_object.texi
+++ b/doc/glibc-functions/nis_destroy_object.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_destroygroup.texi
+++ b/doc/glibc-functions/nis_destroygroup.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_dir_cmp.texi
+++ b/doc/glibc-functions/nis_dir_cmp.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_domain_of.texi
+++ b/doc/glibc-functions/nis_domain_of.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_domain_of_r.texi
+++ b/doc/glibc-functions/nis_domain_of_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_first_entry.texi
+++ b/doc/glibc-functions/nis_first_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_freenames.texi
+++ b/doc/glibc-functions/nis_freenames.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_freeresult.texi
+++ b/doc/glibc-functions/nis_freeresult.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_freeservlist.texi
+++ b/doc/glibc-functions/nis_freeservlist.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_freetags.texi
+++ b/doc/glibc-functions/nis_freetags.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_getnames.texi
+++ b/doc/glibc-functions/nis_getnames.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_getservlist.texi
+++ b/doc/glibc-functions/nis_getservlist.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_ismember.texi
+++ b/doc/glibc-functions/nis_ismember.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_leaf_of.texi
+++ b/doc/glibc-functions/nis_leaf_of.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_leaf_of_r.texi
+++ b/doc/glibc-functions/nis_leaf_of_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_lerror.texi
+++ b/doc/glibc-functions/nis_lerror.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_list.texi
+++ b/doc/glibc-functions/nis_list.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_local_directory.texi
+++ b/doc/glibc-functions/nis_local_directory.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_local_group.texi
+++ b/doc/glibc-functions/nis_local_group.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_local_host.texi
+++ b/doc/glibc-functions/nis_local_host.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_local_principal.texi
+++ b/doc/glibc-functions/nis_local_principal.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_lookup.texi
+++ b/doc/glibc-functions/nis_lookup.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_mkdir.texi
+++ b/doc/glibc-functions/nis_mkdir.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_modify.texi
+++ b/doc/glibc-functions/nis_modify.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_modify_entry.texi
+++ b/doc/glibc-functions/nis_modify_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_name_of.texi
+++ b/doc/glibc-functions/nis_name_of.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_name_of_r.texi
+++ b/doc/glibc-functions/nis_name_of_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_next_entry.texi
+++ b/doc/glibc-functions/nis_next_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_perror.texi
+++ b/doc/glibc-functions/nis_perror.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_ping.texi
+++ b/doc/glibc-functions/nis_ping.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_directory.texi
+++ b/doc/glibc-functions/nis_print_directory.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_entry.texi
+++ b/doc/glibc-functions/nis_print_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_group.texi
+++ b/doc/glibc-functions/nis_print_group.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_group_entry.texi
+++ b/doc/glibc-functions/nis_print_group_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_link.texi
+++ b/doc/glibc-functions/nis_print_link.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_object.texi
+++ b/doc/glibc-functions/nis_print_object.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_result.texi
+++ b/doc/glibc-functions/nis_print_result.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_rights.texi
+++ b/doc/glibc-functions/nis_print_rights.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_print_table.texi
+++ b/doc/glibc-functions/nis_print_table.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_remove.texi
+++ b/doc/glibc-functions/nis_remove.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_remove_entry.texi
+++ b/doc/glibc-functions/nis_remove_entry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_removemember.texi
+++ b/doc/glibc-functions/nis_removemember.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_rmdir.texi
+++ b/doc/glibc-functions/nis_rmdir.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_servstate.texi
+++ b/doc/glibc-functions/nis_servstate.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_sperrno.texi
+++ b/doc/glibc-functions/nis_sperrno.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_sperror.texi
+++ b/doc/glibc-functions/nis_sperror.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_sperror_r.texi
+++ b/doc/glibc-functions/nis_sperror_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_stats.texi
+++ b/doc/glibc-functions/nis_stats.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nis_verifygroup.texi
+++ b/doc/glibc-functions/nis_verifygroup.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/nrand48_r.texi
+++ b/doc/glibc-functions/nrand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/ntp_adjtime.texi
+++ b/doc/glibc-functions/ntp_adjtime.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ntp_gettime.texi
+++ b/doc/glibc-functions/ntp_gettime.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/obstack_alloc_failed_handler.texi
+++ b/doc/glibc-functions/obstack_alloc_failed_handler.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/obstack_exit_failure.texi
+++ b/doc/glibc-functions/obstack_exit_failure.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/obstack_free.texi
+++ b/doc/glibc-functions/obstack_free.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/obstack_printf.texi
+++ b/doc/glibc-functions/obstack_printf.texi
@@ -9,7 +9,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{ostack-printf-posix}:
@@ -24,12 +24,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -40,7 +40,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -55,14 +55,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @item
 This function does not fully support the @samp{n} directive on some platforms:
 HP-UX 11, mingw.
--- a/doc/glibc-functions/obstack_vprintf.texi
+++ b/doc/glibc-functions/obstack_vprintf.texi
@@ -9,7 +9,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{ostack-printf-posix}:
@@ -24,12 +24,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -40,7 +40,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -55,14 +55,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @item
 This function does not fully support the @samp{n} directive on some platforms:
 HP-UX 11, mingw.
--- a/doc/glibc-functions/on_exit.texi
+++ b/doc/glibc-functions/on_exit.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/openpty.texi
+++ b/doc/glibc-functions/openpty.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
 @item
 One some systems (at least including Cygwin, Interix, OSF/1 4 and 5,
 and Mac OS X) linking with @code{-lutil} is not required.
--- a/doc/glibc-functions/parse_printf_format.texi
+++ b/doc/glibc-functions/parse_printf_format.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/personality.texi
+++ b/doc/glibc-functions/personality.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/pipe2.texi
+++ b/doc/glibc-functions/pipe2.texi
@@ -8,8 +8,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/pow10.texi
+++ b/doc/glibc-functions/pow10.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/pow10f.texi
+++ b/doc/glibc-functions/pow10f.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/pow10l.texi
+++ b/doc/glibc-functions/pow10l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/prctl.texi
+++ b/doc/glibc-functions/prctl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/printf_size.texi
+++ b/doc/glibc-functions/printf_size.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/printf_size_info.texi
+++ b/doc/glibc-functions/printf_size_info.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/program_invocation_name.texi
+++ b/doc/glibc-functions/program_invocation_name.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/program_invocation_short_name.texi
+++ b/doc/glibc-functions/program_invocation_short_name.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/pthread_getattr_np.texi
+++ b/doc/glibc-functions/pthread_getattr_np.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/pthread_kill_other_threads_np.texi
+++ b/doc/glibc-functions/pthread_kill_other_threads_np.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/pthread_rwlockattr_getkind_np.texi
+++ b/doc/glibc-functions/pthread_rwlockattr_getkind_np.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/pthread_rwlockattr_setkind_np.texi
+++ b/doc/glibc-functions/pthread_rwlockattr_setkind_np.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/pthread_yield.texi
+++ b/doc/glibc-functions/pthread_yield.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ptsname_r.texi
+++ b/doc/glibc-functions/ptsname_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/putgrent.texi
+++ b/doc/glibc-functions/putgrent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/putpwent.texi
+++ b/doc/glibc-functions/putpwent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/putspent.texi
+++ b/doc/glibc-functions/putspent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/pututline.texi
+++ b/doc/glibc-functions/pututline.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/putwc_unlocked.texi
+++ b/doc/glibc-functions/putwc_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/putwchar_unlocked.texi
+++ b/doc/glibc-functions/putwchar_unlocked.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/pvalloc.texi
+++ b/doc/glibc-functions/pvalloc.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/qecvt.texi
+++ b/doc/glibc-functions/qecvt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/qecvt_r.texi
+++ b/doc/glibc-functions/qecvt_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/qfcvt.texi
+++ b/doc/glibc-functions/qfcvt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/qfcvt_r.texi
+++ b/doc/glibc-functions/qfcvt_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/qgcvt.texi
+++ b/doc/glibc-functions/qgcvt.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/quotactl.texi
+++ b/doc/glibc-functions/quotactl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/random_r.texi
+++ b/doc/glibc-functions/random_r.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/rawmemchr.texi
+++ b/doc/glibc-functions/rawmemchr.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/rcmd_af.texi
+++ b/doc/glibc-functions/rcmd_af.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/re_comp.texi
+++ b/doc/glibc-functions/re_comp.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_compile_fastmap.texi
+++ b/doc/glibc-functions/re_compile_fastmap.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_compile_pattern.texi
+++ b/doc/glibc-functions/re_compile_pattern.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_exec.texi
+++ b/doc/glibc-functions/re_exec.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_match.texi
+++ b/doc/glibc-functions/re_match.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_match_2.texi
+++ b/doc/glibc-functions/re_match_2.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_search.texi
+++ b/doc/glibc-functions/re_search.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_search_2.texi
+++ b/doc/glibc-functions/re_search_2.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_set_registers.texi
+++ b/doc/glibc-functions/re_set_registers.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_set_syntax.texi
+++ b/doc/glibc-functions/re_set_syntax.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/re_syntax_options.texi
+++ b/doc/glibc-functions/re_syntax_options.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/readahead.texi
+++ b/doc/glibc-functions/readahead.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/register_printf_function.texi
+++ b/doc/glibc-functions/register_printf_function.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/remap_file_pages.texi
+++ b/doc/glibc-functions/remap_file_pages.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/removexattr.texi
+++ b/doc/glibc-functions/removexattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/revoke.texi
+++ b/doc/glibc-functions/revoke.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/rexec.texi
+++ b/doc/glibc-functions/rexec.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/rexec_af.texi
+++ b/doc/glibc-functions/rexec_af.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/rpmatch.texi
+++ b/doc/glibc-functions/rpmatch.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/rresvport_af.texi
+++ b/doc/glibc-functions/rresvport_af.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/rtime.texi
+++ b/doc/glibc-functions/rtime.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ruserok_af.texi
+++ b/doc/glibc-functions/ruserok_af.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/scalbf.texi
+++ b/doc/glibc-functions/scalbf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/scalbl.texi
+++ b/doc/glibc-functions/scalbl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sched_getaffinity.texi
+++ b/doc/glibc-functions/sched_getaffinity.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sched_setaffinity.texi
+++ b/doc/glibc-functions/sched_setaffinity.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/seed48_r.texi
+++ b/doc/glibc-functions/seed48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/semtimedop.texi
+++ b/doc/glibc-functions/semtimedop.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sendfile.texi
+++ b/doc/glibc-functions/sendfile.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setaliasent.texi
+++ b/doc/glibc-functions/setaliasent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setfsent.texi
+++ b/doc/glibc-functions/setfsent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setfsgid.texi
+++ b/doc/glibc-functions/setfsgid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setfsuid.texi
+++ b/doc/glibc-functions/setfsuid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sethostid.texi
+++ b/doc/glibc-functions/sethostid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setipv4sourcefilter.texi
+++ b/doc/glibc-functions/setipv4sourcefilter.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setkey_r.texi
+++ b/doc/glibc-functions/setkey_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setlinebuf.texi
+++ b/doc/glibc-functions/setlinebuf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, mingw.
+HP-UX 11.23, mingw.
 @end itemize
--- a/doc/glibc-functions/setlogin.texi
+++ b/doc/glibc-functions/setlogin.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setmntent.texi
+++ b/doc/glibc-functions/setmntent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setresgid.texi
+++ b/doc/glibc-functions/setresgid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setresuid.texi
+++ b/doc/glibc-functions/setresuid.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setsourcefilter.texi
+++ b/doc/glibc-functions/setsourcefilter.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setspent.texi
+++ b/doc/glibc-functions/setspent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setstate_r.texi
+++ b/doc/glibc-functions/setstate_r.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/setttyent.texi
+++ b/doc/glibc-functions/setttyent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setutent.texi
+++ b/doc/glibc-functions/setutent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/setxattr.texi
+++ b/doc/glibc-functions/setxattr.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sgetspent.texi
+++ b/doc/glibc-functions/sgetspent.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sgetspent_r.texi
+++ b/doc/glibc-functions/sgetspent_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigandset.texi
+++ b/doc/glibc-functions/sigandset.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigblock.texi
+++ b/doc/glibc-functions/sigblock.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-Solaris 10, Cygwin, mingw, BeOS.
+Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/siggetmask.texi
+++ b/doc/glibc-functions/siggetmask.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigisemptyset.texi
+++ b/doc/glibc-functions/sigisemptyset.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/significandf.texi
+++ b/doc/glibc-functions/significandf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw.
 @end itemize
--- a/doc/glibc-functions/significandl.texi
+++ b/doc/glibc-functions/significandl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigorset.texi
+++ b/doc/glibc-functions/sigorset.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigreturn.texi
+++ b/doc/glibc-functions/sigreturn.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigsetmask.texi
+++ b/doc/glibc-functions/sigsetmask.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-Solaris 10, Cygwin, mingw, BeOS.
+Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigstack.texi
+++ b/doc/glibc-functions/sigstack.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sigvec.texi
+++ b/doc/glibc-functions/sigvec.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, Solaris 10, Cygwin, mingw, BeOS.
+HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/sincos.texi
+++ b/doc/glibc-functions/sincos.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/sincosf.texi
+++ b/doc/glibc-functions/sincosf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/sincosl.texi
+++ b/doc/glibc-functions/sincosl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sprofil.texi
+++ b/doc/glibc-functions/sprofil.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.11, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/srand48_r.texi
+++ b/doc/glibc-functions/srand48_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/srandom_r.texi
+++ b/doc/glibc-functions/srandom_r.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/ssignal.texi
+++ b/doc/glibc-functions/ssignal.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/step.texi
+++ b/doc/glibc-functions/step.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/stime.texi
+++ b/doc/glibc-functions/stime.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/strcasestr.texi
+++ b/doc/glibc-functions/strcasestr.texi
@@ -27,7 +27,7 @@
 @item
 This function has quadratic instead of linear worst-case complexity on some
 platforms:
-glibc 2.8, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0.
+glibc 2.8, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/strchrnul.texi
+++ b/doc/glibc-functions/strchrnul.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/strfry.texi
+++ b/doc/glibc-functions/strfry.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strptime_l.texi
+++ b/doc/glibc-functions/strptime_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtod_l.texi
+++ b/doc/glibc-functions/strtod_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtof_l.texi
+++ b/doc/glibc-functions/strtof_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtol_l.texi
+++ b/doc/glibc-functions/strtol_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtold_l.texi
+++ b/doc/glibc-functions/strtold_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtoll_l.texi
+++ b/doc/glibc-functions/strtoll_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtoq.texi
+++ b/doc/glibc-functions/strtoq.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw.
 @end itemize
--- a/doc/glibc-functions/strtoul_l.texi
+++ b/doc/glibc-functions/strtoul_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtoull_l.texi
+++ b/doc/glibc-functions/strtoull_l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/strtouq.texi
+++ b/doc/glibc-functions/strtouq.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw.
 @end itemize
--- a/doc/glibc-functions/strverscmp.texi
+++ b/doc/glibc-functions/strverscmp.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/svc_exit.texi
+++ b/doc/glibc-functions/svc_exit.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/svc_getreq_common.texi
+++ b/doc/glibc-functions/svc_getreq_common.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/svc_getreq_poll.texi
+++ b/doc/glibc-functions/svc_getreq_poll.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/svc_max_pollfd.texi
+++ b/doc/glibc-functions/svc_max_pollfd.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/svc_pollfd.texi
+++ b/doc/glibc-functions/svc_pollfd.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/svcunix_create.texi
+++ b/doc/glibc-functions/svcunix_create.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/swapoff.texi
+++ b/doc/glibc-functions/swapoff.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/swapon.texi
+++ b/doc/glibc-functions/swapon.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sys_errlist.texi
+++ b/doc/glibc-functions/sys_errlist.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sys_nerr.texi
+++ b/doc/glibc-functions/sys_nerr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sys_siglist.texi
+++ b/doc/glibc-functions/sys_siglist.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This constant is missing on some platforms:
-MacOS X 10.3, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/sysctl.texi
+++ b/doc/glibc-functions/sysctl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sysinfo.texi
+++ b/doc/glibc-functions/sysinfo.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/sysv_signal.texi
+++ b/doc/glibc-functions/sysv_signal.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/tdestroy.texi
+++ b/doc/glibc-functions/tdestroy.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/textdomain.texi
+++ b/doc/glibc-functions/textdomain.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/timegm.texi
+++ b/doc/glibc-functions/timegm.texi
@@ -8,7 +8,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-functions/timelocal.texi
+++ b/doc/glibc-functions/timelocal.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-functions/tmpnam_r.texi
+++ b/doc/glibc-functions/tmpnam_r.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ulckpwdf.texi
+++ b/doc/glibc-functions/ulckpwdf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/umount.texi
+++ b/doc/glibc-functions/umount.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/umount2.texi
+++ b/doc/glibc-functions/umount2.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/updwtmp.texi
+++ b/doc/glibc-functions/updwtmp.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/updwtmpx.texi
+++ b/doc/glibc-functions/updwtmpx.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1,
 Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/user2netname.texi
+++ b/doc/glibc-functions/user2netname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ustat.texi
+++ b/doc/glibc-functions/ustat.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/utmpname.texi
+++ b/doc/glibc-functions/utmpname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/utmpxname.texi
+++ b/doc/glibc-functions/utmpxname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/versionsort.texi
+++ b/doc/glibc-functions/versionsort.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/vhangup.texi
+++ b/doc/glibc-functions/vhangup.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/vlimit.texi
+++ b/doc/glibc-functions/vlimit.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/vm86.texi
+++ b/doc/glibc-functions/vm86.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/vtimes.texi
+++ b/doc/glibc-functions/vtimes.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/wait4.texi
+++ b/doc/glibc-functions/wait4.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, mingw, Interix 3.5, BeOS.
+AIX 4.3.2, HP-UX 11.11, IRIX 6.5, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/wcschrnul.texi
+++ b/doc/glibc-functions/wcschrnul.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcsftime_l.texi
+++ b/doc/glibc-functions/wcsftime_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstod_l.texi
+++ b/doc/glibc-functions/wcstod_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstof_l.texi
+++ b/doc/glibc-functions/wcstof_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstol_l.texi
+++ b/doc/glibc-functions/wcstol_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstold_l.texi
+++ b/doc/glibc-functions/wcstold_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstoll_l.texi
+++ b/doc/glibc-functions/wcstoll_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstoq.texi
+++ b/doc/glibc-functions/wcstoq.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstoul_l.texi
+++ b/doc/glibc-functions/wcstoul_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstoull_l.texi
+++ b/doc/glibc-functions/wcstoull_l.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wcstouq.texi
+++ b/doc/glibc-functions/wcstouq.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/wmempcpy.texi
+++ b/doc/glibc-functions/wmempcpy.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/glibc-functions/xdr_authunix_parms.texi
+++ b/doc/glibc-functions/xdr_authunix_parms.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, Solaris 10, Cygwin, mingw, BeOS.
+HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_cback_data.texi
+++ b/doc/glibc-functions/xdr_cback_data.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_cryptkeyarg.texi
+++ b/doc/glibc-functions/xdr_cryptkeyarg.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_cryptkeyarg2.texi
+++ b/doc/glibc-functions/xdr_cryptkeyarg2.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_cryptkeyres.texi
+++ b/doc/glibc-functions/xdr_cryptkeyres.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_domainname.texi
+++ b/doc/glibc-functions/xdr_domainname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_getcredres.texi
+++ b/doc/glibc-functions/xdr_getcredres.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_int8_t.texi
+++ b/doc/glibc-functions/xdr_int8_t.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_key_netstarg.texi
+++ b/doc/glibc-functions/xdr_key_netstarg.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_key_netstres.texi
+++ b/doc/glibc-functions/xdr_key_netstres.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_keybuf.texi
+++ b/doc/glibc-functions/xdr_keybuf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_keydat.texi
+++ b/doc/glibc-functions/xdr_keydat.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_keystatus.texi
+++ b/doc/glibc-functions/xdr_keystatus.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_mapname.texi
+++ b/doc/glibc-functions/xdr_mapname.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_netnamestr.texi
+++ b/doc/glibc-functions/xdr_netnamestr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_obj_p.texi
+++ b/doc/glibc-functions/xdr_obj_p.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_peername.texi
+++ b/doc/glibc-functions/xdr_peername.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_quad_t.texi
+++ b/doc/glibc-functions/xdr_quad_t.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_rmtcall_args.texi
+++ b/doc/glibc-functions/xdr_rmtcall_args.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, Solaris 10, Cygwin, mingw, BeOS.
+HP-UX 11, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_sizeof.texi
+++ b/doc/glibc-functions/xdr_sizeof.texi
@@ -12,6 +12,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1
 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_u_quad_t.texi
+++ b/doc/glibc-functions/xdr_u_quad_t.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_uint16_t.texi
+++ b/doc/glibc-functions/xdr_uint16_t.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, Interix 3.5, BeOS.
 @item
 This function is not declared in the header on some platforms:
--- a/doc/glibc-functions/xdr_uint32_t.texi
+++ b/doc/glibc-functions/xdr_uint32_t.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 This function is not declared in the header on some platforms:
 Cygwin 1.7.5.
--- a/doc/glibc-functions/xdr_uint64_t.texi
+++ b/doc/glibc-functions/xdr_uint64_t.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 This function is not declared in the header on some platforms:
 Cygwin 1.7.5.
--- a/doc/glibc-functions/xdr_uint8_t.texi
+++ b/doc/glibc-functions/xdr_uint8_t.texi
@@ -12,7 +12,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 This function is not declared in the header on some platforms:
 Cygwin 1.7.5.
--- a/doc/glibc-functions/xdr_unixcred.texi
+++ b/doc/glibc-functions/xdr_unixcred.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_valdat.texi
+++ b/doc/glibc-functions/xdr_valdat.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_yp_buf.texi
+++ b/doc/glibc-functions/xdr_yp_buf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypall.texi
+++ b/doc/glibc-functions/xdr_ypall.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypbind_binding.texi
+++ b/doc/glibc-functions/xdr_ypbind_binding.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypbind_resptype.texi
+++ b/doc/glibc-functions/xdr_ypbind_resptype.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypdelete_args.texi
+++ b/doc/glibc-functions/xdr_ypdelete_args.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypmap_parms.texi
+++ b/doc/glibc-functions/xdr_ypmap_parms.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypmaplist.texi
+++ b/doc/glibc-functions/xdr_ypmaplist.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_yppush_status.texi
+++ b/doc/glibc-functions/xdr_yppush_status.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_yppushresp_xfr.texi
+++ b/doc/glibc-functions/xdr_yppushresp_xfr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypreq_xfr.texi
+++ b/doc/glibc-functions/xdr_ypreq_xfr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypresp_all.texi
+++ b/doc/glibc-functions/xdr_ypresp_all.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypresp_xfr.texi
+++ b/doc/glibc-functions/xdr_ypresp_xfr.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypstat.texi
+++ b/doc/glibc-functions/xdr_ypstat.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypupdate_args.texi
+++ b/doc/glibc-functions/xdr_ypupdate_args.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/xdr_ypxfrstat.texi
+++ b/doc/glibc-functions/xdr_ypxfrstat.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/y0f.texi
+++ b/doc/glibc-functions/y0f.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/y0l.texi
+++ b/doc/glibc-functions/y0l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/y1f.texi
+++ b/doc/glibc-functions/y1f.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/y1l.texi
+++ b/doc/glibc-functions/y1l.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ynf.texi
+++ b/doc/glibc-functions/ynf.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
+MacOS X 10.5, AIX 5.1, HP-UX 11, IRIX 6.5, mingw.
 @end itemize
--- a/doc/glibc-functions/ynl.texi
+++ b/doc/glibc-functions/ynl.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/yp_update.texi
+++ b/doc/glibc-functions/yp_update.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-functions/ypbinderr_string.texi
+++ b/doc/glibc-functions/ypbinderr_string.texi
@@ -12,5 +12,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/a.out.texi
+++ b/doc/glibc-headers/a.out.texi
@@ -14,9 +14,9 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @item
 This header file is useless because most executables and object files are
 in ELF format on some platforms:
-glibc 2.3.6, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8.
+glibc 2.3.6, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8.
 @end itemize
--- a/doc/glibc-headers/aliases.texi
+++ b/doc/glibc-headers/aliases.texi
@@ -22,5 +22,5 @@
 @itemize
 @item
 This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/alloca.texi
+++ b/doc/glibc-headers/alloca.texi
@@ -22,7 +22,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, mingw.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, mingw.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/argp.texi
+++ b/doc/glibc-headers/argp.texi
@@ -18,7 +18,7 @@
 @itemize
 @item
 This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/argz.texi
+++ b/doc/glibc-headers/argz.texi
@@ -20,7 +20,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @item
 The argz functions do not work on some platforms:
 Cygwin.
--- a/doc/glibc-headers/byteswap.texi
+++ b/doc/glibc-headers/byteswap.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/crypt.texi
+++ b/doc/glibc-headers/crypt.texi
@@ -32,7 +32,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, Interix 3.5, BeOS.
 @item
 The functions @code{crypt}, @code{setkey}, @code{encrypt} are missing on some
 platforms:
@@ -40,5 +40,5 @@
 @item
 The type @code{struct crypt_data} and the functions @code{crypt_r},
 @code{setkey_r}, @code{encrypt_r} are missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin.
+IRIX 6.5, Solaris 11 2010-11, Cygwin.
 @end itemize
--- a/doc/glibc-headers/endian.texi
+++ b/doc/glibc-headers/endian.texi
@@ -15,5 +15,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-headers/envz.texi
+++ b/doc/glibc-headers/envz.texi
@@ -24,5 +24,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/error.texi
+++ b/doc/glibc-headers/error.texi
@@ -24,7 +24,7 @@
 @itemize
 @item
 This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/execinfo.texi
+++ b/doc/glibc-headers/execinfo.texi
@@ -26,6 +26,6 @@
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+This header file is missing on some platforms:
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/fpu_control.texi
+++ b/doc/glibc-headers/fpu_control.texi
@@ -15,5 +15,5 @@
 @itemize
 @item
 This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/fstab.texi
+++ b/doc/glibc-headers/fstab.texi
@@ -29,7 +29,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 The macro @code{_PATH_FSTAB} is missing on some platforms:
 AIX 5.1, HP-UX 11.
--- a/doc/glibc-headers/fts.texi
+++ b/doc/glibc-headers/fts.texi
@@ -21,5 +21,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
 @end itemize
--- a/doc/glibc-headers/getopt.texi
+++ b/doc/glibc-headers/getopt.texi
@@ -30,14 +30,14 @@
 IRIX 6.5, OSF/1 5.1, Solaris 9.
 @item
 The function @code{getopt_long_only} is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
 @item
 The method to reset options is incompatible on some platforms:
-FreeBSD 6.0, NetBSD 3.0(?), OpenBSD 3.8, Cygwin 1.5.x, mingw.
+FreeBSD 6.0, NetBSD 5.0(?), OpenBSD 3.8, Cygwin 1.5.x, mingw.
 @item
 The function @code{getopt} does not handle a leading @samp{+} character in
 the options string on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/ieee754.texi
+++ b/doc/glibc-headers/ieee754.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/libintl.texi
+++ b/doc/glibc-headers/libintl.texi
@@ -31,7 +31,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, Interix 3.5, BeOS.
 @item
 The functions cannot deal with GNU .mo files with system-dependent strings
 (of major version 1 or of minor version 1) on some non-glibc platforms:
--- a/doc/glibc-headers/mcheck.texi
+++ b/doc/glibc-headers/mcheck.texi
@@ -26,5 +26,5 @@
 @itemize
 @item
 This header file is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/glibc-headers/mntent.texi
+++ b/doc/glibc-headers/mntent.texi
@@ -29,7 +29,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2010-11, mingw, Interix 3.5, BeOS.
 @item
 The function @code{getmntent_r} is missing on all non-glibc platforms:
 AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin.
--- a/doc/glibc-headers/obstack.texi
+++ b/doc/glibc-headers/obstack.texi
@@ -18,7 +18,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/paths.texi
+++ b/doc/glibc-headers/paths.texi
@@ -13,7 +13,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-HP-UX 11, Solaris 10, mingw, BeOS.
+HP-UX 11, Solaris 11 2010-11, mingw, BeOS.
 @item
 The set of @code{_PATH_*} macros is platform dependent.
 @end itemize
--- a/doc/glibc-headers/printf.texi
+++ b/doc/glibc-headers/printf.texi
@@ -28,5 +28,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/glibc-headers/pty.texi
+++ b/doc/glibc-headers/pty.texi
@@ -23,11 +23,11 @@
 @item
 This header file is missing on some platforms that declare the
 @code{forkpty} and @code{openpty} functions in @code{util.h} or
-@code{libutil.h} instead: MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0,
+@code{libutil.h} instead: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0,
 OpenBSD 3.8.
 @item
 This header file is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 10, BeOS.
+AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/shadow.texi
+++ b/doc/glibc-headers/shadow.texi
@@ -26,7 +26,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 The functions @code{getspent_r}, @code{getspnam_r}, @code{sgetspent_r},
 @code{fgetspent}, @code{fgetspent_r}, @code{putspent} are missing on some
@@ -35,5 +35,5 @@
 @item
 The functions @code{sgetspent}, @code{sgetspent_r} are missing on some
 platforms:
-IRIX 6.5, Solaris 10.
+HP-UX 11, IRIX 6.5, Solaris 11 2010-11.
 @end itemize
--- a/doc/glibc-headers/sys_ioctl.texi
+++ b/doc/glibc-headers/sys_ioctl.texi
@@ -25,7 +25,7 @@
 mingw.
 @item
 This header file does not declare the @code{ioctl} function on some platforms:
-AIX 5.1, Solaris 10.
+AIX 5.1, Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/glibc-headers/ttyent.texi
+++ b/doc/glibc-headers/ttyent.texi
@@ -20,5 +20,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-HP-UX 11, IRIX 6.5, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+HP-UX 11, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/maintain.texi
+++ b/doc/maintain.texi
@@ -5,7 +5,7 @@
 @c For double-sided printing, uncomment:
 @c @setchapternewpage odd
 @c This date is automagically updated when you save this file:
-@set lastupdate October 8, 2010
+@set lastupdate December 9, 2010
 @c %**end of header
 
 @dircategory GNU organization
@@ -70,6 +70,7 @@
 * Ethical and Philosophical Consideration::
 * Terminology::
 * Hosting::
+* Donations::
 * Free Software Directory::
 * Using the Proofreaders List::
 * GNU Free Documentation License::
@@ -624,8 +625,11 @@
 extend copyright.  If you copy a file into the package from some other
 program, keep the copyright years that come with the file.
 
-Do not abbreviate the year list using a range; for instance, do not
-write @samp{1996--1998}; instead, write @samp{1996, 1997, 1998}.
+You can use a range (@samp{2008-2010}) instead of listing individual
+years (@samp{2008, 2009, 2010}) if and only if: 1)@tie{}every year in
+the range, inclusive, really is a ``copyrightable'' year that would be
+listed individually; @emph{and} 2)@tie{}you make an explicit statement
+in a @file{README} file about this usage.
 
 For files which are regularly copied from another project (such as
 @samp{gnulib}), leave the copyright notice as it is in the original.
@@ -1095,10 +1099,10 @@
 @cindex version control
 
 It is very important to keep backup files of all source files of GNU.
-You can do this using a source control system (such as RCS, CVS, Git,
-@dots{}) if you like.  The easiest way to use RCS or CVS is via the
-Version Control library in Emacs (@pxref{VC Concepts,, Concepts of
-Version Control, emacs, The GNU Emacs Manual}).
+You can do this using a source control system (such as Bazaar, RCS,
+CVS, Git, Subversion, @dots{}) if you like.  The easiest way to use
+RCS or CVS is via the Version Control library in Emacs (@pxref{VC
+Concepts,, Concepts of Version Control, emacs, The GNU Emacs Manual}).
 
 The history of previous revisions and log entries is very important for
 future maintainers of the package, so even if you do not make it
@@ -1109,15 +1113,14 @@
 @cindex @code{savannah-hackers@@gnu.org}
 The GNU Project provides a server that GNU software packages can use
 for source control and other package needs: @code{savannah.gnu.org}.
-You don't have to use this repository, but if you plan to allow public
-read-only access to your development sources, it is convenient for
-people to be able to find various GNU packages in a central place.
-Savannah is managed by @email{savannah-hackers@@gnu.org}.
+Savannah is managed by @email{savannah-hackers@@gnu.org}.  For more
+details on using and contributing to Savannah, see
+@url{http://savannah.gnu.org/maintenance}.
 
-All GNU maintainers are strongly encouraged to take advantage of
-Savannah, as sharing such a central point can serve to foster a sense
-of community among GNU developers and help in keeping up with project
-management.
+It's not a requirement, but all GNU maintainers are strongly
+encouraged to take advantage of Savannah, as sharing such a central
+point can serve to foster a sense of community among GNU developers
+and help in keeping up with project management.
 
 @cindex @code{savannah-announce@@gnu.org} mailing list
 If you do use Savannah, please subscribe to the
@@ -1341,7 +1344,7 @@
 --keyserver keys.gnupg.net --send-keys @var{keyid}}, where @var{keyid}
 is the eight hex digits reported by @code{gpg --list-public-keys} on
 the @code{pub} line before the date.  For full information about GPG,
-see @url{http://www.gnu.org/software/gpg})
+see @url{http://www.gnu.org/software/gpg}.
 
 @item
 Compose a message with the following items in some @var{msgfile}.
@@ -2063,7 +2066,7 @@
 information, see http://www.gnu.org/philosophy/free-sw.html.
 
 If you are looking for service or support for GNU software, see
-http://www.gnu.org/help/gethelp.html for suggestions of where to ask.
+http://www.gnu.org/gethelp/ for suggestions of where to ask.
 
 If you would like to contribute to the development of one of these
 packages, contact the package maintainer or the bug-reporting address
@@ -2072,6 +2075,50 @@
 @end smallexample
 
 
+@node Donations
+@chapter Donations
+@cindex Donations, for packages
+@cindex Money, donated to packages
+
+As a maintainer, you might want to accept donations for your work,
+especially if you pay for any of your own hosting/development
+infrastructure.  Following is some text you can adapt to your own
+situation, and use on your package's web site, @file{README}, or
+in wherever way you find it useful:
+
+@smallexample
+We appreciate contributions of any size -- donations enable us to spend
+more time working on the project, and help cover our infrastructure
+expenses.
+
+If you'd like to make a small donation, please visit @var{url1} and do
+it through @var{payment-service}.  Since our project isn't a
+tax-exempt organization, we can't offer you a tax deduction, but for
+all donations over @var{amount1}, we'd be happy to recognize your
+contribution on @var{url2}.
+
+We are also happy to consider making particular improvements or
+changes, or giving specific technical assistance, in return for a
+substantial donation over @var{amount2}.  If you would like to discuss
+this possibility, write to us at @var{address}.
+
+Another possibility is to pay a software maintenance fee.  Again,
+write to us about this at @var{address} to discuss how much you want
+to pay and how much maintenance we can offer in return.  If you pay
+more than @var{amount1}, we can give you a document for your records.
+
+Thanks for your support!
+@end smallexample
+
+We don't recommend any specific payment service.  However, GNU
+developers should not use a service that requires them to sign a
+proprietary software license, such as Google's payment service.
+
+Of course, it is also good to encourage people to join or contribute
+to the FSF (@url{http://www.fsf.org}), either instead of or as well as
+package-specific donations.
+
+
 @node Free Software Directory
 @chapter Free Software Directory
 @cindex Free Software Directory
--- a/doc/make-stds.texi
+++ b/doc/make-stds.texi
@@ -715,8 +715,9 @@
 for.
 
 By default, the Make rules should compile and link with @samp{-g}, so
-that executable programs have debugging symbols.  Users who don't mind
-being helpless can strip the executables later if they wish.
+that executable programs have debugging symbols.  Otherwise, you are
+essentially helpless in the face of a crash, and it is often far from
+easy to reproduce with a fresh build.
 
 @item install
 Compile the program and copy the executables, libraries, and so on to
@@ -724,8 +725,11 @@
 simple test to verify that a program is properly installed, this target
 should run that test.
 
-Do not strip executables when installing them.  Devil-may-care users can
-use the @code{install-strip} target to do that.
+Do not strip executables when installing them.  This helps eventual
+debugging that may be needed later, and nowadays disk space is cheap
+and dynamic loaders typically ensure debug sections are not loaded during
+normal execution.  Users that need stripped binaries may invoke the
+@code{install-strip} target to do that.
 
 If possible, write the @code{install} target rule so that it does not
 modify anything in the directory where the program was built, provided
@@ -837,10 +841,7 @@
 stripped executable for actual execution while saving the unstripped
 executable elsewhere in case there is a bug.
 
-@comment The gratuitous blank line here is to make the table look better
-@comment in the printed Make manual.  Please leave it in.
 @item clean
-
 Delete all files in the current directory that are normally created by
 building the program.  Also delete files in other directories if they
 are created by this makefile.  However, don't delete the files that
--- a/doc/pastposix-functions/bsd_signal.texi
+++ b/doc/pastposix-functions/bsd_signal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, Interix 3.5.
 @end itemize
--- a/doc/pastposix-functions/ecvt.texi
+++ b/doc/pastposix-functions/ecvt.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0.
+FreeBSD 6.0, NetBSD 5.0.
 @item
 This function is marked as ``legacy'' in POSIX.  Better use @code{sprintf}
 instead.
--- a/doc/pastposix-functions/fcvt.texi
+++ b/doc/pastposix-functions/fcvt.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0.
+FreeBSD 6.0, NetBSD 5.0.
 @item
 This function is marked as ``legacy'' in POSIX.  Better use @code{sprintf}
 instead.
--- a/doc/pastposix-functions/ftime.texi
+++ b/doc/pastposix-functions/ftime.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4.
 @item
 This function is marked as ``legacy'' in POSIX.  Better use @code{gettimeofday}
 or @code{clock_gettime} instead, and use @code{ftime} only as a fallback for
--- a/doc/pastposix-functions/gcvt.texi
+++ b/doc/pastposix-functions/gcvt.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0.
 @item
 This function is marked as ``legacy'' in POSIX.  Better use @code{sprintf}
 instead.
--- a/doc/pastposix-functions/getcontext.texi
+++ b/doc/pastposix-functions/getcontext.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/pastposix-functions/makecontext.texi
+++ b/doc/pastposix-functions/makecontext.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/pastposix-functions/setcontext.texi
+++ b/doc/pastposix-functions/setcontext.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 The effects of this call are system and compiler optimization dependent,
 since it restores the contents of register-allocated variables but not
--- a/doc/pastposix-functions/swapcontext.texi
+++ b/doc/pastposix-functions/swapcontext.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/pastposix-functions/wcswcs.texi
+++ b/doc/pastposix-functions/wcswcs.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/_tolower.texi
+++ b/doc/posix-functions/_tolower.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3.
+MacOS X 10.5.
 @end itemize
--- a/doc/posix-functions/_toupper.texi
+++ b/doc/posix-functions/_toupper.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3.
+MacOS X 10.5.
 @end itemize
--- a/doc/posix-functions/acoshl.texi
+++ b/doc/posix-functions/acoshl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/acosl.texi
+++ b/doc/posix-functions/acosl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/alphasort.texi
+++ b/doc/posix-functions/alphasort.texi
@@ -17,7 +17,7 @@
 @itemize
 @item
 The parameters of this function are declared as @code{const void *} on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Interix 3.5.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Interix 3.5.
 @item
 The parameters of this function are declared as @code{void *} on some platforms:
 AIX 5.1.
--- a/doc/posix-functions/asctime_r.texi
+++ b/doc/posix-functions/asctime_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/asinhl.texi
+++ b/doc/posix-functions/asinhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/asinl.texi
+++ b/doc/posix-functions/asinl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/atan2l.texi
+++ b/doc/posix-functions/atan2l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/atanhl.texi
+++ b/doc/posix-functions/atanhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/atanl.texi
+++ b/doc/posix-functions/atanl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/atoll.texi
+++ b/doc/posix-functions/atoll.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, OSF/1 5.1, Interix 3.5.
+AIX 5.1, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/cabsl.texi
+++ b/doc/posix-functions/cabsl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cacoshl.texi
+++ b/doc/posix-functions/cacoshl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cacosl.texi
+++ b/doc/posix-functions/cacosl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cargl.texi
+++ b/doc/posix-functions/cargl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/casinhl.texi
+++ b/doc/posix-functions/casinhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/casinl.texi
+++ b/doc/posix-functions/casinl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/catanhl.texi
+++ b/doc/posix-functions/catanhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/catanl.texi
+++ b/doc/posix-functions/catanl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cbrtl.texi
+++ b/doc/posix-functions/cbrtl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ccoshl.texi
+++ b/doc/posix-functions/ccoshl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ccosl.texi
+++ b/doc/posix-functions/ccosl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ceill.texi
+++ b/doc/posix-functions/ceill.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/cexpl.texi
+++ b/doc/posix-functions/cexpl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cimagl.texi
+++ b/doc/posix-functions/cimagl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/clock_getcpuclockid.texi
+++ b/doc/posix-functions/clock_getcpuclockid.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/clock_getres.texi
+++ b/doc/posix-functions/clock_getres.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/clock_gettime.texi
+++ b/doc/posix-functions/clock_gettime.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/clock_nanosleep.texi
+++ b/doc/posix-functions/clock_nanosleep.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/clock_settime.texi
+++ b/doc/posix-functions/clock_settime.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/clogl.texi
+++ b/doc/posix-functions/clogl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/conjl.texi
+++ b/doc/posix-functions/conjl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/copysignl.texi
+++ b/doc/posix-functions/copysignl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/coshl.texi
+++ b/doc/posix-functions/coshl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cosl.texi
+++ b/doc/posix-functions/cosl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/cpowl.texi
+++ b/doc/posix-functions/cpowl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/cproj.texi
+++ b/doc/posix-functions/cproj.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
 OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
 @item
 The glibc implementation is or was broken.
--- a/doc/posix-functions/cprojf.texi
+++ b/doc/posix-functions/cprojf.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
 OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, Interix 3.5.
 @item
 The glibc implementation is or was broken.
--- a/doc/posix-functions/cprojl.texi
+++ b/doc/posix-functions/cprojl.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 The glibc implementation is or was broken.
 @end itemize
--- a/doc/posix-functions/creall.texi
+++ b/doc/posix-functions/creall.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/crypt.texi
+++ b/doc/posix-functions/crypt.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, Cygwin, mingw.
+FreeBSD 6.0, NetBSD 5.0, Cygwin, mingw.
 @end itemize
--- a/doc/posix-functions/csinhl.texi
+++ b/doc/posix-functions/csinhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/csinl.texi
+++ b/doc/posix-functions/csinl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/csqrtl.texi
+++ b/doc/posix-functions/csqrtl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ctanhl.texi
+++ b/doc/posix-functions/ctanhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ctanl.texi
+++ b/doc/posix-functions/ctanl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ctime_r.texi
+++ b/doc/posix-functions/ctime_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/dbm_clearerr.texi
+++ b/doc/posix-functions/dbm_clearerr.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 2.5.1, Cygwin, mingw, BeOS.
+glibc 2.3.6, HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 2.5.1, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/dbm_error.texi
+++ b/doc/posix-functions/dbm_error.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, HP-UX 11, IRIX 5.3, OSF/1 4.0, Solaris 2.5.1, Cygwin, mingw, BeOS.
+glibc 2.3.6, HP-UX 11.11, IRIX 5.3, OSF/1 4.0, Solaris 2.5.1, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/dprintf.texi
+++ b/doc/posix-functions/dprintf.texi
@@ -10,8 +10,8 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{dprintf-posix}:
--- a/doc/posix-functions/duplocale.texi
+++ b/doc/posix-functions/duplocale.texi
@@ -17,5 +17,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/encrypt.texi
+++ b/doc/posix-functions/encrypt.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, Cygwin, mingw, BeOS.
+NetBSD 5.0, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/environ.texi
+++ b/doc/posix-functions/environ.texi
@@ -11,7 +11,7 @@
 @item
 POSIX does not require this variable to be declared, and it is indeed not
 declared on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Solaris 10.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 11 2010-11.
 @item
 On MacOS X 10, this variable is not declared.  Up to MacOS X 10.4, one can use
 @smallexample
--- a/doc/posix-functions/erfcl.texi
+++ b/doc/posix-functions/erfcl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/erfl.texi
+++ b/doc/posix-functions/erfl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/exp2.texi
+++ b/doc/posix-functions/exp2.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/exp2f.texi
+++ b/doc/posix-functions/exp2f.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/exp2l.texi
+++ b/doc/posix-functions/exp2l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/expl.texi
+++ b/doc/posix-functions/expl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/expm1l.texi
+++ b/doc/posix-functions/expm1l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fabsl.texi
+++ b/doc/posix-functions/fabsl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/faccessat.texi
+++ b/doc/posix-functions/faccessat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 However, the replacement does not always take into account ACLs.  Also,
--- a/doc/posix-functions/fattach.texi
+++ b/doc/posix-functions/fattach.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fchmodat.texi
+++ b/doc/posix-functions/fchmodat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @end itemize
--- a/doc/posix-functions/fchownat.texi
+++ b/doc/posix-functions/fchownat.texi
@@ -17,8 +17,11 @@
 @code{AT_SYMLINK_NOFOLLOW}:
 Linux kernel 2.6.17.
 @item
+This function does not fail for an empty filename on some platforms:
+Linux with glibc < 2.11.
+@item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and
 is not multithread-safe.  Also, the replacement may fail to change
--- a/doc/posix-functions/fcntl.texi
+++ b/doc/posix-functions/fcntl.texi
@@ -11,8 +11,8 @@
 @item
 This function does not support @code{F_DUPFD_CLOEXEC} on some
 platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5,
 BeOS.
 Note that the gnulib replacement code is functional but not atomic.
 
--- a/doc/posix-functions/fdatasync.texi
+++ b/doc/posix-functions/fdatasync.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fdetach.texi
+++ b/doc/posix-functions/fdetach.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fdim.texi
+++ b/doc/posix-functions/fdim.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fdimf.texi
+++ b/doc/posix-functions/fdimf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fdiml.texi
+++ b/doc/posix-functions/fdiml.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fdopendir.texi
+++ b/doc/posix-functions/fdopendir.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and
 is not multithread-safe.  Also, the replacement does not guarantee
--- a/doc/posix-functions/feclearexcept.texi
+++ b/doc/posix-functions/feclearexcept.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
 OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fegetenv.texi
+++ b/doc/posix-functions/fegetenv.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fegetexceptflag.texi
+++ b/doc/posix-functions/fegetexceptflag.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
 Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fegetround.texi
+++ b/doc/posix-functions/fegetround.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
 Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/feholdexcept.texi
+++ b/doc/posix-functions/feholdexcept.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/feraiseexcept.texi
+++ b/doc/posix-functions/feraiseexcept.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fesetenv.texi
+++ b/doc/posix-functions/fesetenv.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
 OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fesetexceptflag.texi
+++ b/doc/posix-functions/fesetexceptflag.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
 Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fesetround.texi
+++ b/doc/posix-functions/fesetround.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
 Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fetestexcept.texi
+++ b/doc/posix-functions/fetestexcept.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
 OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/feupdateenv.texi
+++ b/doc/posix-functions/feupdateenv.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX
 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fexecve.texi
+++ b/doc/posix-functions/fexecve.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fflush.texi
+++ b/doc/posix-functions/fflush.texi
@@ -18,7 +18,7 @@
 @item
 @code{fflush} on an input stream right after @code{ungetc} does not discard
 the @code{ungetc} buffer, on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin 1.5.25-10.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin 1.5.25-10.
 @end itemize
 
 Portability problems not fixed by Gnulib:
@@ -33,5 +33,5 @@
 @item
 @code{fflush} on an input stream right after @code{ungetc} does not discard
 the @code{ungetc} buffer, on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @end itemize
--- a/doc/posix-functions/floorl.texi
+++ b/doc/posix-functions/floorl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/fma.texi
+++ b/doc/posix-functions/fma.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fmaf.texi
+++ b/doc/posix-functions/fmaf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fmal.texi
+++ b/doc/posix-functions/fmal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fmax.texi
+++ b/doc/posix-functions/fmax.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fmaxf.texi
+++ b/doc/posix-functions/fmaxf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fmaxl.texi
+++ b/doc/posix-functions/fmaxl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fmemopen.texi
+++ b/doc/posix-functions/fmemopen.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on many non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fmin.texi
+++ b/doc/posix-functions/fmin.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fminf.texi
+++ b/doc/posix-functions/fminf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fminl.texi
+++ b/doc/posix-functions/fminl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fmodl.texi
+++ b/doc/posix-functions/fmodl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/fpclassify.texi
+++ b/doc/posix-functions/fpclassify.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/fprintf.texi
+++ b/doc/posix-functions/fprintf.texi
@@ -18,12 +18,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -34,7 +34,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -49,14 +49,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{stdio} or @code{fprintf-posix}, together with module @code{sigpipe}:
--- a/doc/posix-functions/freeaddrinfo.texi
+++ b/doc/posix-functions/freeaddrinfo.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/freelocale.texi
+++ b/doc/posix-functions/freelocale.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/frexpl.texi
+++ b/doc/posix-functions/frexpl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/fstatat.texi
+++ b/doc/posix-functions/fstatat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @item
--- a/doc/posix-functions/ftell.texi
+++ b/doc/posix-functions/ftell.texi
@@ -13,7 +13,7 @@
 @item
 This function produces incorrect results after @code{putc} that followed a
 @code{getc} call that reached EOF on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/ftello.texi
+++ b/doc/posix-functions/ftello.texi
@@ -17,7 +17,7 @@
 @item
 This function produces incorrect results after @code{putc} that followed a
 @code{getc} call that reached EOF on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
 @end itemize
--- a/doc/posix-functions/futimens.texi
+++ b/doc/posix-functions/futimens.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 However, the replacement function may end up truncating timestamps to
--- a/doc/posix-functions/gai_strerror.texi
+++ b/doc/posix-functions/gai_strerror.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getaddrinfo.texi
+++ b/doc/posix-functions/getaddrinfo.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getdate.texi
+++ b/doc/posix-functions/getdate.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
 @end itemize
 
 Gnulib provides a module @code{parse-datetime} that contains a function
--- a/doc/posix-functions/getdate_err.texi
+++ b/doc/posix-functions/getdate_err.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/getdelim.texi
+++ b/doc/posix-functions/getdelim.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
 @item
 This function is missing a declaration on some platforms:
 BeOS.
@@ -22,4 +22,7 @@
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function has quadratic running time for long lines on some platforms:
+uClibc 0.9.31.
 @end itemize
--- a/doc/posix-functions/getgrgid_r.texi
+++ b/doc/posix-functions/getgrgid_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getgrnam_r.texi
+++ b/doc/posix-functions/getgrnam_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getline.texi
+++ b/doc/posix-functions/getline.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
 @item
 This function is missing a declaration on some platforms:
 AIX 7.1, BeOS.
@@ -25,4 +25,7 @@
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+This function has quadratic running time for long lines on some platforms:
+uClibc 0.9.31.
 @end itemize
--- a/doc/posix-functions/getlogin_r.texi
+++ b/doc/posix-functions/getlogin_r.texi
@@ -13,7 +13,7 @@
 NetBSD 3.0, mingw.
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getmsg.texi
+++ b/doc/posix-functions/getmsg.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/getnameinfo.texi
+++ b/doc/posix-functions/getnameinfo.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getopt.texi
+++ b/doc/posix-functions/getopt.texi
@@ -27,7 +27,7 @@
 @item
 The function @code{getopt} does not support the @samp{+} flag in the options
 string on some platforms:
-MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10.
+MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11.
 @item
 The function @code{getopt} does not obey the combination of @samp{+}
 and @samp{:} flags in the options string on some platforms:
@@ -40,13 +40,13 @@
 The function @code{getopt} does not support options with optional arguments
 on some platforms:
 MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
-Solaris 10, Cygwin 1.5.x.
+Solaris 11 2010-11, Cygwin 1.5.x.
 @item
 The function @code{getopt_long} is missing on some platforms:
 AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5.
 @item
 The function @code{getopt_long_only} is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, AIX 5.1, HP-UX 11, IRIX 6.5,
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5,
 OSF/1 5.1, Solaris 9, mingw, Interix 3.5.
 @end itemize
 
--- a/doc/posix-functions/getpmsg.texi
+++ b/doc/posix-functions/getpmsg.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/getpwnam_r.texi
+++ b/doc/posix-functions/getpwnam_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/getpwuid_r.texi
+++ b/doc/posix-functions/getpwuid_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/hypotl.texi
+++ b/doc/posix-functions/hypotl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/iconv.texi
+++ b/doc/posix-functions/iconv.texi
@@ -22,7 +22,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
 when GNU libiconv is not installed.
 @item
 This function was not correctly implemented in glibc versions before 2.2.
--- a/doc/posix-functions/iconv_close.texi
+++ b/doc/posix-functions/iconv_close.texi
@@ -16,6 +16,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
 when GNU libiconv is not installed.
 @end itemize
--- a/doc/posix-functions/iconv_open.texi
+++ b/doc/posix-functions/iconv_open.texi
@@ -20,7 +20,7 @@
 @item
 This function recognizes only non-standard aliases for many encodings (not
 the IANA registered encoding names) on many platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10.
+AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{iconv_open-utf}:
@@ -35,12 +35,12 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
+MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, IRIX 5.3, Cygwin, mingw, BeOS,
 when GNU libiconv is not installed.
 @item
 For some encodings A and B, this function cannot convert directly from A to B,
 although an indirect conversion from A through UTF-8 to B is possible.  This
-occurs on some platforms: Solaris 10.  ---  Gnulib provides a higher-level
+occurs on some platforms: Solaris 11 2010-11.  ---  Gnulib provides a higher-level
 facility @code{striconveh} (a wrapper around @code{iconv}) that deals with
 this problem.
 @item
--- a/doc/posix-functions/if_freenameindex.texi
+++ b/doc/posix-functions/if_freenameindex.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x,
+OpenBSD 3.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x,
 mingw, Interix 3.5, BeOS.
 
 @item
--- a/doc/posix-functions/if_indextoname.texi
+++ b/doc/posix-functions/if_indextoname.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/if_nameindex.texi
+++ b/doc/posix-functions/if_nameindex.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/if_nametoindex.texi
+++ b/doc/posix-functions/if_nametoindex.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ilogbl.texi
+++ b/doc/posix-functions/ilogbl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/imaxabs.texi
+++ b/doc/posix-functions/imaxabs.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/imaxdiv.texi
+++ b/doc/posix-functions/imaxdiv.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
+NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/isalnum_l.texi
+++ b/doc/posix-functions/isalnum_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isalpha_l.texi
+++ b/doc/posix-functions/isalpha_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isastream.texi
+++ b/doc/posix-functions/isastream.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isblank_l.texi
+++ b/doc/posix-functions/isblank_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/iscntrl_l.texi
+++ b/doc/posix-functions/iscntrl_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isdigit_l.texi
+++ b/doc/posix-functions/isdigit_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isfinite.texi
+++ b/doc/posix-functions/isfinite.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This macro is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5.
 @item
 This macro incorrectly yields true for some @samp{double} arguments, on some
 platforms:
--- a/doc/posix-functions/isgraph_l.texi
+++ b/doc/posix-functions/isgraph_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isgreater.texi
+++ b/doc/posix-functions/isgreater.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isgreaterequal.texi
+++ b/doc/posix-functions/isgreaterequal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isinf.texi
+++ b/doc/posix-functions/isinf.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This macro is missing on some platforms:
-AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 10.
+AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/isless.texi
+++ b/doc/posix-functions/isless.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/islessequal.texi
+++ b/doc/posix-functions/islessequal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/islessgreater.texi
+++ b/doc/posix-functions/islessgreater.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/islower_l.texi
+++ b/doc/posix-functions/islower_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isnormal.texi
+++ b/doc/posix-functions/isnormal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/isprint_l.texi
+++ b/doc/posix-functions/isprint_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ispunct_l.texi
+++ b/doc/posix-functions/ispunct_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isspace_l.texi
+++ b/doc/posix-functions/isspace_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isunordered.texi
+++ b/doc/posix-functions/isunordered.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5, BeOS.
+MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/isupper_l.texi
+++ b/doc/posix-functions/isupper_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/iswalnum_l.texi
+++ b/doc/posix-functions/iswalnum_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswalpha_l.texi
+++ b/doc/posix-functions/iswalpha_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswblank_l.texi
+++ b/doc/posix-functions/iswblank_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswcntrl_l.texi
+++ b/doc/posix-functions/iswcntrl_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswctype_l.texi
+++ b/doc/posix-functions/iswctype_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswdigit_l.texi
+++ b/doc/posix-functions/iswdigit_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswgraph_l.texi
+++ b/doc/posix-functions/iswgraph_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswlower_l.texi
+++ b/doc/posix-functions/iswlower_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswprint_l.texi
+++ b/doc/posix-functions/iswprint_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswpunct_l.texi
+++ b/doc/posix-functions/iswpunct_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswspace_l.texi
+++ b/doc/posix-functions/iswspace_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswupper_l.texi
+++ b/doc/posix-functions/iswupper_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/iswxdigit_l.texi
+++ b/doc/posix-functions/iswxdigit_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/isxdigit_l.texi
+++ b/doc/posix-functions/isxdigit_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/ldexpl.texi
+++ b/doc/posix-functions/ldexpl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
 @item
 This function has no prototype in @code{<math.h>} on some platforms:
 MacOS X.
--- a/doc/posix-functions/lgammal.texi
+++ b/doc/posix-functions/lgammal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/link.texi
+++ b/doc/posix-functions/link.texi
@@ -14,7 +14,7 @@
 @item
 This function fails to reject trailing slashes on non-directories on
 some platforms:
-FreeBSD 7.2, Solaris 10, Cygwin 1.5.x.
+FreeBSD 7.2, Solaris 11 2010-11, Cygwin 1.5.x.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/linkat.texi
+++ b/doc/posix-functions/linkat.texi
@@ -10,13 +10,13 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @item
 This function fails to reject trailing slashes on non-directories on
 some platforms:
-AIX 7.1.
+AIX 7.1, Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/llabs.texi
+++ b/doc/posix-functions/llabs.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, OSF/1 5.1, Interix 3.5.
+HP-UX 11.23, OSF/1 5.1, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/lldiv.texi
+++ b/doc/posix-functions/lldiv.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-OpenBSD 3.8, HP-UX 11, OSF/1 5.1, Interix 3.5.
+OpenBSD 3.8, HP-UX 11.23, OSF/1 5.1, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/llrintl.texi
+++ b/doc/posix-functions/llrintl.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
 OSF/1 4.0, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/llroundl.texi
+++ b/doc/posix-functions/llroundl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/log10l.texi
+++ b/doc/posix-functions/log10l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/log1pl.texi
+++ b/doc/posix-functions/log1pl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/log2.texi
+++ b/doc/posix-functions/log2.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5,
 Solaris 9, Interix 3.5.
 @item
 This function is only provided as a macro on some platforms:
--- a/doc/posix-functions/log2l.texi
+++ b/doc/posix-functions/log2l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/logbl.texi
+++ b/doc/posix-functions/logbl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/logl.texi
+++ b/doc/posix-functions/logl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/lrintl.texi
+++ b/doc/posix-functions/lrintl.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
 OSF/1 4.0, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/lroundl.texi
+++ b/doc/posix-functions/lroundl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mbrlen.texi
+++ b/doc/posix-functions/mbrlen.texi
@@ -19,7 +19,7 @@
 This function returns the total number of bytes that make up the multibyte
 character, not the number of bytes that were needed to complete the multibyte
 character, on some platforms:
-HP-UX 11.11, Solaris 10.
+HP-UX 11.11, Solaris 11 2010-11.
 @item
 This function may not return 0 when parsing the NUL character on some platforms:
 Solaris 9.
--- a/doc/posix-functions/mbrtowc.texi
+++ b/doc/posix-functions/mbrtowc.texi
@@ -27,7 +27,7 @@
 This function returns the total number of bytes that make up the multibyte
 character, not the number of bytes that were needed to complete the multibyte
 character, on some platforms:
-HP-UX 11.11, Solaris 10.
+HP-UX 11.11, Solaris 11 2010-11.
 @item
 This function may not return 0 when parsing the NUL character on some platforms:
 Solaris 9.
--- a/doc/posix-functions/mbsnrtowcs.texi
+++ b/doc/posix-functions/mbsnrtowcs.texi
@@ -10,8 +10,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/mbsrtowcs.texi
+++ b/doc/posix-functions/mbsrtowcs.texi
@@ -13,7 +13,7 @@
 HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
 @item
 This function does not work on some platforms:
-HP-UX 11, Solaris 10.
+HP-UX 11, Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/mkdirat.texi
+++ b/doc/posix-functions/mkdirat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @end itemize
--- a/doc/posix-functions/mkfifoat.texi
+++ b/doc/posix-functions/mkfifoat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
--- a/doc/posix-functions/mknodat.texi
+++ b/doc/posix-functions/mknodat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
--- a/doc/posix-functions/modff.texi
+++ b/doc/posix-functions/modff.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, HP-UX 11.
+MacOS X 10.5, AIX 5.1, HP-UX 11.
 @end itemize
--- a/doc/posix-functions/modfl.texi
+++ b/doc/posix-functions/modfl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/mq_close.texi
+++ b/doc/posix-functions/mq_close.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_getattr.texi
+++ b/doc/posix-functions/mq_getattr.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_notify.texi
+++ b/doc/posix-functions/mq_notify.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_open.texi
+++ b/doc/posix-functions/mq_open.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_receive.texi
+++ b/doc/posix-functions/mq_receive.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_send.texi
+++ b/doc/posix-functions/mq_send.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_setattr.texi
+++ b/doc/posix-functions/mq_setattr.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_timedreceive.texi
+++ b/doc/posix-functions/mq_timedreceive.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_timedsend.texi
+++ b/doc/posix-functions/mq_timedsend.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/mq_unlink.texi
+++ b/doc/posix-functions/mq_unlink.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris
 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/nan.texi
+++ b/doc/posix-functions/nan.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/nanf.texi
+++ b/doc/posix-functions/nanf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/nearbyint.texi
+++ b/doc/posix-functions/nearbyint.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/nearbyintf.texi
+++ b/doc/posix-functions/nearbyintf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/nearbyintl.texi
+++ b/doc/posix-functions/nearbyintl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/newlocale.texi
+++ b/doc/posix-functions/newlocale.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/nextafterf.texi
+++ b/doc/posix-functions/nextafterf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, AIX 5.1, IRIX 6.5, Solaris 9.
+MacOS X 10.5, AIX 5.1, IRIX 6.5, Solaris 9.
 @end itemize
--- a/doc/posix-functions/nextafterl.texi
+++ b/doc/posix-functions/nextafterl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/nexttoward.texi
+++ b/doc/posix-functions/nexttoward.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/nexttowardf.texi
+++ b/doc/posix-functions/nexttowardf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/nexttowardl.texi
+++ b/doc/posix-functions/nexttowardl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/nl_langinfo.texi
+++ b/doc/posix-functions/nl_langinfo.texi
@@ -32,4 +32,9 @@
 
 @item
 On Cygwin 1.7.0, only the charset portion of a locale designation is honored.
+
+@item
+On NetBSD 5.0, in some locales, @code{nl_langinfo(CRNCYSTR)} returns the
+empty string, although the local currency symbol, as returned by
+@code{localeconv()->currency_symbol}, is non-empty.
 @end itemize
--- a/doc/posix-functions/nl_langinfo_l.texi
+++ b/doc/posix-functions/nl_langinfo_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/open_memstream.texi
+++ b/doc/posix-functions/open_memstream.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/open_wmemstream.texi
+++ b/doc/posix-functions/open_wmemstream.texi
@@ -14,8 +14,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
+5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/openat.texi
+++ b/doc/posix-functions/openat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @item
--- a/doc/posix-functions/optarg.texi
+++ b/doc/posix-functions/optarg.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, IRIX 6.5, OSF/1 5.1.
+MacOS X 10.5, IRIX 6.5, OSF/1 5.1.
 @end itemize
--- a/doc/posix-functions/optopt.texi
+++ b/doc/posix-functions/optopt.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, IRIX 6.5, OSF/1 5.1.
+MacOS X 10.5, IRIX 6.5, OSF/1 5.1.
 @end itemize
--- a/doc/posix-functions/pipe.texi
+++ b/doc/posix-functions/pipe.texi
@@ -4,15 +4,15 @@
 
 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html}
 
-Gnulib module: ---
+Gnulib module: pipe-posix
 
 Portability problems fixed by Gnulib:
 @itemize
-@end itemize
-
-Portability problems not fixed by Gnulib:
-@itemize
 @item
 This function is missing on some platforms:
 mingw.
 @end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@end itemize
--- a/doc/posix-functions/posix_fadvise.texi
+++ b/doc/posix-functions/posix_fadvise.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23,
 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_fallocate.texi
+++ b/doc/posix-functions/posix_fallocate.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_mem_offset.texi
+++ b/doc/posix-functions/posix_mem_offset.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_memalign.texi
+++ b/doc/posix-functions/posix_memalign.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_openpt.texi
+++ b/doc/posix-functions/posix_openpt.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
 Solaris 9, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_spawn.texi
+++ b/doc/posix-functions/posix_spawn.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 When this function fails, it causes the stdio buffer contents to be output
 twice on some platforms:
--- a/doc/posix-functions/posix_spawn_file_actions_addclose.texi
+++ b/doc/posix-functions/posix_spawn_file_actions_addclose.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawn_file_actions_adddup2.texi
+++ b/doc/posix-functions/posix_spawn_file_actions_adddup2.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawn_file_actions_addopen.texi
+++ b/doc/posix-functions/posix_spawn_file_actions_addopen.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawn_file_actions_destroy.texi
+++ b/doc/posix-functions/posix_spawn_file_actions_destroy.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawn_file_actions_init.texi
+++ b/doc/posix-functions/posix_spawn_file_actions_init.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_destroy.texi
+++ b/doc/posix-functions/posix_spawnattr_destroy.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_getflags.texi
+++ b/doc/posix-functions/posix_spawnattr_getflags.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_getpgroup.texi
+++ b/doc/posix-functions/posix_spawnattr_getpgroup.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_getschedparam.texi
+++ b/doc/posix-functions/posix_spawnattr_getschedparam.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_getschedpolicy.texi
+++ b/doc/posix-functions/posix_spawnattr_getschedpolicy.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_getsigdefault.texi
+++ b/doc/posix-functions/posix_spawnattr_getsigdefault.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_getsigmask.texi
+++ b/doc/posix-functions/posix_spawnattr_getsigmask.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_init.texi
+++ b/doc/posix-functions/posix_spawnattr_init.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_setflags.texi
+++ b/doc/posix-functions/posix_spawnattr_setflags.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_setpgroup.texi
+++ b/doc/posix-functions/posix_spawnattr_setpgroup.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_setschedparam.texi
+++ b/doc/posix-functions/posix_spawnattr_setschedparam.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_setschedpolicy.texi
+++ b/doc/posix-functions/posix_spawnattr_setschedpolicy.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_setsigdefault.texi
+++ b/doc/posix-functions/posix_spawnattr_setsigdefault.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnattr_setsigmask.texi
+++ b/doc/posix-functions/posix_spawnattr_setsigmask.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/posix_spawnp.texi
+++ b/doc/posix-functions/posix_spawnp.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 When this function fails, it causes the stdio buffer contents to be output
 twice on some platforms:
--- a/doc/posix-functions/posix_trace_attr_destroy.texi
+++ b/doc/posix-functions/posix_trace_attr_destroy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getclockres.texi
+++ b/doc/posix-functions/posix_trace_attr_getclockres.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getcreatetime.texi
+++ b/doc/posix-functions/posix_trace_attr_getcreatetime.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getgenversion.texi
+++ b/doc/posix-functions/posix_trace_attr_getgenversion.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getinherited.texi
+++ b/doc/posix-functions/posix_trace_attr_getinherited.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getlogfullpolicy.texi
+++ b/doc/posix-functions/posix_trace_attr_getlogfullpolicy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getlogsize.texi
+++ b/doc/posix-functions/posix_trace_attr_getlogsize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getmaxdatasize.texi
+++ b/doc/posix-functions/posix_trace_attr_getmaxdatasize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getmaxsystemeventsize.texi
+++ b/doc/posix-functions/posix_trace_attr_getmaxsystemeventsize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getmaxusereventsize.texi
+++ b/doc/posix-functions/posix_trace_attr_getmaxusereventsize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getname.texi
+++ b/doc/posix-functions/posix_trace_attr_getname.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getstreamfullpolicy.texi
+++ b/doc/posix-functions/posix_trace_attr_getstreamfullpolicy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_getstreamsize.texi
+++ b/doc/posix-functions/posix_trace_attr_getstreamsize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_init.texi
+++ b/doc/posix-functions/posix_trace_attr_init.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setinherited.texi
+++ b/doc/posix-functions/posix_trace_attr_setinherited.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setlogfullpolicy.texi
+++ b/doc/posix-functions/posix_trace_attr_setlogfullpolicy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setlogsize.texi
+++ b/doc/posix-functions/posix_trace_attr_setlogsize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setmaxdatasize.texi
+++ b/doc/posix-functions/posix_trace_attr_setmaxdatasize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setname.texi
+++ b/doc/posix-functions/posix_trace_attr_setname.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setstreamfullpolicy.texi
+++ b/doc/posix-functions/posix_trace_attr_setstreamfullpolicy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_attr_setstreamsize.texi
+++ b/doc/posix-functions/posix_trace_attr_setstreamsize.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_clear.texi
+++ b/doc/posix-functions/posix_trace_clear.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_close.texi
+++ b/doc/posix-functions/posix_trace_close.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_create.texi
+++ b/doc/posix-functions/posix_trace_create.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_create_withlog.texi
+++ b/doc/posix-functions/posix_trace_create_withlog.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_event.texi
+++ b/doc/posix-functions/posix_trace_event.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventid_equal.texi
+++ b/doc/posix-functions/posix_trace_eventid_equal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventid_get_name.texi
+++ b/doc/posix-functions/posix_trace_eventid_get_name.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventid_open.texi
+++ b/doc/posix-functions/posix_trace_eventid_open.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventset_add.texi
+++ b/doc/posix-functions/posix_trace_eventset_add.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventset_del.texi
+++ b/doc/posix-functions/posix_trace_eventset_del.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventset_empty.texi
+++ b/doc/posix-functions/posix_trace_eventset_empty.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventset_fill.texi
+++ b/doc/posix-functions/posix_trace_eventset_fill.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventset_ismember.texi
+++ b/doc/posix-functions/posix_trace_eventset_ismember.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventtypelist_getnext_id.texi
+++ b/doc/posix-functions/posix_trace_eventtypelist_getnext_id.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_eventtypelist_rewind.texi
+++ b/doc/posix-functions/posix_trace_eventtypelist_rewind.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_flush.texi
+++ b/doc/posix-functions/posix_trace_flush.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_get_attr.texi
+++ b/doc/posix-functions/posix_trace_get_attr.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_get_filter.texi
+++ b/doc/posix-functions/posix_trace_get_filter.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_get_status.texi
+++ b/doc/posix-functions/posix_trace_get_status.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_getnext_event.texi
+++ b/doc/posix-functions/posix_trace_getnext_event.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_open.texi
+++ b/doc/posix-functions/posix_trace_open.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_rewind.texi
+++ b/doc/posix-functions/posix_trace_rewind.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_set_filter.texi
+++ b/doc/posix-functions/posix_trace_set_filter.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_shutdown.texi
+++ b/doc/posix-functions/posix_trace_shutdown.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_start.texi
+++ b/doc/posix-functions/posix_trace_start.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_stop.texi
+++ b/doc/posix-functions/posix_trace_stop.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_timedgetnext_event.texi
+++ b/doc/posix-functions/posix_trace_timedgetnext_event.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_trid_eventid_open.texi
+++ b/doc/posix-functions/posix_trace_trid_eventid_open.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_trace_trygetnext_event.texi
+++ b/doc/posix-functions/posix_trace_trygetnext_event.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_typed_mem_get_info.texi
+++ b/doc/posix-functions/posix_typed_mem_get_info.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/posix_typed_mem_open.texi
+++ b/doc/posix-functions/posix_typed_mem_open.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/powl.texi
+++ b/doc/posix-functions/powl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/printf.texi
+++ b/doc/posix-functions/printf.texi
@@ -18,12 +18,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -34,7 +34,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -49,14 +49,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{stdio} or @code{printf-posix}, together with module @code{sigpipe}:
--- a/doc/posix-functions/pselect.texi
+++ b/doc/posix-functions/pselect.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, Interix 3.5, BeOS.
+OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/psiginfo.texi
+++ b/doc/posix-functions/psiginfo.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_attr_init.texi
+++ b/doc/posix-functions/pthread_attr_init.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrier_destroy.texi
+++ b/doc/posix-functions/pthread_barrier_destroy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrier_init.texi
+++ b/doc/posix-functions/pthread_barrier_init.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrier_wait.texi
+++ b/doc/posix-functions/pthread_barrier_wait.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrierattr_destroy.texi
+++ b/doc/posix-functions/pthread_barrierattr_destroy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrierattr_getpshared.texi
+++ b/doc/posix-functions/pthread_barrierattr_getpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrierattr_init.texi
+++ b/doc/posix-functions/pthread_barrierattr_init.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_barrierattr_setpshared.texi
+++ b/doc/posix-functions/pthread_barrierattr_setpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_cleanup_pop.texi
+++ b/doc/posix-functions/pthread_cleanup_pop.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, NetBSD 3.0, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_cleanup_push.texi
+++ b/doc/posix-functions/pthread_cleanup_push.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, NetBSD 3.0, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_condattr_getclock.texi
+++ b/doc/posix-functions/pthread_condattr_getclock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_condattr_getpshared.texi
+++ b/doc/posix-functions/pthread_condattr_getpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_condattr_setclock.texi
+++ b/doc/posix-functions/pthread_condattr_setclock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_condattr_setpshared.texi
+++ b/doc/posix-functions/pthread_condattr_setpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_create.texi
+++ b/doc/posix-functions/pthread_create.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
+HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, BeOS.
 @item
 On Linux/glibc platforms before the advent of NPTL, signals could only be
 sent to one particular thread.  In POSIX, signals are sent to the entire
--- a/doc/posix-functions/pthread_getconcurrency.texi
+++ b/doc/posix-functions/pthread_getconcurrency.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, HP-UX 11, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, HP-UX 11, Solaris 2.6, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_getcpuclockid.texi
+++ b/doc/posix-functions/pthread_getcpuclockid.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutex_consistent.texi
+++ b/doc/posix-functions/pthread_mutex_consistent.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutex_getprioceiling.texi
+++ b/doc/posix-functions/pthread_mutex_getprioceiling.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutex_setprioceiling.texi
+++ b/doc/posix-functions/pthread_mutex_setprioceiling.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutex_timedlock.texi
+++ b/doc/posix-functions/pthread_mutex_timedlock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_getprioceiling.texi
+++ b/doc/posix-functions/pthread_mutexattr_getprioceiling.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_getprotocol.texi
+++ b/doc/posix-functions/pthread_mutexattr_getprotocol.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_getpshared.texi
+++ b/doc/posix-functions/pthread_mutexattr_getpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_getrobust.texi
+++ b/doc/posix-functions/pthread_mutexattr_getrobust.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_setprioceiling.texi
+++ b/doc/posix-functions/pthread_mutexattr_setprioceiling.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_setprotocol.texi
+++ b/doc/posix-functions/pthread_mutexattr_setprotocol.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_setpshared.texi
+++ b/doc/posix-functions/pthread_mutexattr_setpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_mutexattr_setrobust.texi
+++ b/doc/posix-functions/pthread_mutexattr_setrobust.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_rwlock_timedrdlock.texi
+++ b/doc/posix-functions/pthread_rwlock_timedrdlock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_rwlock_timedwrlock.texi
+++ b/doc/posix-functions/pthread_rwlock_timedwrlock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_rwlockattr_getpshared.texi
+++ b/doc/posix-functions/pthread_rwlockattr_getpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_rwlockattr_setpshared.texi
+++ b/doc/posix-functions/pthread_rwlockattr_setpshared.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_setconcurrency.texi
+++ b/doc/posix-functions/pthread_setconcurrency.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, HP-UX 11, Solaris 2.6, mingw, BeOS.
+NetBSD 5.0, HP-UX 11, Solaris 2.6, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_setschedprio.texi
+++ b/doc/posix-functions/pthread_setschedprio.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_spin_destroy.texi
+++ b/doc/posix-functions/pthread_spin_destroy.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_spin_init.texi
+++ b/doc/posix-functions/pthread_spin_init.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_spin_lock.texi
+++ b/doc/posix-functions/pthread_spin_lock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_spin_trylock.texi
+++ b/doc/posix-functions/pthread_spin_trylock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/pthread_spin_unlock.texi
+++ b/doc/posix-functions/pthread_spin_unlock.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/putmsg.texi
+++ b/doc/posix-functions/putmsg.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/putpmsg.texi
+++ b/doc/posix-functions/putpmsg.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/readdir_r.texi
+++ b/doc/posix-functions/readdir_r.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/readlinkat.texi
+++ b/doc/posix-functions/readlinkat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @end itemize
--- a/doc/posix-functions/realpath.texi
+++ b/doc/posix-functions/realpath.texi
@@ -14,11 +14,11 @@
 @item
 This function does not allow for a NULL @samp{resolved} parameter on
 some platforms:
-Solaris.
+Solaris 10.
 @item
 This function does not always return an absolute path on some
 platforms:
-Solaris.
+Solaris 10.
 @item
 This function fails to detect trailing slashes on non-directories on
 some platforms:
--- a/doc/posix-functions/remainderl.texi
+++ b/doc/posix-functions/remainderl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/remquo.texi
+++ b/doc/posix-functions/remquo.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/remquof.texi
+++ b/doc/posix-functions/remquof.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/remquol.texi
+++ b/doc/posix-functions/remquol.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/rename.texi
+++ b/doc/posix-functions/rename.texi
@@ -15,7 +15,7 @@
 @item
 This function does not reject trailing slashes on the destination for
 non-directories on some platforms, as in @code{rename("file","new/")}:
-AIX 7.1, Solaris 10, Cygwin 1.5.x, mingw.
+AIX 7.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not reject trailing slashes on symlinks to
 non-directories on some platforms, as in
@@ -60,6 +60,11 @@
 @code{ENOTDIR} if either argument is a symlink with a trailing slash:
 glibc, OpenBSD, Cygwin 1.7.
 @item
+After renaming a non-empty directory over an existing empty directory,
+the old directory name is still visible through the @code{stat} function
+for 30 seconds after the rename, on NFS file systems, on some platforms:
+Linux 2.6.18.
+@item
 This function will not rename a source that is currently opened
 by any process:
 mingw.
--- a/doc/posix-functions/renameat.texi
+++ b/doc/posix-functions/renameat.texi
@@ -11,14 +11,18 @@
 @item
 This function does not reject trailing slashes on non-directories on
 some platforms, as in @code{renameat(fd,"file",fd,"new/")}:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function ignores trailing slashes on symlinks on some platforms,
 such that @code{renameat(fd,"link/",fd,"new")} corrupts @file{link}:
 Solaris 9.
 @item
+This function is declared in @code{<unistd.h>} instead of @code{<stdio.h>}
+on some platforms:
+Solaris 11 2010-11.
+@item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
@@ -35,6 +39,11 @@
 @code{ENOTDIR} if either argument is a symlink with a trailing slash:
 glibc, OpenBSD, Cygwin 1.7.
 @item
+After renaming a non-empty directory over an existing empty directory,
+the old directory name is still visible through the @code{stat} function
+for 30 seconds after the rename, on NFS file systems, on some platforms:
+Linux 2.6.18.
+@item
 This function will not rename a source that is currently opened
 by any process:
 mingw.
--- a/doc/posix-functions/rintl.texi
+++ b/doc/posix-functions/rintl.texi
@@ -14,6 +14,6 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5,
 Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/roundl.texi
+++ b/doc/posix-functions/roundl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/scalbln.texi
+++ b/doc/posix-functions/scalbln.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/scalblnf.texi
+++ b/doc/posix-functions/scalblnf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/scalblnl.texi
+++ b/doc/posix-functions/scalblnl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/scalbnl.texi
+++ b/doc/posix-functions/scalbnl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5.
 @end itemize
--- a/doc/posix-functions/scandir.texi
+++ b/doc/posix-functions/scandir.texi
@@ -17,7 +17,7 @@
 @itemize
 @item
 The fourth parameter of this function is declared as @code{int (*) (const void *, const void *)} on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Interix 3.5.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Interix 3.5.
 @item
 The fourth parameter of this function is declared as @code{int (*) (void *, void *)} on some platforms:
 AIX 5.1.
--- a/doc/posix-functions/sched_getparam.texi
+++ b/doc/posix-functions/sched_getparam.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sched_getscheduler.texi
+++ b/doc/posix-functions/sched_getscheduler.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sched_rr_get_interval.texi
+++ b/doc/posix-functions/sched_rr_get_interval.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sched_setparam.texi
+++ b/doc/posix-functions/sched_setparam.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sched_setscheduler.texi
+++ b/doc/posix-functions/sched_setscheduler.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sem_timedwait.texi
+++ b/doc/posix-functions/sem_timedwait.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, BeOS.
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/setegid.texi
+++ b/doc/posix-functions/setegid.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, mingw, BeOS.
+HP-UX 11.23, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/setenv.texi
+++ b/doc/posix-functions/setenv.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 9, mingw, BeOS.
+AIX 4.3.2, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw, BeOS.
 @item
 On some platforms, this function does not fail with @samp{EINVAL} when
 passed an empty string or a string containing @samp{=}:
--- a/doc/posix-functions/seteuid.texi
+++ b/doc/posix-functions/seteuid.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, mingw, BeOS.
+HP-UX 11.23, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/setkey.texi
+++ b/doc/posix-functions/setkey.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, Cygwin, mingw, BeOS.
+NetBSD 5.0, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-functions/shm_open.texi
+++ b/doc/posix-functions/shm_open.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/shm_unlink.texi
+++ b/doc/posix-functions/shm_unlink.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/signbit.texi
+++ b/doc/posix-functions/signbit.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 10, Interix 3.5.
+MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/signgam.texi
+++ b/doc/posix-functions/signgam.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This variable is missing on some platforms:
-MacOS X 10.3, AIX 5.1, IRIX 6.5, OSF/1 5.1, mingw.
+MacOS X 10.5, AIX 5.1, IRIX 6.5, OSF/1 5.1, mingw.
 @end itemize
--- a/doc/posix-functions/sigqueue.texi
+++ b/doc/posix-functions/sigqueue.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sigtimedwait.texi
+++ b/doc/posix-functions/sigtimedwait.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 Linux implements the meaning of NULL timeout by doing what @code{sigwaitinfo}
 does; other platforms may not do the same.
--- a/doc/posix-functions/sigwait.texi
+++ b/doc/posix-functions/sigwait.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function has an incompatible declaration on some platforms:
-Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/sigwaitinfo.texi
+++ b/doc/posix-functions/sigwaitinfo.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, OpenBSD 3.8, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sinhl.texi
+++ b/doc/posix-functions/sinhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sinl.texi
+++ b/doc/posix-functions/sinl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/snprintf.texi
+++ b/doc/posix-functions/snprintf.texi
@@ -29,12 +29,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -45,7 +45,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -60,14 +60,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @item
 This function does not truncate the result as specified in C99 on some platforms:
 mingw.
--- a/doc/posix-functions/sockatmark.texi
+++ b/doc/posix-functions/sockatmark.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/sprintf.texi
+++ b/doc/posix-functions/sprintf.texi
@@ -18,12 +18,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -34,7 +34,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -49,14 +49,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/sqrtl.texi
+++ b/doc/posix-functions/sqrtl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/stpcpy.texi
+++ b/doc/posix-functions/stpcpy.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1,
 Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
 @end itemize
 
--- a/doc/posix-functions/stpncpy.texi
+++ b/doc/posix-functions/stpncpy.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @item
 This function has an incompatible return value on some platforms:
--- a/doc/posix-functions/strcasecmp_l.texi
+++ b/doc/posix-functions/strcasecmp_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/strcoll_l.texi
+++ b/doc/posix-functions/strcoll_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/strerror.texi
+++ b/doc/posix-functions/strerror.texi
@@ -15,7 +15,9 @@
 @item
 This function fails to return a string for out-of-range integers on
 some platforms:
-Solaris 8.
+HP-UX 11, IRIX 6.5, Solaris 8.
+(This is not a POSIX violation, but can still cause bugs because most programs
+call @code{strerror} without setting and testing @code{errno}.)
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/strerror_l.texi
+++ b/doc/posix-functions/strerror_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/strerror_r.texi
+++ b/doc/posix-functions/strerror_r.texi
@@ -4,17 +4,13 @@
 
 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/strerror_r.html}
 
-Gnulib module: ---
+Gnulib module: strerror_r-posix
 
 Portability problems fixed by Gnulib:
 @itemize
-@end itemize
-
-Portability problems not fixed by Gnulib:
-@itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, HP-UX 11, IRIX 6.5, Solaris 9, mingw.
+NetBSD 3.0, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw.
 @item
 glibc has an incompatible version of this function.  The POSIX compliant code
 @smallexample
@@ -24,4 +20,35 @@
 @smallexample
 char *s = strerror_r (err, buf, buflen);
 @end smallexample
+@item
+This function is sometimes not declared in @code{<string.h>} on some platforms:
+glibc 2.8, OSF/1 5.1.
+@item
+The third argument is of type @code{int} instead of @code{size_t} on some
+platforms:
+AIX 5.1, OSF/1 5.1.
+@item
+When this function fails, it returns -1 and sets @code{errno}, instead of
+returning the error number, on some platforms:
+glibc 2.8 with @code{-D_POSIX_C_SOURCE=200112L}, AIX 6.1, OSF/1 5.1.
+@item
+This function does not support the error values that are specified by POSIX
+but not defined by the system, on some platforms:
+OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x.
+@item
+This function always fails when the third argument is less than 80 on some
+platforms:
+HP-UX 11.31.
+@item
+When the buffer is too small, this function does not fail, but instead
+truncates the result and returns 0 on some platforms:
+OSF/1 5.1.
 @end itemize
+
+Portability problems not fixed by Gnulib:
+@itemize
+@item
+When the buffer is too small, this function does not fail, but instead
+truncates the result and returns 0 on some platforms:
+AIX 6.1.
+@end itemize
--- a/doc/posix-functions/strfmon_l.texi
+++ b/doc/posix-functions/strfmon_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/strftime_l.texi
+++ b/doc/posix-functions/strftime_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/strncasecmp_l.texi
+++ b/doc/posix-functions/strncasecmp_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/strndup.texi
+++ b/doc/posix-functions/strndup.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5, BeOS.
 @item
 This function does not NUL-terminate the result on some platforms:
 AIX 5.1.
--- a/doc/posix-functions/strnlen.texi
+++ b/doc/posix-functions/strnlen.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
 @item
 This function is buggy on some platforms:
 AIX 4.3.
--- a/doc/posix-functions/strstr.texi
+++ b/doc/posix-functions/strstr.texi
@@ -23,8 +23,8 @@
 @item
 This function has quadratic instead of linear worst-case complexity on some
 platforms:
-glibc 2.8, MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, AIX
-5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+glibc 2.8, MacOS X 10.5, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, AIX
+5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/strtod.texi
+++ b/doc/posix-functions/strtod.texi
@@ -31,7 +31,7 @@
 @item
 This function returns the wrong end pointer for @samp{-0x} on some
 platforms:
-glibc 2.4, MacOS X 10.3, FreeBSD 6.2, AIX 7.1, Cygwin < 1.5.25-11.
+glibc 2.4, MacOS X 10.5, FreeBSD 6.2, AIX 7.1, Cygwin < 1.5.25-11.
 
 @item
 This function returns +0.0 (not -0.0) for @samp{-0} on some platforms:
@@ -43,7 +43,7 @@
 
 @item
 This function fails to parse @samp{NaN()} on some platforms:
-glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, OpenBSD 4.0, AIX 7.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin < 1.5.25-11, mingw.
+glibc-2.3.6, MacOS X 10.5, FreeBSD 6.2, OpenBSD 4.0, AIX 7.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin < 1.5.25-11, mingw.
 
 @item
 This function fails to parse @samp{NaN(@var{n-char-sequence})} on some
@@ -58,8 +58,8 @@
 @item
 This function fails to parse C99 hexadecimal floating point on some
 platforms:
-NetBSD 3.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1,
-Solaris 10, mingw.
+NetBSD 5.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1,
+Solaris 11 2010-11, mingw.
 
 @item
 This function returns the wrong end pointer for @samp{0x1p} on some
@@ -82,7 +82,7 @@
 @item
 This function fails to correctly parse very long strings on some
 platforms:
-MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, Cygwin, mingw.
+MacOS X 10.5, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, Cygwin, mingw.
 
 @item
 The replacement function does not always return correctly rounded results.
--- a/doc/posix-functions/strtoll.texi
+++ b/doc/posix-functions/strtoll.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, OSF/1 5.1, Interix 3.5.
+HP-UX 11.11, OSF/1 5.1, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/strtoull.texi
+++ b/doc/posix-functions/strtoull.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, OSF/1 5.1, Interix 3.5.
+HP-UX 11.11, OSF/1 5.1, Interix 3.5.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/strxfrm_l.texi
+++ b/doc/posix-functions/strxfrm_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/symlinkat.texi
+++ b/doc/posix-functions/symlinkat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @item
--- a/doc/posix-functions/tanhl.texi
+++ b/doc/posix-functions/tanhl.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/tanl.texi
+++ b/doc/posix-functions/tanl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function is not declared on some platforms:
 MacOS X 10.3.
--- a/doc/posix-functions/tgamma.texi
+++ b/doc/posix-functions/tgamma.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
+NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/tgammaf.texi
+++ b/doc/posix-functions/tgammaf.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/tgammal.texi
+++ b/doc/posix-functions/tgammal.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/timer_create.texi
+++ b/doc/posix-functions/timer_create.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/timer_delete.texi
+++ b/doc/posix-functions/timer_delete.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/timer_getoverrun.texi
+++ b/doc/posix-functions/timer_getoverrun.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/timer_gettime.texi
+++ b/doc/posix-functions/timer_gettime.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, IRIX 5.3, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/timer_settime.texi
+++ b/doc/posix-functions/timer_settime.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.4, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/tolower_l.texi
+++ b/doc/posix-functions/tolower_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/toupper_l.texi
+++ b/doc/posix-functions/toupper_l.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/towctrans_l.texi
+++ b/doc/posix-functions/towctrans_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/towlower_l.texi
+++ b/doc/posix-functions/towlower_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/towupper_l.texi
+++ b/doc/posix-functions/towupper_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/truncl.texi
+++ b/doc/posix-functions/truncl.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
 @item
 This function crashes on some platforms:
 OSF/1 4.0.
--- a/doc/posix-functions/ttyname_r.texi
+++ b/doc/posix-functions/ttyname_r.texi
@@ -13,11 +13,11 @@
 NetBSD 3.0, mingw, BeOS.
 @item
 This function has an incompatible declaration on some platforms:
-MacOS X 10.4, Solaris 10 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
+MacOS X 10.4, Solaris 11 2010-11 (when @code{_POSIX_PTHREAD_SEMANTICS} is not defined).
 @item
 This function refuses to do anything when the output buffer is less than 128
 bytes large, on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/unlinkat.texi
+++ b/doc/posix-functions/unlinkat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 But the replacement function is not safe to be used in libraries and is not multithread-safe.
 @item
--- a/doc/posix-functions/unsetenv.texi
+++ b/doc/posix-functions/unsetenv.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw, BeOS.
+AIX 5.1, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw, BeOS.
 @item
 This function has the return type @samp{void} instead of @samp{int} on some
 platforms:
@@ -22,7 +22,7 @@
 @item
 This function removes only the first value association for the given
 environment variable, not all of them, on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/uselocale.texi
+++ b/doc/posix-functions/uselocale.texi
@@ -14,5 +14,5 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-functions/utimensat.texi
+++ b/doc/posix-functions/utimensat.texi
@@ -10,7 +10,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw,
 Interix 3.5, BeOS.
 However, the replacement function may end up truncating timestamps to
--- a/doc/posix-functions/vdprintf.texi
+++ b/doc/posix-functions/vdprintf.texi
@@ -10,8 +10,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{vdprintf-posix}:
--- a/doc/posix-functions/vfprintf.texi
+++ b/doc/posix-functions/vfprintf.texi
@@ -18,12 +18,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -34,7 +34,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -49,14 +49,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{stdio} or @code{vfprintf-posix}, together with module @code{sigpipe}:
--- a/doc/posix-functions/vfwscanf.texi
+++ b/doc/posix-functions/vfwscanf.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
 Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/vprintf.texi
+++ b/doc/posix-functions/vprintf.texi
@@ -18,12 +18,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -34,7 +34,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -49,14 +49,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @end itemize
 
 Portability problems fixed by Gnulib module @code{stdio} or @code{vprintf-posix}, together with module @code{sigpipe}:
--- a/doc/posix-functions/vsnprintf.texi
+++ b/doc/posix-functions/vsnprintf.texi
@@ -29,12 +29,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -45,7 +45,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -60,14 +60,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @item
 This function does not truncate the result as specified in C99 on some platforms:
 mingw.
--- a/doc/posix-functions/vsprintf.texi
+++ b/doc/posix-functions/vsprintf.texi
@@ -18,12 +18,12 @@
 @item
 printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
 incorrect result on some platforms:
-AIX 5.2, OSF/1 5.1, Solaris 10, mingw.
+AIX 5.2, OSF/1 5.1, Solaris 11 2010-11, mingw.
 @item
 This function does not support the @samp{a} and @samp{A} directives on some
 platforms:
-glibc-2.3.6, MacOS X 10.3, NetBSD 3.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
+glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, BeOS.
 @item
 This function does not support the @samp{F} directive on some platforms:
 NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9,
@@ -34,7 +34,7 @@
 @item
 This function does not support precisions in the @samp{ls} directive correctly
 on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @item
 This function does not support format directives that access arguments in an
 arbitrary order, such as @code{"%2$s"}, on some platforms:
@@ -49,14 +49,14 @@
 @item
 printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded
 with zeroes) on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw.
 @item
 This function does not support precisions larger than 512 or 1024 in integer,
 floating-point and pointer output on some platforms:
-mingw, BeOS.
+Solaris 10/x86, mingw, BeOS.
 @item
 This function can crash in out-of-memory conditions on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/vswscanf.texi
+++ b/doc/posix-functions/vswscanf.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
 Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/vwscanf.texi
+++ b/doc/posix-functions/vwscanf.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1,
+NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1,
 Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/waitid.texi
+++ b/doc/posix-functions/waitid.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 As of 2005, no system is known on which @code{waitid} with flag @code{WNOWAIT}
 works correctly.
--- a/doc/posix-functions/wcpcpy.texi
+++ b/doc/posix-functions/wcpcpy.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcpncpy.texi
+++ b/doc/posix-functions/wcpncpy.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcrtomb.texi
+++ b/doc/posix-functions/wcrtomb.texi
@@ -13,7 +13,7 @@
 HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
 @item
 This function returns 0 when the first argument is NULL in some locales on some platforms:
-AIX 4.3, OSF/1 5.1, Solaris 10.
+AIX 4.3, OSF/1 5.1, Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/wcscasecmp.texi
+++ b/doc/posix-functions/wcscasecmp.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcscasecmp_l.texi
+++ b/doc/posix-functions/wcscasecmp_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wcscoll_l.texi
+++ b/doc/posix-functions/wcscoll_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wcsdup.texi
+++ b/doc/posix-functions/wcsdup.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcsncasecmp.texi
+++ b/doc/posix-functions/wcsncasecmp.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcsncasecmp_l.texi
+++ b/doc/posix-functions/wcsncasecmp_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on all non-glibc platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wcsnlen.texi
+++ b/doc/posix-functions/wcsnlen.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcsnrtombs.texi
+++ b/doc/posix-functions/wcsnrtombs.texi
@@ -10,8 +10,8 @@
 @itemize
 @item
 This function is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
-11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX
+11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-functions/wcstoimax.texi
+++ b/doc/posix-functions/wcstoimax.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
+OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
 1.5.x, Interix 3.5.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcstoll.texi
+++ b/doc/posix-functions/wcstoll.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
+HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wcstoull.texi
+++ b/doc/posix-functions/wcstoull.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
+HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wcstoumax.texi
+++ b/doc/posix-functions/wcstoumax.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
+OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin
 1.5.x, Interix 3.5.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
--- a/doc/posix-functions/wcsxfrm_l.texi
+++ b/doc/posix-functions/wcsxfrm_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wctrans_l.texi
+++ b/doc/posix-functions/wctrans_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-functions/wctype_l.texi
+++ b/doc/posix-functions/wctype_l.texi
@@ -14,7 +14,7 @@
 @itemize
 @item
 This function is missing on many platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @item
 On AIX and Windows platforms, @code{wchar_t} is a 16-bit type and therefore cannot
 accommodate all Unicode characters.
--- a/doc/posix-headers/fcntl.texi
+++ b/doc/posix-headers/fcntl.texi
@@ -34,21 +34,21 @@
 
 @item
 @samp{F_DUPFD_CLOEXEC} is not defined on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, Interix 3.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, Interix 3.5,
 BeOS.
 
 @item
 @samp{AT_FDCWD}, @samp{AT_EACCESS}, @samp{AT_SYMLINK_NOFOLLOW},
 @samp{AT_SYMLINK_FOLLOW}, and @samp{AT_REMOVEDIR}
 are not defined on many platforms:
-glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
+glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 
 @item
 @samp{AT_FDCWD} is defined with a value too large for an @code{int} on some
 platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-headers/fenv.texi
+++ b/doc/posix-headers/fenv.texi
@@ -13,6 +13,6 @@
 @itemize
 @item
 This header file is missing on some platforms:
-FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
+FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1,
 Cygwin 1.7.7, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-headers/iso646.texi
+++ b/doc/posix-headers/iso646.texi
@@ -13,5 +13,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-HP-UX 11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, BeOS.
+HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-headers/limits.texi
+++ b/doc/posix-headers/limits.texi
@@ -8,8 +8,8 @@
 Portability problems fixed by Gnulib:
 @itemize
 @item The @code{HOST_NAME_MAX} macro is not defined on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-headers/mqueue.texi
+++ b/doc/posix-headers/mqueue.texi
@@ -13,6 +13,6 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5,
+MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, Interix 3.5,
 BeOS.
 @end itemize
--- a/doc/posix-headers/nl_types.texi
+++ b/doc/posix-headers/nl_types.texi
@@ -13,6 +13,6 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-headers/spawn.texi
+++ b/doc/posix-headers/spawn.texi
@@ -9,7 +9,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
 
--- a/doc/posix-headers/stddef.texi
+++ b/doc/posix-headers/stddef.texi
@@ -21,7 +21,7 @@
 @item
 Some platforms provide an @code{offsetof} macro that cannot be used in
 arbitrary expressions:
-Solaris 10
+Solaris 11 2010-11
 This problem can be worked around by parenthesizing the
 @code{offsetof} expression in the unlikely case you use it with
 @code{sizeof} or @samp{[]}.
--- a/doc/posix-headers/stdint.texi
+++ b/doc/posix-headers/stdint.texi
@@ -9,7 +9,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Interix 3.5, BeOS.
+OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Interix 3.5, BeOS.
 @item
 This header file is very incomplete on some platforms.
 @item
--- a/doc/posix-headers/stdio.texi
+++ b/doc/posix-headers/stdio.texi
@@ -15,7 +15,7 @@
 glibc 2.8, MacOS X 10.5, Solaris 10, and others.
 @item
 The type @code{va_list} is missing on some platforms:
-glibc 2.8, OpenBSD 4.0, Solaris 10, and others.
+glibc 2.8, OpenBSD 4.0, Solaris 11 2010-11, and others.
 @item
 Some platforms provide a @code{NULL} macro that cannot be used in arbitrary
 expressions:
--- a/doc/posix-headers/stropts.texi
+++ b/doc/posix-headers/stropts.texi
@@ -13,5 +13,5 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, BeOS.
 @end itemize
--- a/doc/posix-headers/sys_select.texi
+++ b/doc/posix-headers/sys_select.texi
@@ -9,7 +9,7 @@
 @itemize
 @item
 This header file is missing on some platforms:
-HP-UX 11, mingw, BeOS.
+HP-UX 11.11, mingw, BeOS.
 @item
 This header file is not self-contained on some platforms: it requires
 @code{<sys/types.h>} to be included first.
@@ -19,7 +19,7 @@
 @item
 This header file is not self-contained --- it requires @code{<string.h>}
 before @code{FD_ZERO} can be used --- on some platforms:
-Solaris 10.
+Solaris 11 2010-11.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-headers/sys_socket.texi
+++ b/doc/posix-headers/sys_socket.texi
@@ -18,6 +18,10 @@
 @code{SHUT_RDWR} macros on some platforms, despite having the @code{shutdown}
 functions:
 emx+gcc.
+@item
+The @code{struct sockaddr_storage} type does not have a member @code{ss_family}
+on some platforms:
+AIX 7.1.
 @end itemize
 
 Portability problems not fixed by Gnulib:
--- a/doc/posix-headers/termios.texi
+++ b/doc/posix-headers/termios.texi
@@ -7,11 +7,15 @@
 
 Portability problems fixed by Gnulib:
 @itemize
+@item
+This header file is missing on some platforms:
+mingw.
 @end itemize
 
 Portability problems not fixed by Gnulib:
 @itemize
 @item
-This header file is missing on some platforms:
+The types @code{struct termios}, @code{cc_t}, @code{speed_t}, @code{tcflag_t}
+are not defined on some platforms:
 mingw.
 @end itemize
--- a/doc/posix-headers/tgmath.texi
+++ b/doc/posix-headers/tgmath.texi
@@ -13,6 +13,6 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
 IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/doc/posix-headers/trace.texi
+++ b/doc/posix-headers/trace.texi
@@ -13,6 +13,6 @@
 @itemize
 @item
 This header file is missing on some platforms:
-MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
-IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, Interix 3.5, BeOS.
+MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
+IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
 @end itemize
--- a/lib/anytostr.c
+++ b/lib/anytostr.c
@@ -17,10 +17,14 @@
 
 /* Written by Paul Eggert */
 
+/* Tell gcc not to warn about the (i < 0) test, below.  */
+#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
+
 #include <config.h>
 
 #include "inttostr.h"
-#include "verify.h"
 
 /* Convert I to a printable string in BUF, which must be at least
    INT_BUFSIZE_BOUND (INTTYPE) bytes long.  Return the address of the
@@ -29,11 +33,9 @@
 char * __attribute_warn_unused_result__
 anytostr (inttype i, char *buf)
 {
-  verify (TYPE_SIGNED (inttype) == inttype_is_signed);
   char *p = buf + INT_STRLEN_BOUND (inttype);
   *p = 0;
 
-#if inttype_is_signed
   if (i < 0)
     {
       do
@@ -43,7 +45,6 @@
       *--p = '-';
     }
   else
-#endif
     {
       do
         *--p = '0' + i % 10;
--- a/lib/argv-iter.h
+++ b/lib/argv-iter.h
@@ -21,7 +21,6 @@
 #include "arg-nonnull.h"
 
 struct argv_iterator;
-enum argv_iter_err;
 
 enum argv_iter_err
 {
--- a/lib/arpa_inet.in.h
+++ b/lib/arpa_inet.in.h
@@ -23,6 +23,10 @@
 #endif
 @PRAGMA_COLUMNS@
 
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__ */
+#endif
+
 /* Gnulib's sys/socket.h is responsible for pulling in winsock2.h etc
    under MinGW.
    But avoid namespace pollution on glibc systems.  */
--- a/lib/c-stack.c
+++ b/lib/c-stack.c
@@ -53,6 +53,12 @@
 #endif
 #ifndef SIGSTKSZ
 # define SIGSTKSZ 16384
+#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
+/* libsigsegv 2.6 through 2.8 have a bug where some architectures use
+   more than the Linux default of an 8k alternate stack when deciding
+   if a fault was caused by stack overflow.  */
+# undef SIGSTKSZ
+# define SIGSTKSZ 16384
 #endif
 
 #include <stdlib.h>
--- a/lib/c-strtod.c
+++ b/lib/c-strtod.c
@@ -43,7 +43,7 @@
 # define STRTOD strtod
 #endif
 
-#ifdef LC_ALL_MASK
+#if defined LC_ALL_MASK && (LONG ? HAVE_STRTOLD_L : HAVE_STRTOD_L)
 
 /* Cache for the C locale object.
    Marked volatile so that different threads see the same value
@@ -67,7 +67,7 @@
 {
   DOUBLE r;
 
-#ifdef LC_ALL_MASK
+#if defined LC_ALL_MASK && (LONG ? HAVE_STRTOLD_L : HAVE_STRTOD_L)
 
   locale_t locale = c_locale ();
   if (!locale)
--- a/lib/csharpcomp.c
+++ b/lib/csharpcomp.c
@@ -27,7 +27,7 @@
 #include <string.h>
 
 #include "execute.h"
-#include "pipe.h"
+#include "spawn-pipe.h"
 #include "wait-process.h"
 #include "sh-quote.h"
 #include "safe-read.h"
new file mode 100644
--- /dev/null
+++ b/lib/dtoastr.c
@@ -0,0 +1,2 @@
+#define LENGTH 2
+#include "ftoastr.c"
--- a/lib/eealloc.h
+++ b/lib/eealloc.h
@@ -1,5 +1,5 @@
 /* Memory allocation with expensive empty allocations.
-   Copyright (C) 2003, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008, 2010 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003,
    based on prior work by Jim Meyering.
 
@@ -35,7 +35,12 @@
 # define eemalloc malloc
 #else
 # if __GNUC__ >= 3
-static inline void *eemalloc (size_t n) __attribute__ ((__malloc__));
+static inline void *eemalloc (size_t n)
+     __attribute__ ((__malloc__))
+#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+     __attribute__ ((__alloc_size__ (1)))
+#  endif
+  ;
 # endif
 static inline void *
 eemalloc (size_t n)
@@ -50,6 +55,10 @@
 #if REALLOC_0_IS_NONNULL
 # define eerealloc realloc
 #else
+# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+static inline void *eerealloc (void *p, size_t n)
+     __attribute__ ((__alloc_size__ (2)));
+# endif
 static inline void *
 eerealloc (void *p, size_t n)
 {
--- a/lib/fchownat.c
+++ b/lib/fchownat.c
@@ -88,6 +88,13 @@
   if (flag == AT_SYMLINK_NOFOLLOW)
     return local_lchownat (fd, file, owner, group);
 # endif
+# if FCHOWNAT_EMPTY_FILENAME_BUG
+  if (file[0] == '\0')
+    {
+      errno = ENOENT;
+      return -1;
+    }
+# endif
 # if CHOWN_TRAILING_SLASH_BUG
   {
     size_t len = strlen (file);
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -26,7 +26,13 @@
 /* Special invocation convention.  */
 
 #include <sys/types.h>
-#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems.  */
+/* On some systems other than glibc, <sys/stat.h> is a prerequisite of
+   <fcntl.h>.  On glibc systems, we would like to avoid namespace pollution.
+   But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an
+   extern "C" { ... } block, which leads to errors in C++ mode with the
+   overridden <sys/stat.h> from gnulib.  These errors are known to be gone
+   with g++ version >= 4.3.  */
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
 # include <sys/stat.h>
 #endif
 #@INCLUDE_NEXT@ @NEXT_FCNTL_H@
--- a/lib/fdopendir.c
+++ b/lib/fdopendir.c
@@ -33,12 +33,16 @@
 #  include "dirent--.h"
 # endif
 
-static DIR *fdopendir_with_dup (int, int);
-static DIR *fd_clone_opendir (int);
+# ifndef REPLACE_FCHDIR
+#  define REPLACE_FCHDIR 0
+# endif
+
+static DIR *fdopendir_with_dup (int, int, struct saved_cwd const *);
+static DIR *fd_clone_opendir (int, struct saved_cwd const *);
 
 /* Replacement for POSIX fdopendir.
 
-   First, try to simulate it via opendir ("/proc/self/fd/FD").  Failing
+   First, try to simulate it via opendir ("/proc/self/fd/...").  Failing
    that, simulate it by using fchdir metadata, or by doing
    save_cwd/fchdir/opendir(".")/restore_cwd.
    If either the save_cwd or the restore_cwd fails (relatively unlikely),
@@ -61,7 +65,24 @@
 DIR *
 fdopendir (int fd)
 {
-  return fdopendir_with_dup (fd, -1);
+  DIR *dir = fdopendir_with_dup (fd, -1, NULL);
+
+  if (! REPLACE_FCHDIR && ! dir)
+    {
+      int saved_errno = errno;
+      if (EXPECTED_ERRNO (saved_errno))
+        {
+          struct saved_cwd cwd;
+          if (save_cwd (&cwd) != 0)
+            openat_save_fail (errno);
+          dir = fdopendir_with_dup (fd, -1, &cwd);
+          saved_errno = errno;
+          free_cwd (&cwd);
+          errno = saved_errno;
+        }
+    }
+
+  return dir;
 }
 
 /* Like fdopendir, except that if OLDER_DUPFD is not -1, it is known
@@ -70,9 +91,13 @@
    function makes sure that FD is closed and all file descriptors less
    than FD are open, and then calls fd_clone_opendir on a dup of FD.
    That way, barring race conditions, fd_clone_opendir returns a
-   stream whose file descriptor is FD.  */
+   stream whose file descriptor is FD.
+
+   If REPLACE_CHDIR or CWD is null, use opendir ("/proc/self/fd/...",
+   falling back on fchdir metadata.  Otherwise, CWD is a saved version
+   of the working directory; use fchdir/opendir(".")/restore_cwd(CWD).  */
 static DIR *
-fdopendir_with_dup (int fd, int older_dupfd)
+fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd const *cwd)
 {
   int dupfd = dup (fd);
   if (dupfd < 0 && errno == EMFILE)
@@ -85,13 +110,13 @@
       int saved_errno;
       if (dupfd < fd - 1 && dupfd != older_dupfd)
         {
-          dir = fdopendir_with_dup (fd, dupfd);
+          dir = fdopendir_with_dup (fd, dupfd, cwd);
           saved_errno = errno;
         }
       else
         {
           close (fd);
-          dir = fd_clone_opendir (dupfd);
+          dir = fd_clone_opendir (dupfd, cwd);
           saved_errno = errno;
           if (! dir)
             {
@@ -112,74 +137,45 @@
    the caller's responsibility both to close FD and (if the result is
    not null) to closedir the result.  */
 static DIR *
-fd_clone_opendir (int fd)
+fd_clone_opendir (int fd, struct saved_cwd const *cwd)
 {
-  int saved_errno;
-  DIR *dir;
-
-  char buf[OPENAT_BUFFER_SIZE];
-  char *proc_file = openat_proc_name (buf, fd, ".");
-  if (proc_file)
+  if (REPLACE_FCHDIR || ! cwd)
     {
-      dir = opendir (proc_file);
-      saved_errno = errno;
+      DIR *dir = NULL;
+      int saved_errno = EOPNOTSUPP;
+      char buf[OPENAT_BUFFER_SIZE];
+      char *proc_file = openat_proc_name (buf, fd, ".");
+      if (proc_file)
+        {
+          dir = opendir (proc_file);
+          saved_errno = errno;
+          if (proc_file != buf)
+            free (proc_file);
+        }
+# if REPLACE_FCHDIR
+      if (! dir && EXPECTED_ERRNO (saved_errno))
+        {
+          char const *name = _gl_directory_name (fd);
+          return (name ? opendir (name) : NULL);
+        }
+# endif
+      errno = saved_errno;
+      return dir;
     }
   else
     {
-      dir = NULL;
-      saved_errno = EOPNOTSUPP;
-    }
-
-  /* If the syscall fails with an expected errno value, resort to
-     save_cwd/restore_cwd.  */
-  if (! dir && EXPECTED_ERRNO (saved_errno))
-    {
-# if REPLACE_FCHDIR
-      const char *name = _gl_directory_name (fd);
-      if (name)
-        dir = opendir (name);
-      saved_errno = errno;
-# else /* !REPLACE_FCHDIR */
-
-      /* Occupy the destination FD slot, so that save_cwd cannot hijack it.  */
-      int fd_reserve = dup (fd);
-      if (fd_reserve < 0)
-        {
-          saved_errno = errno;
-          dir = NULL;
-          goto fail;
-        }
-
-      struct saved_cwd saved_cwd;
-      if (save_cwd (&saved_cwd) != 0)
-        openat_save_fail (errno);
-
-      /* Liberate the target file descriptor, so that opendir uses it.  */
-      close (fd_reserve);
-
       if (fchdir (fd) != 0)
-        {
-          dir = NULL;
-          saved_errno = errno;
-        }
+        return NULL;
       else
         {
-          dir = opendir (".");
-          saved_errno = errno;
-
-          if (restore_cwd (&saved_cwd) != 0)
+          DIR *dir = opendir (".");
+          int saved_errno = errno;
+          if (restore_cwd (cwd) != 0)
             openat_restore_fail (errno);
+          errno = saved_errno;
+          return dir;
         }
-
-      free_cwd (&saved_cwd);
-# endif /* !REPLACE_FCHDIR */
     }
-
- fail:
-  if (proc_file != buf)
-    free (proc_file);
-  errno = saved_errno;
-  return dir;
 }
 
 #else /* HAVE_FDOPENDIR */
--- a/lib/freading.c
+++ b/lib/freading.c
@@ -23,7 +23,7 @@
 
 /* Don't use glibc's __freading function in glibc < 2.7, see
    <http://sourceware.org/bugzilla/show_bug.cgi?id=4359>  */
-#if !(HAVE___FREADING && (!defined __GLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)))
+#if !(HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)))
 
 bool
 freading (FILE *fp)
--- a/lib/freading.h
+++ b/lib/freading.h
@@ -32,7 +32,7 @@
 
    STREAM must not be wide-character oriented.  */
 
-#if HAVE___FREADING && (!defined __GLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7))
+#if HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7))
 /* Solaris >= 7, not glibc >= 2.2, but glibc >= 2.7  */
 
 # include <stdio_ext.h>
new file mode 100644
--- /dev/null
+++ b/lib/ftoastr.c
@@ -0,0 +1,136 @@
+/* floating point to accurate string
+
+   Copyright (C) 2010 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paul Eggert.  */
+
+/* This code can misbehave on some buggy or older platforms, when
+   operating on arguments on floating types other than 'double', or
+   when given unusual combinations of options.  Gnulib's
+   snprintf-posix module works around many of these problems.
+
+   This code relies on sprintf, strtod, etc. operating accurately;
+   otherwise, the resulting strings could be inaccurate or too long.  */
+
+#include <config.h>
+
+#include "ftoastr.h"
+
+#include "intprops.h"
+#include <float.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#if LENGTH == 3
+# define FLOAT long double
+# define FLOAT_DIG LDBL_DIG
+# define FLOAT_MIN LDBL_MIN
+# define FLOAT_PREC_BOUND _GL_LDBL_PREC_BOUND
+# define FTOASTR ldtoastr
+# define STRTOF strtold
+#elif LENGTH == 2
+# define FLOAT double
+# define FLOAT_DIG DBL_DIG
+# define FLOAT_MIN DBL_MIN
+# define FLOAT_PREC_BOUND _GL_DBL_PREC_BOUND
+# define FTOASTR dtoastr
+# define STRTOF strtod
+#else
+# define LENGTH 1
+# define FLOAT float
+# define FLOAT_DIG FLT_DIG
+# define FLOAT_MIN FLT_MIN
+# define FLOAT_PREC_BOUND _GL_FLT_PREC_BOUND
+# define FTOASTR ftoastr
+# define STRTOF strtof
+#endif
+
+/* On pre-C99 hosts, approximate strtof and strtold with strtod.  This
+   may generate one or two extra digits, but that's better than not
+   working at all.  Assume that strtof works if strtold does.  */
+#if LENGTH != 2 && ! HAVE_C99_STRTOLD
+# undef STRTOF
+# define STRTOF strtod
+#endif
+
+/* On hosts where it's not known that snprintf works, use sprintf to
+   implement the subset needed here.  Typically BUFSIZE is big enough
+   and there's little or no performance hit.  */
+#if ! GNULIB_SNPRINTF_POSIX
+# undef snprintf
+# define snprintf ftoastr_snprintf
+static int
+ftoastr_snprintf (char *buf, size_t bufsize, char const *format,
+                  int width, int prec, FLOAT x)
+{
+  char width_0_buffer[LENGTH == 1 ? FLT_BUFSIZE_BOUND
+                      : LENGTH == 2 ? DBL_BUFSIZE_BOUND
+                      : LDBL_BUFSIZE_BOUND];
+  int n = width;
+  if (bufsize < sizeof width_0_buffer)
+    {
+      n = sprintf (width_0_buffer, format, 0, prec, x);
+      if (n < 0)
+        return n;
+      if (n < width)
+        n = width;
+    }
+  if (n < bufsize)
+    n = sprintf (buf, format, width, prec, x);
+  return n;
+}
+#endif
+
+int
+FTOASTR (char *buf, size_t bufsize, int flags, int width, FLOAT x)
+{
+  /* The following method is simple but slow.
+     For ideas about speeding things up, please see:
+
+     Florian Loitsch, Printing floating-point numbers quickly and accurately
+     with integers.  ACM SIGPLAN notices 46, 6 (June 2010), 233-243
+     <http://dx.doi.org/10.1145/1809028.1806623>; also see the
+     2010-03-21 draft <http://florian.loitsch.com/tmp/article.pdf>.  */
+
+  char format[sizeof "%-+ 0*.*Lg"];
+  FLOAT abs_x = x < 0 ? -x : x;
+  int prec;
+
+  char *p = format;
+  *p++ = '%';
+
+  /* Support flags that generate output parsable by strtof.  */
+  *p = '-'; p += (flags & FTOASTR_LEFT_JUSTIFY  ) != 0;
+  *p = '+'; p += (flags & FTOASTR_ALWAYS_SIGNED ) != 0;
+  *p = ' '; p += (flags & FTOASTR_SPACE_POSITIVE) != 0;
+  *p = '0'; p += (flags & FTOASTR_ZERO_PAD      ) != 0;
+
+  *p++ = '*';
+  *p++ = '.';
+  *p++ = '*';
+  *p = 'L'; p += 2 < LENGTH;
+  *p++ = flags & FTOASTR_UPPER_E ? 'G' : 'g';
+  *p = '\0';
+
+  for (prec = abs_x < FLOAT_MIN ? 1 : FLOAT_DIG; ; prec++)
+    {
+      int n = snprintf (buf, bufsize, format, width, prec, x);
+      if (n < 0
+          || FLOAT_PREC_BOUND <= prec
+          || (n < bufsize && STRTOF (buf, NULL) == x))
+        return n;
+    }
+}
new file mode 100644
--- /dev/null
+++ b/lib/ftoastr.h
@@ -0,0 +1,144 @@
+/* floating point to accurate string
+
+   Copyright (C) 2010 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paul Eggert.  */
+
+#ifndef _GL_FTOASTR_H
+
+#include "intprops.h"
+#include <float.h>
+#include <stddef.h>
+
+/* Store into BUF (of size BUFSIZE) an accurate minimal-precision
+   string representation of a floating point number.  FLAGS affect the
+   formatting of the number.  Pad the output string with spaces as
+   necessary to width WIDTH bytes, in the style of printf.  WIDTH must
+   be nonnegative.  X is the floating-point number to be converted.
+
+   Return the number of bytes stored into BUF, not counting the
+   terminating null.  However, do not overrun BUF: if BUF is too
+   small, return a fairly tight (but not necessarily exact) upper
+   bound on the value that would have been returned if BUF had been
+   big enough.  If SIZE is zero, BUF may be a null pointer.  On error
+   (e.g., returned value would exceed INT_MAX), return -1 and set
+   errno.
+
+   Example:
+
+     char buf[DBL_ABUFSIZE_BOUND];
+     int r = dtoastr (buf, sizeof buf, "%*.*g", 0, 0.1);
+
+   In the C locale, this sets R to 3 and stores "0.1" into BUF.  */
+
+int  ftoastr (char *buf, size_t bufsize, int flags, int width,       float x);
+int  dtoastr (char *buf, size_t bufsize, int flags, int width,      double x);
+int ldtoastr (char *buf, size_t bufsize, int flags, int width, long double x);
+
+/* Flag values for ftoastr etc.  These can be ORed together.  */
+enum
+  {
+    /* Left justify within the width; the default is right justification.  */
+    FTOASTR_LEFT_JUSTIFY = 1,
+
+    /* Output "+" before positive numbers; the default outputs nothing.  */
+    FTOASTR_ALWAYS_SIGNED = 2,
+
+    /* Output " " before positive numbers; ignored if
+       FTOASTER_ALWAYS_SIGNED is also given.  */
+    FTOASTR_SPACE_POSITIVE = 4,
+
+    /* Pad with zeros instead of spaces; ignored if FTOASTR_LEFT_JUSTIFY
+       is also given.  */
+    FTOASTR_ZERO_PAD = 8,
+
+    /* Use 'E' instead of 'e' before the exponent.  */
+    FTOASTR_UPPER_E = 16
+  };
+
+
+/* _GL_FLT_PREC_BOUND is an upper bound on the precision needed to
+   represent a float value without losing information.  Likewise for
+   _GL_DBL_PREC_BOUND and double, and _GL_LDBL_PREC_BOUND and long double.  */
+
+#if FLT_RADIX == 10 /* decimal floating point */
+ enum {  _GL_FLT_PREC_BOUND =  FLT_MANT_DIG };
+ enum {  _GL_DBL_PREC_BOUND =  DBL_MANT_DIG };
+ enum { _GL_LDBL_PREC_BOUND = LDBL_MANT_DIG };
+#else
+
+/* An upper bound on the number of bits needed to represent a single
+   digit in a floating-point fraction.  */
+# if FLT_RADIX == 2 /* IEEE 754 floating point, VAX floating point, etc. */
+#  define _GL_FLOAT_DIG_BITS_BOUND 1
+# elif FLT_RADIX <= 16 /* IBM hex floating point has FLT_RADIX == 16.  */
+#  define _GL_FLOAT_DIG_BITS_BOUND 4
+# else /* no machine is this bad, but let's be complete */
+#  define _GL_FLOAT_DIG_BITS_BOUND (CHAR_BIT * (int) sizeof (int) - 1)
+# endif
+
+/* An upper bound on the number of decimal digits needed to represent
+   a floating point number accurately, assuming a fraction contains
+   DIG digits.  For why the "+ 1" is needed, see "Binary to Decimal
+   Conversion" in David Goldberg's paper "What Every Computer
+   Scientist Should Know About Floating-Point Arithmetic"
+   <http://docs.sun.com/source/806-3568/ncg_goldberg.html>.  */
+# define _GL_FLOAT_PREC_BOUND(dig) \
+   (INT_BITS_STRLEN_BOUND ((dig) * _GL_FLOAT_DIG_BITS_BOUND) + 1)
+
+ enum {  _GL_FLT_PREC_BOUND = _GL_FLOAT_PREC_BOUND ( FLT_MANT_DIG) };
+ enum {  _GL_DBL_PREC_BOUND = _GL_FLOAT_PREC_BOUND ( DBL_MANT_DIG) };
+ enum { _GL_LDBL_PREC_BOUND = _GL_FLOAT_PREC_BOUND (LDBL_MANT_DIG) };
+#endif
+
+
+/* Bound on the number of bytes printed for an exponent in the range
+   MIN..MAX, where MIN < 0 < MAX; printf always prints a sign and at
+   least 2 digits.  Although the maximum known exponent is 4932 for
+   IEEE 754 binary128, support tight bounds for exponents up to a
+   million, just in case.  */
+#define _GL_FLOAT_EXPONENT_STRLEN_BOUND(min, max)  \
+  (      -100 < (min) && (max) <     100 ? 3       \
+   :    -1000 < (min) && (max) <    1000 ? 4       \
+   :   -10000 < (min) && (max) <   10000 ? 5       \
+   :  -100000 < (min) && (max) <  100000 ? 6       \
+   : -1000000 < (min) && (max) < 1000000 ? 7       \
+   : INT_STRLEN_BOUND (int) /* not a tight bound */)
+
+/* A reasonably tight bound on the length of a type-T floating value
+   formatted with ftoastr etc.  Room is needed for sign, fraction
+   digits, decimal point, "e", and exponent.  POINTLEN should be a
+   reasonably tight bound on the string length of the decimal
+   point.  */
+#define _GL_FLOAT_STRLEN_BOUND_L(t, pointlen)                          \
+  (1 + _GL_##t##_PREC_BOUND + pointlen + 1                             \
+   + _GL_FLOAT_EXPONENT_STRLEN_BOUND (t##_MIN_10_EXP, t##_MAX_10_EXP))
+#define  FLT_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L ( FLT, pointlen)
+#define  DBL_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L ( DBL, pointlen)
+#define LDBL_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L (LDBL, pointlen)
+
+/* Looser bounds that are locale-independent and are integral constant
+   expressions.  */
+#define  FLT_STRLEN_BOUND  FLT_STRLEN_BOUND_L (MB_LEN_MAX)
+#define  DBL_STRLEN_BOUND  DBL_STRLEN_BOUND_L (MB_LEN_MAX)
+#define LDBL_STRLEN_BOUND LDBL_STRLEN_BOUND_L (MB_LEN_MAX)
+
+/* Looser, locale-independent bounds that include the trailing null byte.  */
+#define  FLT_BUFSIZE_BOUND ( FLT_STRLEN_BOUND + 1)
+#define  DBL_BUFSIZE_BOUND ( DBL_STRLEN_BOUND + 1)
+#define LDBL_BUFSIZE_BOUND (LDBL_STRLEN_BOUND + 1)
+
+#endif /* _GL_FTOASTR_H */
--- a/lib/getdomainname.c
+++ b/lib/getdomainname.c
@@ -1,6 +1,6 @@
 /* getdomainname emulation for systems that doesn't have it.
 
-   Copyright (C) 2003, 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006, 2008, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,9 +22,14 @@
 /* Specification. */
 #include <unistd.h>
 
+#include <limits.h>
 #include <string.h>
 #include <errno.h>
 
+#if HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H /* IRIX, OSF/1, Solaris */
+# include <sys/systeminfo.h>
+#endif
+
 /* Return the NIS domain name of the machine.
    WARNING! The NIS domain name is unrelated to the fully qualified host name
             of the machine.  It is also unrelated to email addresses.
@@ -37,7 +42,31 @@
    Return 0 if successful, otherwise set errno and return -1.  */
 int
 getdomainname (char *name, size_t len)
+#undef getdomainname
 {
+#if HAVE_GETDOMAINNAME                 /* MacOS X, FreeBSD, AIX, IRIX, OSF/1 */
+  extern int getdomainname (char *, int);
+
+  if (len > INT_MAX)
+    len = INT_MAX;
+  return getdomainname (name, (int) len);
+#elif HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H && defined SI_SRPC_DOMAIN
+                                       /* Solaris */
+  int ret;
+
+  /* The third argument is a 'long', but the return value must fit in an
+     'int', therefore it's better to avoid arguments > INT_MAX.  */
+  ret = sysinfo (SI_SRPC_DOMAIN, name, len > INT_MAX ? INT_MAX : len);
+  if (ret < 0)
+    /* errno is set here.  */
+    return -1;
+  if (ret > len)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  return 0;
+#else                                  /* HP-UX, Cygwin, mingw */
   const char *result = "";      /* Hardcode your domain name if you want.  */
   size_t result_len = strlen (result);
 
@@ -50,4 +79,5 @@
   if (result_len < len)
     name[result_len] = '\0';
   return 0;
+#endif
 }
--- a/lib/gettext.h
+++ b/lib/gettext.h
@@ -54,7 +54,7 @@
    it now, to make later inclusions of <libintl.h> a NOP.  */
 #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
 # include <cstdlib>
-# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H
 #  include <libintl.h>
 # endif
 #endif
--- a/lib/hard-locale.c
+++ b/lib/hard-locale.c
@@ -26,6 +26,8 @@
 
 #ifdef __GLIBC__
 # define GLIBC_VERSION __GLIBC__
+#elif defined __UCLIBC__
+# define GLIBC_VERSION 2
 #else
 # define GLIBC_VERSION 0
 #endif
--- a/lib/iconv.in.h
+++ b/lib/iconv.in.h
@@ -36,22 +36,24 @@
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 
-#if @REPLACE_ICONV_OPEN@
+#if @GNULIB_ICONV@
+# if @REPLACE_ICONV_OPEN@
 /* An iconv_open wrapper that supports the IANA standardized encoding names
    ("ISO-8859-1" etc.) as far as possible.  */
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define iconv_open rpl_iconv_open
-# endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define iconv_open rpl_iconv_open
+#  endif
 _GL_FUNCDECL_RPL (iconv_open, iconv_t,
                   (const char *tocode, const char *fromcode)
                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (iconv_open, iconv_t,
                   (const char *tocode, const char *fromcode));
-#else
+# else
 _GL_CXXALIAS_SYS (iconv_open, iconv_t,
                   (const char *tocode, const char *fromcode));
+# endif
+_GL_CXXALIASWARN (iconv_open);
 #endif
-_GL_CXXALIASWARN (iconv_open);
 
 #if @REPLACE_ICONV_UTF@
 /* Special constants for supporting UTF-{16,32}{BE,LE} encodings.
@@ -66,10 +68,11 @@
 # define _ICONV_UTF32LE_UTF8 (iconv_t)(-168)
 #endif
 
-#if @REPLACE_ICONV@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define iconv rpl_iconv
-# endif
+#if @GNULIB_ICONV@
+# if @REPLACE_ICONV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define iconv rpl_iconv
+#  endif
 _GL_FUNCDECL_RPL (iconv, size_t,
                   (iconv_t cd,
                    @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
@@ -78,24 +81,30 @@
                   (iconv_t cd,
                    @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
                    char **outbuf, size_t *outbytesleft));
-#else
+# else
 _GL_CXXALIAS_SYS (iconv, size_t,
                   (iconv_t cd,
                    @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
                    char **outbuf, size_t *outbytesleft));
+# endif
+_GL_CXXALIASWARN (iconv);
+# ifndef ICONV_CONST
+#  define ICONV_CONST @ICONV_CONST@
+# endif
 #endif
-_GL_CXXALIASWARN (iconv);
 
-#if @REPLACE_ICONV@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define iconv_close rpl_iconv_close
-# endif
+#if @GNULIB_ICONV@
+# if @REPLACE_ICONV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define iconv_close rpl_iconv_close
+#  endif
 _GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd));
 _GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd));
-#else
+# else
 _GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd));
+# endif
+_GL_CXXALIASWARN (iconv_close);
 #endif
-_GL_CXXALIASWARN (iconv_close);
 
 
 #endif /* _GL_ICONV_H */
--- a/lib/ignore-value.h
+++ b/lib/ignore-value.h
@@ -32,6 +32,11 @@
    "copy.c:233: warning: ignoring return value of 'fchown',
    declared with attribute warn_unused_result".  */
 
+#ifndef _GL_IGNORE_VALUE_H
+# define _GL_IGNORE_VALUE_H
+
 static inline void ignore_value (int i) { (void) i; }
 static inline void ignore_ptr (void* p) { (void) p; }
 /* FIXME: what about aggregate types? */
+
+#endif
--- a/lib/imaxtostr.c
+++ b/lib/imaxtostr.c
@@ -1,4 +1,3 @@
 #define anytostr imaxtostr
 #define inttype intmax_t
-#define inttype_is_signed 1
 #include "anytostr.c"
--- a/lib/intprops.h
+++ b/lib/intprops.h
@@ -68,13 +68,17 @@
 #  define signed_type_or_expr__(t) 1
 # endif
 
+/* Bound on length of the string representing an unsigned integer
+   value representable in B bits.  log10 (2.0) < 146/485.  The
+   smallest value of B where this bound is not tight is 2621.  */
+# define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
+
 /* Bound on length of the string representing an integer type or expression T.
-   Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485;
-   add 1 for integer division truncation; add 1 more for a minus sign
-   if needed.  */
+   Subtract 1 for the sign bit if T is signed, and then add 1 more for
+   a minus sign if needed.  */
 # define INT_STRLEN_BOUND(t) \
-  ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \
-   + signed_type_or_expr__ (t) + 1)
+  (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) \
+   + signed_type_or_expr__ (t))
 
 /* Bound on buffer size needed to represent an integer type or expression T,
    including the terminating null.  */
--- a/lib/inttostr.c
+++ b/lib/inttostr.c
@@ -1,4 +1,3 @@
 #define anytostr inttostr
 #define inttype int
-#define inttype_is_signed 1
 #include "anytostr.c"
--- a/lib/isnan.c
+++ b/lib/isnan.c
@@ -117,8 +117,9 @@
 # else
   /* Be careful to not do any floating-point operation on x, such as x == x,
      because x may be a signaling NaN.  */
-#  if defined __SUNPRO_C || defined __DECC || (defined __sgi && !defined __GNUC__)
-  /* The Sun C 5.0 compilers and the Compaq (ex-DEC) 6.4 compilers don't
+#  if defined __TINYC__ || defined __SUNPRO_C || defined __DECC \
+      || (defined __sgi && !defined __GNUC__) || defined __ICC
+  /* The Sun C 5.0, Intel ICC 10.0, and Compaq (ex-DEC) 6.4 compilers don't
      recognize the initializers as constant expressions.  The latter compiler
      also fails when constant-folding 0.0 / 0.0 even when constant-folding is
      not required.  The SGI MIPSpro C compiler complains about "floating-point
--- a/lib/javacomp.c
+++ b/lib/javacomp.c
@@ -32,7 +32,7 @@
 
 #include "javaversion.h"
 #include "execute.h"
-#include "pipe.h"
+#include "spawn-pipe.h"
 #include "wait-process.h"
 #include "classpath.h"
 #include "xsetenv.h"
--- a/lib/javaversion.c
+++ b/lib/javaversion.c
@@ -31,7 +31,7 @@
 #endif
 
 #include "javaexec.h"
-#include "pipe.h"
+#include "spawn-pipe.h"
 #include "wait-process.h"
 #include "error.h"
 #include "gettext.h"
new file mode 100644
--- /dev/null
+++ b/lib/ldtoastr.c
@@ -0,0 +1,2 @@
+#define LENGTH 3
+#include "ftoastr.c"
--- a/lib/localename.c
+++ b/lib/localename.c
@@ -2607,7 +2607,7 @@
     locale_t thread_locale = uselocale (NULL);
     if (thread_locale != LC_GLOBAL_LOCALE)
       {
-#  if __GLIBC__ >= 2
+#  if __GLIBC__ >= 2 && !defined __UCLIBC__
         /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in
            glibc < 2.12.
            See <http://sourceware.org/bugzilla/show_bug.cgi?id=10968>.  */
@@ -2771,7 +2771,7 @@
    However it does not specify the exact format.  Neither do SUSV2 and
    ISO C 99.  So we can use this feature only on selected systems (e.g.
    those using GNU C Library).  */
-#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2)
+#if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__)
 # define HAVE_LOCALE_NULL
 #endif
 
--- a/lib/mbrtowc.c
+++ b/lib/mbrtowc.c
@@ -91,7 +91,7 @@
 
     /* Here m > 0.  */
 
-# if __GLIBC__
+# if __GLIBC__ || defined __UCLIBC__
     /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
     mbtowc (NULL, NULL, 0);
 # endif
--- a/lib/nanosleep.c
+++ b/lib/nanosleep.c
@@ -47,10 +47,11 @@
            struct timespec *remaining_delay)
 #undef nanosleep
 {
-  /* nanosleep mishandles large sleeps due to internal overflow
-     problems.  The worst known case of this is cygwin 1.5.x, which
-     can't sleep more than 49.7 days (2**32 milliseconds).  Solve this
-     by breaking the sleep up into smaller chunks.  */
+  /* nanosleep mishandles large sleeps due to internal overflow problems.
+     The worst known case of this is Linux 2.6.9 with glibc 2.3.4, which
+     can't sleep more than 24.85 days (2^31 milliseconds).  Similarly,
+     cygwin 1.5.x, which can't sleep more than 49.7 days (2^32 milliseconds).
+     Solve this by breaking the sleep up into smaller chunks.  */
 
   if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec)
     {
@@ -60,8 +61,8 @@
 
   {
     /* Verify that time_t is large enough.  */
-    verify (TYPE_MAXIMUM (time_t) / 49 / 24 / 60 / 60);
-    const time_t limit = 49 * 24 * 60 * 60;
+    verify (TYPE_MAXIMUM (time_t) / 24 / 24 / 60 / 60);
+    const time_t limit = 24 * 24 * 60 * 60;
     time_t seconds = requested_delay->tv_sec;
     struct timespec intermediate;
     intermediate.tv_nsec = 0;
--- a/lib/nproc.c
+++ b/lib/nproc.c
@@ -24,7 +24,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 
-#if HAVE_PTHREAD_AFFINITY_NP && 0
+#if HAVE_PTHREAD_GETAFFINITY_NP && 0
 # include <pthread.h>
 # include <sched.h>
 #endif
@@ -71,7 +71,7 @@
      Therefore this code is not enabled.
      glibc >= 2.3.4 has sched_getaffinity whereas NetBSD 5 has
      sched_getaffinity_np.  */
-#if HAVE_PTHREAD_AFFINITY_NP && defined __GLIBC__ && 0
+#if HAVE_PTHREAD_GETAFFINITY_NP && defined __GLIBC__ && 0
   {
     cpu_set_t set;
 
@@ -94,7 +94,7 @@
           return count;
       }
   }
-#elif HAVE_PTHREAD_AFFINITY_NP && defined __NetBSD__ && 0
+#elif HAVE_PTHREAD_GETAFFINITY_NP && defined __NetBSD__ && 0
   {
     cpuset_t *set;
 
--- a/lib/offtostr.c
+++ b/lib/offtostr.c
@@ -1,4 +1,3 @@
 #define anytostr offtostr
 #define inttype off_t
-#define inttype_is_signed 1
 #include "anytostr.c"
--- a/lib/pagealign_alloc.h
+++ b/lib/pagealign_alloc.h
@@ -1,6 +1,6 @@
 /* Memory allocation aligned to system page boundaries.
 
-   Copyright (C) 2005, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2008, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,6 +29,9 @@
 extern void *pagealign_alloc (size_t size)
 # if __GNUC__ >= 3
      __attribute__ ((__malloc__))
+#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+     __attribute__ ((__alloc_size__ (1)))
+#  endif
 # endif
      ;
 
@@ -37,6 +40,9 @@
 extern void *pagealign_xalloc (size_t size)
 # if __GNUC__ >= 3
      __attribute__ ((__malloc__))
+#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+     __attribute__ ((__alloc_size__ (1)))
+#  endif
 # endif
      ;
 
--- a/lib/pipe-filter-gi.c
+++ b/lib/pipe-filter-gi.c
@@ -34,7 +34,7 @@
 #endif
 
 #include "error.h"
-#include "pipe.h"
+#include "spawn-pipe.h"
 #include "wait-process.h"
 #include "xalloc.h"
 #include "gettext.h"
--- a/lib/pipe-filter-ii.c
+++ b/lib/pipe-filter-ii.c
@@ -33,7 +33,7 @@
 #endif
 
 #include "error.h"
-#include "pipe.h"
+#include "spawn-pipe.h"
 #include "wait-process.h"
 #include "gettext.h"
 
--- a/lib/pipe.c
+++ b/lib/pipe.c
@@ -1,450 +1,42 @@
-/* Creation of subprocesses, communicating via pipes.
-   Copyright (C) 2001-2004, 2006-2010 Free Software Foundation, Inc.
-   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+/* Create a pipe.
+   Copyright (C) 2009-2010 Free Software Foundation, Inc.
 
-   This program is free software: you can redistribute it and/or modify
+   This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include <config.h>
 
 /* Specification.  */
-#include "pipe.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <signal.h>
 #include <unistd.h>
 
-#include "error.h"
-#include "fatal-signal.h"
-#include "unistd-safer.h"
-#include "wait-process.h"
-#include "gettext.h"
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Native Woe32 API.  */
+
+/* Get _pipe().  */
+# include <io.h>
 
-#define _(str) gettext (str)
-
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get _O_BINARY.  */
+# include <fcntl.h>
 
-/* Native Woe32 API.  */
-# include <process.h>
-# include "w32spawn.h"
+int
+pipe (int fd[2])
+{
+  return _pipe (fd, 4096, _O_BINARY);
+}
 
 #else
 
-/* Unix API.  */
-# include <spawn.h>
-
-#endif
-
-/* The results of open() in this file are not used with fchdir,
-   therefore save some unnecessary work in fchdir.c.  */
-#undef open
-#undef close
-
-
-#ifdef EINTR
-
-/* EINTR handling for close().
-   These functions can return -1/EINTR even though we don't have any
-   signal handlers set up, namely when we get interrupted via SIGSTOP.  */
-
-static inline int
-nonintr_close (int fd)
-{
-  int retval;
-
-  do
-    retval = close (fd);
-  while (retval < 0 && errno == EINTR);
-
-  return retval;
-}
-#define close nonintr_close
-
-static inline int
-nonintr_open (const char *pathname, int oflag, mode_t mode)
-{
-  int retval;
-
-  do
-    retval = open (pathname, oflag, mode);
-  while (retval < 0 && errno == EINTR);
-
-  return retval;
-}
-#undef open /* avoid warning on VMS */
-#define open nonintr_open
+# error "This platform lacks a pipe function, and Gnulib doesn't provide a replacement. This is a bug in Gnulib."
 
 #endif
-
-
-/* Open a pipe connected to a child process.
- *
- *           write       system                read
- *    parent  ->   fd[1]   ->   STDIN_FILENO    ->   child       if pipe_stdin
- *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child       if pipe_stdout
- *           read        system                write
- *
- * At least one of pipe_stdin, pipe_stdout must be true.
- * pipe_stdin and prog_stdin together determine the child's standard input.
- * pipe_stdout and prog_stdout together determine the child's standard output.
- * If pipe_stdin is true, prog_stdin is ignored.
- * If pipe_stdout is true, prog_stdout is ignored.
- */
-static pid_t
-create_pipe (const char *progname,
-             const char *prog_path, char **prog_argv,
-             bool pipe_stdin, bool pipe_stdout,
-             const char *prog_stdin, const char *prog_stdout,
-             bool null_stderr,
-             bool slave_process, bool exit_on_error,
-             int fd[2])
-{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-
-  /* Native Woe32 API.
-     This uses _pipe(), dup2(), and spawnv().  It could also be implemented
-     using the low-level functions CreatePipe(), DuplicateHandle(),
-     CreateProcess() and _open_osfhandle(); see the GNU make and GNU clisp
-     and cvs source code.  */
-  int ifd[2];
-  int ofd[2];
-  int orig_stdin;
-  int orig_stdout;
-  int orig_stderr;
-  int child;
-  int nulloutfd;
-  int stdinfd;
-  int stdoutfd;
-  int saved_errno;
-
-  /* FIXME: Need to free memory allocated by prepare_spawn.  */
-  prog_argv = prepare_spawn (prog_argv);
-
-  if (pipe_stdout)
-    if (pipe2_safer (ifd, O_BINARY | O_CLOEXEC) < 0)
-      error (EXIT_FAILURE, errno, _("cannot create pipe"));
-  if (pipe_stdin)
-    if (pipe2_safer (ofd, O_BINARY | O_CLOEXEC) < 0)
-      error (EXIT_FAILURE, errno, _("cannot create pipe"));
-/* Data flow diagram:
- *
- *           write        system         read
- *    parent  ->   ofd[1]   ->   ofd[0]   ->   child       if pipe_stdin
- *    parent  <-   ifd[0]   <-   ifd[1]   <-   child       if pipe_stdout
- *           read         system         write
- *
- */
-
-  /* Save standard file handles of parent process.  */
-  if (pipe_stdin || prog_stdin != NULL)
-    orig_stdin = dup_safer_noinherit (STDIN_FILENO);
-  if (pipe_stdout || prog_stdout != NULL)
-    orig_stdout = dup_safer_noinherit (STDOUT_FILENO);
-  if (null_stderr)
-    orig_stderr = dup_safer_noinherit (STDERR_FILENO);
-  child = -1;
-
-  /* Create standard file handles of child process.  */
-  nulloutfd = -1;
-  stdinfd = -1;
-  stdoutfd = -1;
-  if ((!pipe_stdin || dup2 (ofd[0], STDIN_FILENO) >= 0)
-      && (!pipe_stdout || dup2 (ifd[1], STDOUT_FILENO) >= 0)
-      && (!null_stderr
-          || ((nulloutfd = open ("NUL", O_RDWR, 0)) >= 0
-              && (nulloutfd == STDERR_FILENO
-                  || (dup2 (nulloutfd, STDERR_FILENO) >= 0
-                      && close (nulloutfd) >= 0))))
-      && (pipe_stdin
-          || prog_stdin == NULL
-          || ((stdinfd = open (prog_stdin, O_RDONLY, 0)) >= 0
-              && (stdinfd == STDIN_FILENO
-                  || (dup2 (stdinfd, STDIN_FILENO) >= 0
-                      && close (stdinfd) >= 0))))
-      && (pipe_stdout
-          || prog_stdout == NULL
-          || ((stdoutfd = open (prog_stdout, O_WRONLY, 0)) >= 0
-              && (stdoutfd == STDOUT_FILENO
-                  || (dup2 (stdoutfd, STDOUT_FILENO) >= 0
-                      && close (stdoutfd) >= 0)))))
-    /* The child process doesn't inherit ifd[0], ifd[1], ofd[0], ofd[1],
-       but it inherits all open()ed or dup2()ed file handles (which is what
-       we want in the case of STD*_FILENO).  */
-    /* Use spawnvpe and pass the environment explicitly.  This is needed if
-       the program has modified the environment using putenv() or [un]setenv().
-       On Windows, programs have two environments, one in the "environment
-       block" of the process and managed through SetEnvironmentVariable(), and
-       one inside the process, in the location retrieved by the 'environ'
-       macro.  When using spawnvp() without 'e', the child process inherits a
-       copy of the environment block - ignoring the effects of putenv() and
-       [un]setenv().  */
-    {
-      child = spawnvpe (P_NOWAIT, prog_path, (const char **) prog_argv,
-                        (const char **) environ);
-      if (child < 0 && errno == ENOEXEC)
-        {
-          /* prog is not an native executable.  Try to execute it as a
-             shell script.  Note that prepare_spawn() has already prepended
-             a hidden element "sh.exe" to prog_argv.  */
-          --prog_argv;
-          child = spawnvpe (P_NOWAIT, prog_argv[0], (const char **) prog_argv,
-                            (const char **) environ);
-        }
-    }
-  if (child == -1)
-    saved_errno = errno;
-  if (stdinfd >= 0)
-    close (stdinfd);
-  if (stdoutfd >= 0)
-    close (stdoutfd);
-  if (nulloutfd >= 0)
-    close (nulloutfd);
-
-  /* Restore standard file handles of parent process.  */
-  if (null_stderr)
-    undup_safer_noinherit (orig_stderr, STDERR_FILENO);
-  if (pipe_stdout || prog_stdout != NULL)
-    undup_safer_noinherit (orig_stdout, STDOUT_FILENO);
-  if (pipe_stdin || prog_stdin != NULL)
-    undup_safer_noinherit (orig_stdin, STDIN_FILENO);
-
-  if (pipe_stdin)
-    close (ofd[0]);
-  if (pipe_stdout)
-    close (ifd[1]);
-  if (child == -1)
-    {
-      if (exit_on_error || !null_stderr)
-        error (exit_on_error ? EXIT_FAILURE : 0, saved_errno,
-               _("%s subprocess failed"), progname);
-      if (pipe_stdout)
-        close (ifd[0]);
-      if (pipe_stdin)
-        close (ofd[1]);
-      errno = saved_errno;
-      return -1;
-    }
-
-  if (pipe_stdout)
-    fd[0] = ifd[0];
-  if (pipe_stdin)
-    fd[1] = ofd[1];
-  return child;
-
-#else
-
-  /* Unix API.  */
-  int ifd[2];
-  int ofd[2];
-  sigset_t blocked_signals;
-  posix_spawn_file_actions_t actions;
-  bool actions_allocated;
-  posix_spawnattr_t attrs;
-  bool attrs_allocated;
-  int err;
-  pid_t child;
-
-  if (pipe_stdout)
-    if (pipe_safer (ifd) < 0)
-      error (EXIT_FAILURE, errno, _("cannot create pipe"));
-  if (pipe_stdin)
-    if (pipe_safer (ofd) < 0)
-      error (EXIT_FAILURE, errno, _("cannot create pipe"));
-/* Data flow diagram:
- *
- *           write        system         read
- *    parent  ->   ofd[1]   ->   ofd[0]   ->   child       if pipe_stdin
- *    parent  <-   ifd[0]   <-   ifd[1]   <-   child       if pipe_stdout
- *           read         system         write
- *
- */
-
-  if (slave_process)
-    {
-      sigprocmask (SIG_SETMASK, NULL, &blocked_signals);
-      block_fatal_signals ();
-    }
-  actions_allocated = false;
-  attrs_allocated = false;
-  if ((err = posix_spawn_file_actions_init (&actions)) != 0
-      || (actions_allocated = true,
-          (pipe_stdin
-           && (err = posix_spawn_file_actions_adddup2 (&actions,
-                                                       ofd[0], STDIN_FILENO))
-              != 0)
-          || (pipe_stdout
-              && (err = posix_spawn_file_actions_adddup2 (&actions,
-                                                          ifd[1], STDOUT_FILENO))
-                 != 0)
-          || (pipe_stdin
-              && (err = posix_spawn_file_actions_addclose (&actions, ofd[0]))
-                 != 0)
-          || (pipe_stdout
-              && (err = posix_spawn_file_actions_addclose (&actions, ifd[1]))
-                 != 0)
-          || (pipe_stdin
-              && (err = posix_spawn_file_actions_addclose (&actions, ofd[1]))
-                 != 0)
-          || (pipe_stdout
-              && (err = posix_spawn_file_actions_addclose (&actions, ifd[0]))
-                 != 0)
-          || (null_stderr
-              && (err = posix_spawn_file_actions_addopen (&actions,
-                                                          STDERR_FILENO,
-                                                          "/dev/null", O_RDWR,
-                                                          0))
-                 != 0)
-          || (!pipe_stdin
-              && prog_stdin != NULL
-              && (err = posix_spawn_file_actions_addopen (&actions,
-                                                          STDIN_FILENO,
-                                                          prog_stdin, O_RDONLY,
-                                                          0))
-                 != 0)
-          || (!pipe_stdout
-              && prog_stdout != NULL
-              && (err = posix_spawn_file_actions_addopen (&actions,
-                                                          STDOUT_FILENO,
-                                                          prog_stdout, O_WRONLY,
-                                                          0))
-                 != 0)
-          || (slave_process
-              && ((err = posix_spawnattr_init (&attrs)) != 0
-                  || (attrs_allocated = true,
-                      (err = posix_spawnattr_setsigmask (&attrs,
-                                                         &blocked_signals))
-                      != 0
-                      || (err = posix_spawnattr_setflags (&attrs,
-                                                        POSIX_SPAWN_SETSIGMASK))
-                         != 0)))
-          || (err = posix_spawnp (&child, prog_path, &actions,
-                                  attrs_allocated ? &attrs : NULL, prog_argv,
-                                  environ))
-             != 0))
-    {
-      if (actions_allocated)
-        posix_spawn_file_actions_destroy (&actions);
-      if (attrs_allocated)
-        posix_spawnattr_destroy (&attrs);
-      if (slave_process)
-        unblock_fatal_signals ();
-      if (exit_on_error || !null_stderr)
-        error (exit_on_error ? EXIT_FAILURE : 0, err,
-               _("%s subprocess failed"), progname);
-      if (pipe_stdout)
-        {
-          close (ifd[0]);
-          close (ifd[1]);
-        }
-      if (pipe_stdin)
-        {
-          close (ofd[0]);
-          close (ofd[1]);
-        }
-      errno = err;
-      return -1;
-    }
-  posix_spawn_file_actions_destroy (&actions);
-  if (attrs_allocated)
-    posix_spawnattr_destroy (&attrs);
-  if (slave_process)
-    {
-      register_slave_subprocess (child);
-      unblock_fatal_signals ();
-    }
-  if (pipe_stdin)
-    close (ofd[0]);
-  if (pipe_stdout)
-    close (ifd[1]);
-
-  if (pipe_stdout)
-    fd[0] = ifd[0];
-  if (pipe_stdin)
-    fd[1] = ofd[1];
-  return child;
-
-#endif
-}
-
-/* Open a bidirectional pipe.
- *
- *           write       system                read
- *    parent  ->   fd[1]   ->   STDIN_FILENO    ->   child
- *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
- *           read        system                write
- *
- */
-pid_t
-create_pipe_bidi (const char *progname,
-                  const char *prog_path, char **prog_argv,
-                  bool null_stderr,
-                  bool slave_process, bool exit_on_error,
-                  int fd[2])
-{
-  pid_t result = create_pipe (progname, prog_path, prog_argv,
-                              true, true, NULL, NULL,
-                              null_stderr, slave_process, exit_on_error,
-                              fd);
-  return result;
-}
-
-/* Open a pipe for input from a child process.
- * The child's stdin comes from a file.
- *
- *           read        system                write
- *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
- *
- */
-pid_t
-create_pipe_in (const char *progname,
-                const char *prog_path, char **prog_argv,
-                const char *prog_stdin, bool null_stderr,
-                bool slave_process, bool exit_on_error,
-                int fd[1])
-{
-  int iofd[2];
-  pid_t result = create_pipe (progname, prog_path, prog_argv,
-                              false, true, prog_stdin, NULL,
-                              null_stderr, slave_process, exit_on_error,
-                              iofd);
-  if (result != -1)
-    fd[0] = iofd[0];
-  return result;
-}
-
-/* Open a pipe for output to a child process.
- * The child's stdout goes to a file.
- *
- *           write       system                read
- *    parent  ->   fd[0]   ->   STDIN_FILENO    ->   child
- *
- */
-pid_t
-create_pipe_out (const char *progname,
-                 const char *prog_path, char **prog_argv,
-                 const char *prog_stdout, bool null_stderr,
-                 bool slave_process, bool exit_on_error,
-                 int fd[1])
-{
-  int iofd[2];
-  pid_t result = create_pipe (progname, prog_path, prog_argv,
-                              true, false, NULL, prog_stdout,
-                              null_stderr, slave_process, exit_on_error,
-                              iofd);
-  if (result != -1)
-    fd[0] = iofd[1];
-  return result;
-}
deleted file mode 100644
--- a/lib/pipe.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Creation of subprocesses, communicating via pipes.
-   Copyright (C) 2001-2003, 2006, 2008-2010 Free Software Foundation, Inc.
-   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef _PIPE_H
-#define _PIPE_H
-
-/* Get pid_t.  */
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-#include <stdbool.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* All these functions create a subprocess and don't wait for its termination.
-   They return the process id of the subprocess.  They also return in fd[]
-   one or two file descriptors for communication with the subprocess.
-   If the subprocess creation fails: if exit_on_error is true, the main
-   process exits with an error message; otherwise, an error message is given
-   if null_stderr is false, then -1 is returned, with errno set, and fd[]
-   remain uninitialized.
-
-   After finishing communication, the caller should call wait_subprocess()
-   to get rid of the subprocess in the process table.
-
-   If slave_process is true, the child process will be terminated when its
-   creator receives a catchable fatal signal or exits normally.  If
-   slave_process is false, the child process will continue running in this
-   case, until it is lucky enough to attempt to communicate with its creator
-   and thus get a SIGPIPE signal.
-
-   If exit_on_error is false, a child process id of -1 should be treated the
-   same way as a subprocess which accepts no input, produces no output and
-   terminates with exit code 127.  Why?  Some errors during posix_spawnp()
-   cause the function posix_spawnp() to return an error code; some other
-   errors cause the subprocess to exit with return code 127.  It is
-   implementation dependent which error is reported which way.  The caller
-   must treat both cases as equivalent.
-
-   It is recommended that no signal is blocked or ignored (i.e. have a
-   signal handler with value SIG_IGN) while any of these functions is called.
-   The reason is that child processes inherit the mask of blocked signals
-   from their parent (both through posix_spawn() and fork()/exec());
-   likewise, signals ignored in the parent are also ignored in the child
-   (except possibly for SIGCHLD).  And POSIX:2001 says [in the description
-   of exec()]:
-       "it should be noted that many existing applications wrongly
-        assume that they start with certain signals set to the default
-        action and/or unblocked. In particular, applications written
-        with a simpler signal model that does not include blocking of
-        signals, such as the one in the ISO C standard, may not behave
-        properly if invoked with some signals blocked. Therefore, it is
-        best not to block or ignore signals across execs without explicit
-        reason to do so, and especially not to block signals across execs
-        of arbitrary (not closely co-operating) programs."  */
-
-/* Open a pipe for output to a child process.
- * The child's stdout goes to a file.
- *
- *           write       system                read
- *    parent  ->   fd[0]   ->   STDIN_FILENO    ->   child
- *
- * Note: When writing to a child process, it is useful to ignore the SIGPIPE
- * signal and the EPIPE error code.
- */
-extern pid_t create_pipe_out (const char *progname,
-                              const char *prog_path, char **prog_argv,
-                              const char *prog_stdout, bool null_stderr,
-                              bool slave_process, bool exit_on_error,
-                              int fd[1]);
-
-/* Open a pipe for input from a child process.
- * The child's stdin comes from a file.
- *
- *           read        system                write
- *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
- *
- */
-extern pid_t create_pipe_in (const char *progname,
-                             const char *prog_path, char **prog_argv,
-                             const char *prog_stdin, bool null_stderr,
-                             bool slave_process, bool exit_on_error,
-                             int fd[1]);
-
-/* Open a bidirectional pipe.
- *
- *           write       system                read
- *    parent  ->   fd[1]   ->   STDIN_FILENO    ->   child
- *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
- *           read        system                write
- *
- * Note: When writing to a child process, it is useful to ignore the SIGPIPE
- * signal and the EPIPE error code.
- *
- * Note: The parent process must be careful to avoid deadlock.
- * 1) If you write more than PIPE_MAX bytes or, more generally, if you write
- *    more bytes than the subprocess can handle at once, the subprocess
- *    may write its data and wait on you to read it, but you are currently
- *    busy writing.
- * 2) When you don't know ahead of time how many bytes the subprocess
- *    will produce, the usual technique of calling read (fd, buf, BUFSIZ)
- *    with a fixed BUFSIZ will, on Linux 2.2.17 and on BSD systems, cause
- *    the read() call to block until *all* of the buffer has been filled.
- *    But the subprocess cannot produce more data until you gave it more
- *    input.  But you are currently busy reading from it.
- */
-extern pid_t create_pipe_bidi (const char *progname,
-                               const char *prog_path, char **prog_argv,
-                               bool null_stderr,
-                               bool slave_process, bool exit_on_error,
-                               int fd[2]);
-
-/* The name of the "always silent" device.  */
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-/* Native Woe32 API.  */
-# define DEV_NULL "NUL"
-#else
-/* Unix API.  */
-# define DEV_NULL "/dev/null"
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _PIPE_H */
--- a/lib/printf-parse.c
+++ b/lib/printf-parse.c
@@ -206,6 +206,13 @@
                   dp->flags |= FLAG_ZERO;
                   cp++;
                 }
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+              else if (*cp == 'I')
+                {
+                  dp->flags |= FLAG_LOCALIZED;
+                  cp++;
+                }
+#endif
               else
                 break;
             }
--- a/lib/printf-parse.h
+++ b/lib/printf-parse.h
@@ -23,6 +23,10 @@
      ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
      STATIC             Set to 'static' to declare the function static.  */
 
+#if HAVE_FEATURES_H
+# include <features.h> /* for __GLIBC__, __UCLIBC__ */
+#endif
+
 #include "printf-args.h"
 
 
@@ -33,6 +37,9 @@
 #define FLAG_SPACE       8      /* space flag */
 #define FLAG_ALT        16      /* # flag */
 #define FLAG_ZERO       32
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+# define FLAG_LOCALIZED 64      /* I flag, uses localized digits */
+#endif
 
 /* arg_index value indicating that no argument is consumed.  */
 #define ARG_NONE        (~(size_t)0)
--- a/lib/propername.c
+++ b/lib/propername.c
@@ -198,7 +198,8 @@
       name_converted = alloc_name_converted =
         xstr_iconv (name_utf8, "UTF-8", locale_code);
 
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+      && !defined __UCLIBC__) \
      || _LIBICONV_VERSION >= 0x0105
       {
         char *converted_translit;
--- a/lib/read-file.c
+++ b/lib/read-file.c
@@ -39,12 +39,12 @@
    and set *LENGTH to the length of the string.  The string is
    zero-terminated, but the terminating zero byte is not counted in
    *LENGTH.  On errors, *LENGTH is undefined, errno preserves the
-   values set by system functions (if any), and NULL is returned. */
+   values set by system functions (if any), and NULL is returned.  */
 char *
 fread_file (FILE * stream, size_t * length)
 {
   char *buf = NULL;
-  size_t alloc = 0;
+  size_t alloc = BUFSIZ;
 
   /* For a regular file, allocate a buffer that has exactly the right
      size.  This avoids the need to do dynamic reallocations later.  */
@@ -59,59 +59,31 @@
           {
             off_t alloc_off = st.st_size - pos;
 
-            if (SIZE_MAX <= alloc_off)
+            /* '1' below, accounts for the trailing NUL.  */
+            if (SIZE_MAX - 1 < alloc_off)
               {
                 errno = ENOMEM;
                 return NULL;
               }
 
             alloc = alloc_off + 1;
-
-            buf = malloc (alloc);
-            if (!buf)
-              /* errno is ENOMEM.  */
-              return NULL;
           }
       }
   }
 
+  if (!(buf = malloc (alloc)))
+    return NULL; /* errno is ENOMEM.  */
+
   {
     size_t size = 0; /* number of bytes read so far */
     int save_errno;
 
     for (;;)
       {
-        size_t count;
-        size_t requested;
-
-        if (size + BUFSIZ + 1 > alloc)
-          {
-            char *new_buf;
-            size_t new_alloc = alloc + alloc / 2;
-
-            /* Check against overflow.  */
-            if (new_alloc < alloc)
-              {
-                save_errno = ENOMEM;
-                break;
-              }
-
-            alloc = new_alloc;
-            if (alloc < size + BUFSIZ + 1)
-              alloc = size + BUFSIZ + 1;
-
-            new_buf = realloc (buf, alloc);
-            if (!new_buf)
-              {
-                save_errno = errno;
-                break;
-              }
-
-            buf = new_buf;
-          }
-
-        requested = alloc - size - 1;
-        count = fread (buf + size, 1, requested, stream);
+        /* This reads 1 more than the size of a regular file
+           so that we get eof immediately.  */
+        size_t requested = alloc - size;
+        size_t count = fread (buf + size, 1, requested, stream);
         size += count;
 
         if (count != requested)
@@ -121,7 +93,7 @@
               break;
 
             /* Shrink the allocated memory if possible.  */
-            if (size + 1 < alloc)
+            if (size < alloc - 1)
               {
                 char *smaller_buf = realloc (buf, size + 1);
                 if (smaller_buf != NULL)
@@ -132,6 +104,29 @@
             *length = size;
             return buf;
           }
+
+        {
+          char *new_buf;
+
+          if (alloc == SIZE_MAX)
+            {
+              save_errno = ENOMEM;
+              break;
+            }
+
+          if (alloc < SIZE_MAX - alloc / 2)
+            alloc = alloc + alloc / 2;
+          else
+            alloc = SIZE_MAX;
+
+          if (!(new_buf = realloc (buf, alloc)))
+            {
+              save_errno = errno;
+              break;
+            }
+
+          buf = new_buf;
+        }
       }
 
     free (buf);
--- a/lib/relocatable.c
+++ b/lib/relocatable.c
@@ -344,8 +344,9 @@
 static void
 find_shared_library_fullname ()
 {
-#if defined __linux__ && __GLIBC__ >= 2
-  /* Linux has /proc/self/maps. glibc 2 has the getline() function.  */
+#if defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)
+  /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline()
+     function.  */
   FILE *fp;
 
   /* Open the current process' maps file.  It describes one VMA per line.  */
--- a/lib/sleep.c
+++ b/lib/sleep.c
@@ -1,5 +1,5 @@
 /* Pausing execution of the current thread.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
@@ -50,13 +50,14 @@
 /* Guarantee unlimited sleep and a reasonable return value.  Cygwin
    1.5.x rejects attempts to sleep more than 49.7 days (2**32
    milliseconds), but uses uninitialized memory which results in a
-   garbage answer.  */
+   garbage answer.  Similarly, Linux 2.6.9 with glibc 2.3.4 has a too
+   small return value when asked to sleep more than 24.85 days.  */
 unsigned int
 rpl_sleep (unsigned int seconds)
 {
   /* This requires int larger than 16 bits.  */
-  verify (UINT_MAX / 49 / 24 / 60 / 60);
-  const unsigned int limit = 49 * 24 * 60 * 60;
+  verify (UINT_MAX / 24 / 24 / 60 / 60);
+  const unsigned int limit = 24 * 24 * 60 * 60;
   while (limit < seconds)
     {
       unsigned int result;
new file mode 100644
--- /dev/null
+++ b/lib/spawn-pipe.c
@@ -0,0 +1,450 @@
+/* Creation of subprocesses, communicating via pipes.
+   Copyright (C) 2001-2004, 2006-2010 Free Software Foundation, Inc.
+   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+
+#include <config.h>
+
+/* Specification.  */
+#include "spawn-pipe.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include "error.h"
+#include "fatal-signal.h"
+#include "unistd-safer.h"
+#include "wait-process.h"
+#include "gettext.h"
+
+#define _(str) gettext (str)
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Native Woe32 API.  */
+# include <process.h>
+# include "w32spawn.h"
+
+#else
+
+/* Unix API.  */
+# include <spawn.h>
+
+#endif
+
+/* The results of open() in this file are not used with fchdir,
+   therefore save some unnecessary work in fchdir.c.  */
+#undef open
+#undef close
+
+
+#ifdef EINTR
+
+/* EINTR handling for close().
+   These functions can return -1/EINTR even though we don't have any
+   signal handlers set up, namely when we get interrupted via SIGSTOP.  */
+
+static inline int
+nonintr_close (int fd)
+{
+  int retval;
+
+  do
+    retval = close (fd);
+  while (retval < 0 && errno == EINTR);
+
+  return retval;
+}
+#define close nonintr_close
+
+static inline int
+nonintr_open (const char *pathname, int oflag, mode_t mode)
+{
+  int retval;
+
+  do
+    retval = open (pathname, oflag, mode);
+  while (retval < 0 && errno == EINTR);
+
+  return retval;
+}
+#undef open /* avoid warning on VMS */
+#define open nonintr_open
+
+#endif
+
+
+/* Open a pipe connected to a child process.
+ *
+ *           write       system                read
+ *    parent  ->   fd[1]   ->   STDIN_FILENO    ->   child       if pipe_stdin
+ *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child       if pipe_stdout
+ *           read        system                write
+ *
+ * At least one of pipe_stdin, pipe_stdout must be true.
+ * pipe_stdin and prog_stdin together determine the child's standard input.
+ * pipe_stdout and prog_stdout together determine the child's standard output.
+ * If pipe_stdin is true, prog_stdin is ignored.
+ * If pipe_stdout is true, prog_stdout is ignored.
+ */
+static pid_t
+create_pipe (const char *progname,
+             const char *prog_path, char **prog_argv,
+             bool pipe_stdin, bool pipe_stdout,
+             const char *prog_stdin, const char *prog_stdout,
+             bool null_stderr,
+             bool slave_process, bool exit_on_error,
+             int fd[2])
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+  /* Native Woe32 API.
+     This uses _pipe(), dup2(), and spawnv().  It could also be implemented
+     using the low-level functions CreatePipe(), DuplicateHandle(),
+     CreateProcess() and _open_osfhandle(); see the GNU make and GNU clisp
+     and cvs source code.  */
+  int ifd[2];
+  int ofd[2];
+  int orig_stdin;
+  int orig_stdout;
+  int orig_stderr;
+  int child;
+  int nulloutfd;
+  int stdinfd;
+  int stdoutfd;
+  int saved_errno;
+
+  /* FIXME: Need to free memory allocated by prepare_spawn.  */
+  prog_argv = prepare_spawn (prog_argv);
+
+  if (pipe_stdout)
+    if (pipe2_safer (ifd, O_BINARY | O_CLOEXEC) < 0)
+      error (EXIT_FAILURE, errno, _("cannot create pipe"));
+  if (pipe_stdin)
+    if (pipe2_safer (ofd, O_BINARY | O_CLOEXEC) < 0)
+      error (EXIT_FAILURE, errno, _("cannot create pipe"));
+/* Data flow diagram:
+ *
+ *           write        system         read
+ *    parent  ->   ofd[1]   ->   ofd[0]   ->   child       if pipe_stdin
+ *    parent  <-   ifd[0]   <-   ifd[1]   <-   child       if pipe_stdout
+ *           read         system         write
+ *
+ */
+
+  /* Save standard file handles of parent process.  */
+  if (pipe_stdin || prog_stdin != NULL)
+    orig_stdin = dup_safer_noinherit (STDIN_FILENO);
+  if (pipe_stdout || prog_stdout != NULL)
+    orig_stdout = dup_safer_noinherit (STDOUT_FILENO);
+  if (null_stderr)
+    orig_stderr = dup_safer_noinherit (STDERR_FILENO);
+  child = -1;
+
+  /* Create standard file handles of child process.  */
+  nulloutfd = -1;
+  stdinfd = -1;
+  stdoutfd = -1;
+  if ((!pipe_stdin || dup2 (ofd[0], STDIN_FILENO) >= 0)
+      && (!pipe_stdout || dup2 (ifd[1], STDOUT_FILENO) >= 0)
+      && (!null_stderr
+          || ((nulloutfd = open ("NUL", O_RDWR, 0)) >= 0
+              && (nulloutfd == STDERR_FILENO
+                  || (dup2 (nulloutfd, STDERR_FILENO) >= 0
+                      && close (nulloutfd) >= 0))))
+      && (pipe_stdin
+          || prog_stdin == NULL
+          || ((stdinfd = open (prog_stdin, O_RDONLY, 0)) >= 0
+              && (stdinfd == STDIN_FILENO
+                  || (dup2 (stdinfd, STDIN_FILENO) >= 0
+                      && close (stdinfd) >= 0))))
+      && (pipe_stdout
+          || prog_stdout == NULL
+          || ((stdoutfd = open (prog_stdout, O_WRONLY, 0)) >= 0
+              && (stdoutfd == STDOUT_FILENO
+                  || (dup2 (stdoutfd, STDOUT_FILENO) >= 0
+                      && close (stdoutfd) >= 0)))))
+    /* The child process doesn't inherit ifd[0], ifd[1], ofd[0], ofd[1],
+       but it inherits all open()ed or dup2()ed file handles (which is what
+       we want in the case of STD*_FILENO).  */
+    /* Use spawnvpe and pass the environment explicitly.  This is needed if
+       the program has modified the environment using putenv() or [un]setenv().
+       On Windows, programs have two environments, one in the "environment
+       block" of the process and managed through SetEnvironmentVariable(), and
+       one inside the process, in the location retrieved by the 'environ'
+       macro.  When using spawnvp() without 'e', the child process inherits a
+       copy of the environment block - ignoring the effects of putenv() and
+       [un]setenv().  */
+    {
+      child = spawnvpe (P_NOWAIT, prog_path, (const char **) prog_argv,
+                        (const char **) environ);
+      if (child < 0 && errno == ENOEXEC)
+        {
+          /* prog is not an native executable.  Try to execute it as a
+             shell script.  Note that prepare_spawn() has already prepended
+             a hidden element "sh.exe" to prog_argv.  */
+          --prog_argv;
+          child = spawnvpe (P_NOWAIT, prog_argv[0], (const char **) prog_argv,
+                            (const char **) environ);
+        }
+    }
+  if (child == -1)
+    saved_errno = errno;
+  if (stdinfd >= 0)
+    close (stdinfd);
+  if (stdoutfd >= 0)
+    close (stdoutfd);
+  if (nulloutfd >= 0)
+    close (nulloutfd);
+
+  /* Restore standard file handles of parent process.  */
+  if (null_stderr)
+    undup_safer_noinherit (orig_stderr, STDERR_FILENO);
+  if (pipe_stdout || prog_stdout != NULL)
+    undup_safer_noinherit (orig_stdout, STDOUT_FILENO);
+  if (pipe_stdin || prog_stdin != NULL)
+    undup_safer_noinherit (orig_stdin, STDIN_FILENO);
+
+  if (pipe_stdin)
+    close (ofd[0]);
+  if (pipe_stdout)
+    close (ifd[1]);
+  if (child == -1)
+    {
+      if (exit_on_error || !null_stderr)
+        error (exit_on_error ? EXIT_FAILURE : 0, saved_errno,
+               _("%s subprocess failed"), progname);
+      if (pipe_stdout)
+        close (ifd[0]);
+      if (pipe_stdin)
+        close (ofd[1]);
+      errno = saved_errno;
+      return -1;
+    }
+
+  if (pipe_stdout)
+    fd[0] = ifd[0];
+  if (pipe_stdin)
+    fd[1] = ofd[1];
+  return child;
+
+#else
+
+  /* Unix API.  */
+  int ifd[2];
+  int ofd[2];
+  sigset_t blocked_signals;
+  posix_spawn_file_actions_t actions;
+  bool actions_allocated;
+  posix_spawnattr_t attrs;
+  bool attrs_allocated;
+  int err;
+  pid_t child;
+
+  if (pipe_stdout)
+    if (pipe_safer (ifd) < 0)
+      error (EXIT_FAILURE, errno, _("cannot create pipe"));
+  if (pipe_stdin)
+    if (pipe_safer (ofd) < 0)
+      error (EXIT_FAILURE, errno, _("cannot create pipe"));
+/* Data flow diagram:
+ *
+ *           write        system         read
+ *    parent  ->   ofd[1]   ->   ofd[0]   ->   child       if pipe_stdin
+ *    parent  <-   ifd[0]   <-   ifd[1]   <-   child       if pipe_stdout
+ *           read         system         write
+ *
+ */
+
+  if (slave_process)
+    {
+      sigprocmask (SIG_SETMASK, NULL, &blocked_signals);
+      block_fatal_signals ();
+    }
+  actions_allocated = false;
+  attrs_allocated = false;
+  if ((err = posix_spawn_file_actions_init (&actions)) != 0
+      || (actions_allocated = true,
+          (pipe_stdin
+           && (err = posix_spawn_file_actions_adddup2 (&actions,
+                                                       ofd[0], STDIN_FILENO))
+              != 0)
+          || (pipe_stdout
+              && (err = posix_spawn_file_actions_adddup2 (&actions,
+                                                          ifd[1], STDOUT_FILENO))
+                 != 0)
+          || (pipe_stdin
+              && (err = posix_spawn_file_actions_addclose (&actions, ofd[0]))
+                 != 0)
+          || (pipe_stdout
+              && (err = posix_spawn_file_actions_addclose (&actions, ifd[1]))
+                 != 0)
+          || (pipe_stdin
+              && (err = posix_spawn_file_actions_addclose (&actions, ofd[1]))
+                 != 0)
+          || (pipe_stdout
+              && (err = posix_spawn_file_actions_addclose (&actions, ifd[0]))
+                 != 0)
+          || (null_stderr
+              && (err = posix_spawn_file_actions_addopen (&actions,
+                                                          STDERR_FILENO,
+                                                          "/dev/null", O_RDWR,
+                                                          0))
+                 != 0)
+          || (!pipe_stdin
+              && prog_stdin != NULL
+              && (err = posix_spawn_file_actions_addopen (&actions,
+                                                          STDIN_FILENO,
+                                                          prog_stdin, O_RDONLY,
+                                                          0))
+                 != 0)
+          || (!pipe_stdout
+              && prog_stdout != NULL
+              && (err = posix_spawn_file_actions_addopen (&actions,
+                                                          STDOUT_FILENO,
+                                                          prog_stdout, O_WRONLY,
+                                                          0))
+                 != 0)
+          || (slave_process
+              && ((err = posix_spawnattr_init (&attrs)) != 0
+                  || (attrs_allocated = true,
+                      (err = posix_spawnattr_setsigmask (&attrs,
+                                                         &blocked_signals))
+                      != 0
+                      || (err = posix_spawnattr_setflags (&attrs,
+                                                        POSIX_SPAWN_SETSIGMASK))
+                         != 0)))
+          || (err = posix_spawnp (&child, prog_path, &actions,
+                                  attrs_allocated ? &attrs : NULL, prog_argv,
+                                  environ))
+             != 0))
+    {
+      if (actions_allocated)
+        posix_spawn_file_actions_destroy (&actions);
+      if (attrs_allocated)
+        posix_spawnattr_destroy (&attrs);
+      if (slave_process)
+        unblock_fatal_signals ();
+      if (exit_on_error || !null_stderr)
+        error (exit_on_error ? EXIT_FAILURE : 0, err,
+               _("%s subprocess failed"), progname);
+      if (pipe_stdout)
+        {
+          close (ifd[0]);
+          close (ifd[1]);
+        }
+      if (pipe_stdin)
+        {
+          close (ofd[0]);
+          close (ofd[1]);
+        }
+      errno = err;
+      return -1;
+    }
+  posix_spawn_file_actions_destroy (&actions);
+  if (attrs_allocated)
+    posix_spawnattr_destroy (&attrs);
+  if (slave_process)
+    {
+      register_slave_subprocess (child);
+      unblock_fatal_signals ();
+    }
+  if (pipe_stdin)
+    close (ofd[0]);
+  if (pipe_stdout)
+    close (ifd[1]);
+
+  if (pipe_stdout)
+    fd[0] = ifd[0];
+  if (pipe_stdin)
+    fd[1] = ofd[1];
+  return child;
+
+#endif
+}
+
+/* Open a bidirectional pipe.
+ *
+ *           write       system                read
+ *    parent  ->   fd[1]   ->   STDIN_FILENO    ->   child
+ *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
+ *           read        system                write
+ *
+ */
+pid_t
+create_pipe_bidi (const char *progname,
+                  const char *prog_path, char **prog_argv,
+                  bool null_stderr,
+                  bool slave_process, bool exit_on_error,
+                  int fd[2])
+{
+  pid_t result = create_pipe (progname, prog_path, prog_argv,
+                              true, true, NULL, NULL,
+                              null_stderr, slave_process, exit_on_error,
+                              fd);
+  return result;
+}
+
+/* Open a pipe for input from a child process.
+ * The child's stdin comes from a file.
+ *
+ *           read        system                write
+ *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
+ *
+ */
+pid_t
+create_pipe_in (const char *progname,
+                const char *prog_path, char **prog_argv,
+                const char *prog_stdin, bool null_stderr,
+                bool slave_process, bool exit_on_error,
+                int fd[1])
+{
+  int iofd[2];
+  pid_t result = create_pipe (progname, prog_path, prog_argv,
+                              false, true, prog_stdin, NULL,
+                              null_stderr, slave_process, exit_on_error,
+                              iofd);
+  if (result != -1)
+    fd[0] = iofd[0];
+  return result;
+}
+
+/* Open a pipe for output to a child process.
+ * The child's stdout goes to a file.
+ *
+ *           write       system                read
+ *    parent  ->   fd[0]   ->   STDIN_FILENO    ->   child
+ *
+ */
+pid_t
+create_pipe_out (const char *progname,
+                 const char *prog_path, char **prog_argv,
+                 const char *prog_stdout, bool null_stderr,
+                 bool slave_process, bool exit_on_error,
+                 int fd[1])
+{
+  int iofd[2];
+  pid_t result = create_pipe (progname, prog_path, prog_argv,
+                              true, false, NULL, prog_stdout,
+                              null_stderr, slave_process, exit_on_error,
+                              iofd);
+  if (result != -1)
+    fd[0] = iofd[1];
+  return result;
+}
new file mode 100644
--- /dev/null
+++ b/lib/spawn-pipe.h
@@ -0,0 +1,147 @@
+/* Creation of subprocesses, communicating via pipes.
+   Copyright (C) 2001-2003, 2006, 2008-2010 Free Software Foundation, Inc.
+   Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _SPAWN_PIPE_H
+#define _SPAWN_PIPE_H
+
+/* Get pid_t.  */
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <stdbool.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* All these functions create a subprocess and don't wait for its termination.
+   They return the process id of the subprocess.  They also return in fd[]
+   one or two file descriptors for communication with the subprocess.
+   If the subprocess creation fails: if exit_on_error is true, the main
+   process exits with an error message; otherwise, an error message is given
+   if null_stderr is false, then -1 is returned, with errno set, and fd[]
+   remain uninitialized.
+
+   After finishing communication, the caller should call wait_subprocess()
+   to get rid of the subprocess in the process table.
+
+   If slave_process is true, the child process will be terminated when its
+   creator receives a catchable fatal signal or exits normally.  If
+   slave_process is false, the child process will continue running in this
+   case, until it is lucky enough to attempt to communicate with its creator
+   and thus get a SIGPIPE signal.
+
+   If exit_on_error is false, a child process id of -1 should be treated the
+   same way as a subprocess which accepts no input, produces no output and
+   terminates with exit code 127.  Why?  Some errors during posix_spawnp()
+   cause the function posix_spawnp() to return an error code; some other
+   errors cause the subprocess to exit with return code 127.  It is
+   implementation dependent which error is reported which way.  The caller
+   must treat both cases as equivalent.
+
+   It is recommended that no signal is blocked or ignored (i.e. have a
+   signal handler with value SIG_IGN) while any of these functions is called.
+   The reason is that child processes inherit the mask of blocked signals
+   from their parent (both through posix_spawn() and fork()/exec());
+   likewise, signals ignored in the parent are also ignored in the child
+   (except possibly for SIGCHLD).  And POSIX:2001 says [in the description
+   of exec()]:
+       "it should be noted that many existing applications wrongly
+        assume that they start with certain signals set to the default
+        action and/or unblocked. In particular, applications written
+        with a simpler signal model that does not include blocking of
+        signals, such as the one in the ISO C standard, may not behave
+        properly if invoked with some signals blocked. Therefore, it is
+        best not to block or ignore signals across execs without explicit
+        reason to do so, and especially not to block signals across execs
+        of arbitrary (not closely co-operating) programs."  */
+
+/* Open a pipe for output to a child process.
+ * The child's stdout goes to a file.
+ *
+ *           write       system                read
+ *    parent  ->   fd[0]   ->   STDIN_FILENO    ->   child
+ *
+ * Note: When writing to a child process, it is useful to ignore the SIGPIPE
+ * signal and the EPIPE error code.
+ */
+extern pid_t create_pipe_out (const char *progname,
+                              const char *prog_path, char **prog_argv,
+                              const char *prog_stdout, bool null_stderr,
+                              bool slave_process, bool exit_on_error,
+                              int fd[1]);
+
+/* Open a pipe for input from a child process.
+ * The child's stdin comes from a file.
+ *
+ *           read        system                write
+ *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
+ *
+ */
+extern pid_t create_pipe_in (const char *progname,
+                             const char *prog_path, char **prog_argv,
+                             const char *prog_stdin, bool null_stderr,
+                             bool slave_process, bool exit_on_error,
+                             int fd[1]);
+
+/* Open a bidirectional pipe.
+ *
+ *           write       system                read
+ *    parent  ->   fd[1]   ->   STDIN_FILENO    ->   child
+ *    parent  <-   fd[0]   <-   STDOUT_FILENO   <-   child
+ *           read        system                write
+ *
+ * Note: When writing to a child process, it is useful to ignore the SIGPIPE
+ * signal and the EPIPE error code.
+ *
+ * Note: The parent process must be careful to avoid deadlock.
+ * 1) If you write more than PIPE_MAX bytes or, more generally, if you write
+ *    more bytes than the subprocess can handle at once, the subprocess
+ *    may write its data and wait on you to read it, but you are currently
+ *    busy writing.
+ * 2) When you don't know ahead of time how many bytes the subprocess
+ *    will produce, the usual technique of calling read (fd, buf, BUFSIZ)
+ *    with a fixed BUFSIZ will, on Linux 2.2.17 and on BSD systems, cause
+ *    the read() call to block until *all* of the buffer has been filled.
+ *    But the subprocess cannot produce more data until you gave it more
+ *    input.  But you are currently busy reading from it.
+ */
+extern pid_t create_pipe_bidi (const char *progname,
+                               const char *prog_path, char **prog_argv,
+                               bool null_stderr,
+                               bool slave_process, bool exit_on_error,
+                               int fd[2]);
+
+/* The name of the "always silent" device.  */
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Native Woe32 API.  */
+# define DEV_NULL "NUL"
+#else
+/* Unix API.  */
+# define DEV_NULL "/dev/null"
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _SPAWN_PIPE_H */
--- a/lib/spawn.in.h
+++ b/lib/spawn.in.h
@@ -32,7 +32,7 @@
 
 /* Get definitions of 'struct sched_param' and 'sigset_t'.
    But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <sched.h>
 # include <signal.h>
 #endif
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -134,40 +134,53 @@
 #define int32_t gl_int32_t
 #define uint32_t gl_uint32_t
 
+/* If the system defines INT64_MAX, assume int64_t works.  That way,
+   if the underlying platform defines int64_t to be a 64-bit long long
+   int, the code below won't mistakenly define it to be a 64-bit long
+   int, which would mess up C++ name mangling.  */
+
+#if INT64_MAX
+# define GL_INT64_T
+#else
 /* Do not undefine int64_t if gnulib is not being used with 64-bit
    types, since otherwise it breaks platforms like Tandem/NSK.  */
-#if LONG_MAX >> 31 >> 31 == 1
-# undef int64_t
+# if LONG_MAX >> 31 >> 31 == 1
+#  undef int64_t
 typedef long int gl_int64_t;
-# define int64_t gl_int64_t
-# define GL_INT64_T
-#elif defined _MSC_VER
-# undef int64_t
+#  define int64_t gl_int64_t
+#  define GL_INT64_T
+# elif defined _MSC_VER
+#  undef int64_t
 typedef __int64 gl_int64_t;
-# define int64_t gl_int64_t
-# define GL_INT64_T
-#elif @HAVE_LONG_LONG_INT@
-# undef int64_t
+#  define int64_t gl_int64_t
+#  define GL_INT64_T
+# elif @HAVE_LONG_LONG_INT@
+#  undef int64_t
 typedef long long int gl_int64_t;
-# define int64_t gl_int64_t
-# define GL_INT64_T
+#  define int64_t gl_int64_t
+#  define GL_INT64_T
+# endif
 #endif
 
-#if ULONG_MAX >> 31 >> 31 >> 1 == 1
-# undef uint64_t
+#if UINT64_MAX
+# define GL_UINT64_T
+#else
+# if ULONG_MAX >> 31 >> 31 >> 1 == 1
+#  undef uint64_t
 typedef unsigned long int gl_uint64_t;
-# define uint64_t gl_uint64_t
-# define GL_UINT64_T
-#elif defined _MSC_VER
-# undef uint64_t
+#  define uint64_t gl_uint64_t
+#  define GL_UINT64_T
+# elif defined _MSC_VER
+#  undef uint64_t
 typedef unsigned __int64 gl_uint64_t;
-# define uint64_t gl_uint64_t
-# define GL_UINT64_T
-#elif @HAVE_UNSIGNED_LONG_LONG_INT@
-# undef uint64_t
+#  define uint64_t gl_uint64_t
+#  define GL_UINT64_T
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@
+#  undef uint64_t
 typedef unsigned long long int gl_uint64_t;
-# define uint64_t gl_uint64_t
-# define GL_UINT64_T
+#  define uint64_t gl_uint64_t
+#  define GL_UINT64_T
+# endif
 #endif
 
 /* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
@@ -312,17 +325,14 @@
 #define INT32_MAX  2147483647
 #define UINT32_MAX  4294967295U
 
-#undef INT64_MIN
-#undef INT64_MAX
-#ifdef GL_INT64_T
+#if defined GL_INT64_T && ! defined INT64_MAX
 /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
    evaluates the latter incorrectly in preprocessor expressions.  */
 # define INT64_MIN  (- INTMAX_C (1) << 63)
 # define INT64_MAX  INTMAX_C (9223372036854775807)
 #endif
 
-#undef UINT64_MAX
-#ifdef GL_UINT64_T
+#if defined GL_UINT64_T && ! defined UINT64_MAX
 # define UINT64_MAX  UINTMAX_C (18446744073709551615)
 #endif
 
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -57,6 +57,13 @@
 # endif
 #endif
 
+/* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \
+    && ! defined __GLIBC__
+# include <unistd.h>
+#endif
+
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
new file mode 100644
--- /dev/null
+++ b/lib/strerror_r.c
@@ -0,0 +1,138 @@
+/* strerror_r.c --- POSIX compatible system error routine
+
+   Copyright (C) 2010 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <string.h>
+
+#include <errno.h>
+
+#if HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__) && !EXTEND_STRERROR_R
+
+/* The system's strerror_r function is OK, except that its third argument
+   is 'int', not 'size_t'.  */
+
+# include <limits.h>
+
+int
+strerror_r (int errnum, char *buf, size_t buflen)
+# undef strerror_r
+{
+  int ret;
+
+  if (buflen > INT_MAX)
+    buflen = INT_MAX;
+
+# ifdef __hpux
+  /* On HP-UX 11.31, strerror_r always fails when buflen < 80.  */
+  {
+    char stackbuf[80];
+
+    if (buflen < sizeof (stackbuf))
+      {
+        ret = strerror_r (errnum, stackbuf, sizeof (stackbuf));
+        if (ret == 0)
+          {
+            size_t len = strlen (stackbuf);
+
+            if (len < buflen)
+              memcpy (buf, stackbuf, len + 1);
+            else
+              ret = ERANGE;
+          }
+      }
+    else
+      ret = strerror_r (errnum, buf, buflen);
+  }
+# else
+  ret = strerror_r (errnum, buf, buflen);
+# endif
+
+# ifdef _AIX
+  /* On AIX 6.1, strerror_r returns -1 and sets errno to EINVAL
+     if buflen <= 1.  */
+  if (ret < 0 && errno == EINVAL && buflen <= 1)
+    {
+      /* Retry with a larger buffer.  */
+      char largerbuf[10];
+      ret = strerror_r (errnum, largerbuf, sizeof (largerbuf));
+      if (ret < 0 && errno == EINVAL)
+        {
+          /* errnum was out of range.  */
+          return EINVAL;
+        }
+      else
+        {
+          /* buf was too small.  */
+          return ERANGE;
+        }
+    }
+# endif
+
+  /* Some old implementations may return (-1, EINVAL) instead of EINVAL.  */
+  return (ret < 0 ? errno : ret);
+}
+
+#elif (__GLIBC__ >= 2 || defined __UCLIBC__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4 */ && !EXTEND_STRERROR_R
+
+int
+strerror_r (int errnum, char *buf, size_t buflen)
+{
+  extern int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+
+  int ret = __xpg_strerror_r (errnum, buf, buflen);
+  return (ret < 0 ? errno : 0);
+}
+
+#else /* (__GLIBC__ >= 2 || defined __UCLIBC__ ? !HAVE___XPG_STRERROR_R : !HAVE_DECL_STRERROR_R) || EXTEND_STRERROR_R */
+
+# include "glthread/lock.h"
+
+/* Use strerror(), with locking.  */
+
+/* This lock protects the buffer returned by strerror().  We assume that
+   no other uses of strerror() exist in the program.  */
+gl_lock_define_initialized(static, strerror_lock)
+
+int
+strerror_r (int errnum, char *buf, size_t buflen)
+{
+  gl_lock_lock (strerror_lock);
+
+  {
+    char *errmsg = strerror (errnum);
+    size_t len = strlen (errmsg);
+    int ret;
+
+    if (len < buflen)
+      {
+        memcpy (buf, errmsg, len + 1);
+        ret = 0;
+      }
+    else
+      ret = ERANGE;
+
+    gl_lock_unlock (strerror_lock);
+
+    return ret;
+  }
+}
+
+#endif
--- a/lib/striconv.c
+++ b/lib/striconv.c
@@ -1,5 +1,5 @@
 /* Charset conversion.
-   Copyright (C) 2001-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2007, 2010 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
@@ -50,7 +50,8 @@
 
   /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
   /* Set to the initial state.  */
   iconv (cd, NULL, NULL, NULL, NULL);
 # endif
@@ -82,7 +83,7 @@
             else
               return -1;
           }
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
         /* Irix iconv() inserts a NUL byte if it cannot convert.
            NetBSD iconv() inserts a question mark if it cannot convert.
            Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -97,7 +98,8 @@
       }
     /* Avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     {
       char *outptr = tmpbuf;
       size_t outsize = tmpbufsize;
@@ -131,7 +133,8 @@
 
   /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
   /* Return to the initial state.  */
   iconv (cd, NULL, NULL, NULL, NULL);
 # endif
@@ -156,7 +159,7 @@
             else
               goto fail;
           }
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
         /* Irix iconv() inserts a NUL byte if it cannot convert.
            NetBSD iconv() inserts a question mark if it cannot convert.
            Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -170,7 +173,8 @@
       }
     /* Avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     {
       size_t res = iconv (cd, NULL, NULL, &outptr, &outsize);
 
@@ -207,7 +211,7 @@
      to a trailing NUL byte in the output.  But not for UTF-7.  So that this
      function is usable for UTF-7, we have to exclude the NUL byte from the
      conversion and add it by hand afterwards.  */
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
   /* Irix iconv() inserts a NUL byte if it cannot convert.
      NetBSD iconv() inserts a question mark if it cannot convert.
      Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -272,7 +276,8 @@
 
   /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
   /* Set to the initial state.  */
   iconv (cd, NULL, NULL, NULL, NULL);
 # endif
@@ -324,7 +329,8 @@
       }
     /* Avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     for (;;)
       {
         /* Here outptr + outbytes_remaining = result + result_size - 1.  */
@@ -410,7 +416,8 @@
       char *result;
 
       /* Avoid glibc-2.1 bug with EUC-KR.  */
-# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+     && !defined _LIBICONV_VERSION
       if (c_strcasecmp (from_codeset, "EUC-KR") == 0
           || c_strcasecmp (to_codeset, "EUC-KR") == 0)
         {
--- a/lib/striconveh.c
+++ b/lib/striconveh.c
@@ -52,7 +52,8 @@
   iconv_t cd2;
 
   /* Avoid glibc-2.1 bug with EUC-KR.  */
-# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+     && !defined _LIBICONV_VERSION
   if (c_strcasecmp (from_codeset, "EUC-KR") == 0
       || c_strcasecmp (to_codeset, "EUC-KR") == 0)
     {
@@ -79,7 +80,9 @@
     }
 
   if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+      && !defined __UCLIBC__) \
+     || _LIBICONV_VERSION >= 0x0105
       || c_strcasecmp (to_codeset, "UTF-8//TRANSLIT") == 0
 # endif
      )
@@ -136,7 +139,7 @@
 /* iconv_carefully is like iconv, except that it stops as soon as it encounters
    a conversion error, and it returns in *INCREMENTED a boolean telling whether
    it has incremented the input pointers past the error location.  */
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
 /* Irix iconv() inserts a NUL byte if it cannot convert.
    NetBSD iconv() inserts a question mark if it cannot convert.
    Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -244,7 +247,7 @@
 
   *inbuf = inptr;
   *inbytesleft = inptr_end - inptr;
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
   /* Irix iconv() inserts a NUL byte if it cannot convert.
      NetBSD iconv() inserts a question mark if it cannot convert.
      Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -403,7 +406,8 @@
 
     /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     /* Set to the initial state.  */
     iconv (cd, NULL, NULL, NULL, NULL);
 # endif
@@ -531,7 +535,8 @@
   /* Now get the conversion state back to the initial state.
      But avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 #if defined _LIBICONV_VERSION \
-    || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+    || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+         || defined __sun)
   for (;;)
     {
       char *outptr = result + length;
@@ -606,7 +611,8 @@
 
     /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     /* Set to the initial state.  */
     if (cd1 != (iconv_t)(-1))
       iconv (cd1, NULL, NULL, NULL, NULL);
@@ -658,7 +664,8 @@
             /* Now get the conversion state of CD1 back to the initial state.
                But avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
             if (cd1 != (iconv_t)(-1))
               res1 = iconv (cd1, NULL, NULL, &out1ptr, &out1size);
             else
@@ -740,7 +747,8 @@
                     /* Now get the conversion state of CD1 back to the initial
                        state.  But avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
                     if (cd2 != (iconv_t)(-1))
                       res2 = iconv (cd2, NULL, NULL, &out2ptr, &out2size);
                     else
@@ -883,7 +891,7 @@
                               }
                             length = out2ptr - result;
                           }
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
                         /* Irix iconv() inserts a NUL byte if it cannot convert.
                            NetBSD iconv() inserts a question mark if it cannot
                            convert.
--- a/lib/striconveha.c
+++ b/lib/striconveha.c
@@ -1,5 +1,5 @@
 /* Character set conversion with error handling and autodetection.
-   Copyright (C) 2002, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 2007, 2009-2010 Free Software Foundation, Inc.
    Written by Bruno Haible.
 
    This program is free software: you can redistribute it and/or modify
@@ -226,7 +226,9 @@
 
   /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
      we want to use transliteration.  */
-#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+#if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+     && !defined __UCLIBC__) \
+    || _LIBICONV_VERSION >= 0x0105
   if (transliterate)
     {
       int retval;
@@ -326,7 +328,9 @@
 
   /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
      we want to use transliteration.  */
-#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+#if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+     && !defined __UCLIBC__) \
+    || _LIBICONV_VERSION >= 0x0105
   if (transliterate)
     {
       char *result;
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -87,7 +87,7 @@
                         void *, (void const *__s, int __c, size_t __n),
                         void const *, (void const *__s, int __c, size_t __n));
 # endif
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n));
 _GL_CXXALIASWARN1 (memchr, void const *,
@@ -172,7 +172,7 @@
 _GL_CXXALIAS_SYS_CAST2 (memrchr,
                         void *, (void const *, int, size_t),
                         void const *, (void const *, int, size_t));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t));
 _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t));
@@ -202,7 +202,7 @@
 _GL_CXXALIAS_SYS_CAST2 (rawmemchr,
                         void *, (void const *__s, int __c_in),
                         void const *, (void const *__s, int __c_in));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in));
 _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in));
@@ -293,7 +293,7 @@
 _GL_CXXALIAS_SYS_CAST2 (strchrnul,
                         char *, (char const *__s, int __c_in),
                         char const *, (char const *__s, int __c_in));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in));
 _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in));
@@ -439,7 +439,7 @@
 _GL_CXXALIAS_SYS_CAST2 (strpbrk,
                         char *, (char const *__s, char const *__accept),
                         const char *, (char const *__s, char const *__accept));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept));
 _GL_CXXALIASWARN1 (strpbrk, char const *,
@@ -541,7 +541,7 @@
                         char *, (const char *haystack, const char *needle),
                         const char *, (const char *haystack, const char *needle));
 # endif
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle));
 _GL_CXXALIASWARN1 (strstr, const char *,
@@ -590,7 +590,7 @@
                         char *, (const char *haystack, const char *needle),
                         const char *, (const char *haystack, const char *needle));
 # endif
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle));
 _GL_CXXALIASWARN1 (strcasestr, const char *,
@@ -902,6 +902,35 @@
                  "use gnulib module strerror to guarantee non-NULL result");
 #endif
 
+/* Map any int, typically from errno, into an error message.  Multithread-safe.
+   Uses the POSIX declaration, not the glibc declaration.  */
+#if @GNULIB_STRERROR_R@
+# if @REPLACE_STRERROR_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef strerror_r
+#   define strerror_r rpl_strerror_r
+#  endif
+_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)
+                                   _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen));
+# else
+#  if !@HAVE_DECL_STRERROR_R@
+_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)
+                                   _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
+# endif
+# if @HAVE_DECL_STRERROR_R@
+_GL_CXXALIASWARN (strerror_r);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strerror_r
+# if HAVE_RAW_DECL_STRERROR_R
+_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - "
+                 "use gnulib module strerror_r-posix for portability");
+# endif
+#endif
+
 #if @GNULIB_STRSIGNAL@
 # if @REPLACE_STRSIGNAL@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
--- a/lib/strtod.c
+++ b/lib/strtod.c
@@ -190,6 +190,21 @@
 
 static double underlying_strtod (const char *, char **);
 
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on MacOS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zero (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+double minus_zero = -0.0;
+#endif
+
 /* Convert NPTR to a double.  If ENDPTR is not NULL, a pointer to the
    character after the last one used in the number is put in *ENDPTR.  */
 double
@@ -320,6 +335,10 @@
 
   if (endptr != NULL)
     *endptr = (char *) s;
+  /* Special case -0.0, since at least ICC miscompiles negation.  We
+     can't use copysign(), as that drags in -lm on some platforms.  */
+  if (!num && negative)
+    return minus_zero;
   return negative ? -num : num;
 }
 
--- a/lib/sys_socket.in.h
+++ b/lib/sys_socket.in.h
@@ -70,7 +70,14 @@
 typedef unsigned short  sa_family_t;
 #endif
 
-#if !@HAVE_STRUCT_SOCKADDR_STORAGE@
+#if @HAVE_STRUCT_SOCKADDR_STORAGE@
+/* Make the 'struct sockaddr_storage' field 'ss_family' visible on AIX 7.1.  */
+# if !@HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
+#  ifndef ss_family
+#   define ss_family __ss_family
+#  endif
+# endif
+#else
 # include <alignof.h>
 /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on
    2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */
--- a/lib/termios.in.h
+++ b/lib/termios.in.h
@@ -23,7 +23,9 @@
 @PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
-#@INCLUDE_NEXT@ @NEXT_TERMIOS_H@
+#if @HAVE_TERMIOS_H@
+# @INCLUDE_NEXT@ @NEXT_TERMIOS_H@
+#endif
 
 #ifndef _GL_TERMIOS_H
 #define _GL_TERMIOS_H
--- a/lib/uinttostr.c
+++ b/lib/uinttostr.c
@@ -1,4 +1,3 @@
 #define anytostr uinttostr
 #define inttype unsigned int
-#define inttype_is_signed 0
 #include "anytostr.c"
--- a/lib/umaxtostr.c
+++ b/lib/umaxtostr.c
@@ -1,4 +1,3 @@
 #define anytostr umaxtostr
 #define inttype uintmax_t
-#define inttype_is_signed 0
 #include "anytostr.c"
--- a/lib/unicodeio.c
+++ b/lib/unicodeio.c
@@ -140,7 +140,9 @@
 
       /* Avoid glibc-2.1 bug and Solaris 7 bug.  */
 # if defined _LIBICONV_VERSION \
-    || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+    || !(((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) \
+          && !defined __UCLIBC__) \
+         || defined __sun)
 
       /* Get back to the initial shift state.  */
       res = iconv (utf8_to_local, NULL, NULL, &outptr, &outbytesleft);
--- a/lib/uniconv/u16-conv-from-enc.c
+++ b/lib/uniconv/u16-conv-from-enc.c
@@ -28,7 +28,7 @@
 #include "unistr.h"
 
 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
-#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
 # ifdef WORDS_BIGENDIAN
 #  define UTF16_NAME "UTF-16BE"
 # else
--- a/lib/uniconv/u16-conv-to-enc.c
+++ b/lib/uniconv/u16-conv-to-enc.c
@@ -31,7 +31,7 @@
 #define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
 
 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
-#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
 # ifdef WORDS_BIGENDIAN
 #  define UTF16_NAME "UTF-16BE"
 # else
--- a/lib/uniconv/u16-strconv-to-enc.c
+++ b/lib/uniconv/u16-strconv-to-enc.c
@@ -31,7 +31,7 @@
 #define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
 
 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
-#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
 # ifdef WORDS_BIGENDIAN
 #  define UTF16_NAME "UTF-16BE"
 # else
--- a/lib/uniconv/u32-conv-from-enc.c
+++ b/lib/uniconv/u32-conv-from-enc.c
@@ -31,7 +31,7 @@
    alignment.  */
 #if defined _LIBICONV_VERSION
 # define UTF32_NAME "UCS-4-INTERNAL"
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#elif ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
 # define UTF32_NAME "WCHAR_T"
 #endif
 
--- a/lib/uniconv/u32-conv-to-enc.c
+++ b/lib/uniconv/u32-conv-to-enc.c
@@ -34,7 +34,7 @@
    alignment.  */
 #if defined _LIBICONV_VERSION
 # define UTF32_NAME "UCS-4-INTERNAL"
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#elif ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
 # define UTF32_NAME "WCHAR_T"
 #endif
 
--- a/lib/uniconv/u32-strconv-to-enc.c
+++ b/lib/uniconv/u32-strconv-to-enc.c
@@ -34,7 +34,7 @@
    alignment.  */
 #if defined _LIBICONV_VERSION
 # define UTF32_NAME "UCS-4-INTERNAL"
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#elif ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
 # define UTF32_NAME "WCHAR_T"
 #endif
 
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -61,14 +61,16 @@
 /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
 /* But avoid namespace pollution on glibc systems.  */
 #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
-     || (@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK)) \
+     || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \
+         && defined __CYGWIN__)) \
     && ! defined __GLIBC__
 # include <stdio.h>
 #endif
 
 /* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>.  */
 /* But avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__
+#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \
+    && ! defined __GLIBC__
 # include <fcntl.h>
 #endif
 
@@ -86,6 +88,13 @@
 # include <io.h>
 #endif
 
+/* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.  */
+/* But avoid namespace pollution on glibc systems.  */
+#if @GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__) \
+    && !defined __GLIBC__
+# include <netdb.h>
+#endif
+
 #if (@GNULIB_WRITE@ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
      || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK)
 /* Get ssize_t.  */
@@ -549,13 +558,21 @@
    Null terminate it if the name is shorter than LEN.
    If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
    Return 0 if successful, otherwise set errno and return -1.  */
-# if !@HAVE_GETDOMAINNAME@
+# if @REPLACE_GETDOMAINNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getdomainname
+#   define getdomainname rpl_getdomainname
+#  endif
+_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
+                                      _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
+# else
+#  if !@HAVE_DECL_GETDOMAINNAME@
 _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
                                       _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
 # endif
-/* Need to cast, because on MacOS X 10.5 systems, the second parameter is
-                                                        int len.  */
-_GL_CXXALIAS_SYS_CAST (getdomainname, int, (char *name, size_t len));
 _GL_CXXALIASWARN (getdomainname);
 #elif defined GNULIB_POSIXCHECK
 # undef getdomainname
@@ -955,6 +972,24 @@
 #endif
 
 
+#if @GNULIB_PIPE@
+/* Create a pipe, defaulting to O_BINARY mode.
+   Store the read-end as fd[0] and the write-end as fd[1].
+   Return 0 upon success, or -1 with errno set upon failure.  */
+# if !@HAVE_PIPE@
+_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
+_GL_CXXALIASWARN (pipe);
+#elif defined GNULIB_POSIXCHECK
+# undef pipe
+# if HAVE_RAW_DECL_PIPE
+_GL_WARN_ON_USE (pipe, "pipe is unportable - "
+                 "use gnulib module pipe-posix for portability");
+# endif
+#endif
+
+
 #if @GNULIB_PIPE2@
 /* Create a pipe, applying the given flags when opening the read-end of the
    pipe and the write-end of the pipe.
--- a/lib/unistr.in.h
+++ b/lib/unistr.in.h
@@ -559,8 +559,15 @@
 
 /* Compare S1 and S2.  */
 /* Similar to strcmp(), wcscmp().  */
+#ifdef __sun
+/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc.  */
+extern int
+       u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2);
+# define u8_strcmp u8_strcmp_gnu
+#else
 extern int
        u8_strcmp (const uint8_t *s1, const uint8_t *s2);
+#endif
 extern int
        u16_strcmp (const uint16_t *s1, const uint16_t *s2);
 extern int
--- a/lib/unistr/u8-check.c
+++ b/lib/unistr/u8-check.c
@@ -27,7 +27,7 @@
 
   while (s < s_end)
     {
-      /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+      /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
       uint8_t c = *s;
 
       if (c < 0x80)
--- a/lib/unistr/u8-mblen.c
+++ b/lib/unistr/u8-mblen.c
@@ -26,7 +26,7 @@
 {
   if (n > 0)
     {
-      /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+      /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
       uint8_t c = *s;
 
       if (c < 0x80)
--- a/lib/unistr/u8-mbsnlen.c
+++ b/lib/unistr/u8-mbsnlen.c
@@ -33,7 +33,9 @@
       characters++;
       if (count == -2)
         break;
-      if (count <= 0)
+      if (count < 0)
+        count = u8_mbtouc (&uc, s, n);
+      else if (count == 0)
         count = 1;
       s += count;
       n -= count;
--- a/lib/unistr/u8-mbtouc-aux.c
+++ b/lib/unistr/u8-mbtouc-aux.c
@@ -45,21 +45,32 @@
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
         {
           if (n >= 3)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -67,26 +78,45 @@
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
         {
           if (n >= 4)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
 #endif
-                 )
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                             )
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -94,7 +124,12 @@
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -102,16 +137,37 @@
         {
           if (n >= 5)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -126,18 +182,44 @@
         {
           if (n >= 6)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
--- a/lib/unistr/u8-mbtouc-unsafe-aux.c
+++ b/lib/unistr/u8-mbtouc-unsafe-aux.c
@@ -41,13 +41,15 @@
                          | (unsigned int) (s[1] ^ 0x80);
                   return 2;
                 }
+#if CONFIG_UNICODE_SAFETY
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
@@ -55,23 +57,39 @@
           if (n >= 3)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+#endif
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+#if CONFIG_UNICODE_SAFETY
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
@@ -79,28 +97,51 @@
           if (n >= 4)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+                             )
 #endif
-                 )
-#endif
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+#if CONFIG_UNICODE_SAFETY
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -109,19 +150,42 @@
           if (n >= 5)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+#endif
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+#if CONFIG_UNICODE_SAFETY
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
@@ -135,21 +199,49 @@
           if (n >= 6)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+#endif
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+#if CONFIG_UNICODE_SAFETY
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
--- a/lib/unistr/u8-mbtouc-unsafe.c
+++ b/lib/unistr/u8-mbtouc-unsafe.c
@@ -52,13 +52,15 @@
                          | (unsigned int) (s[1] ^ 0x80);
                   return 2;
                 }
+#if CONFIG_UNICODE_SAFETY
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
@@ -66,23 +68,39 @@
           if (n >= 3)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+#endif
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+#if CONFIG_UNICODE_SAFETY
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
@@ -90,28 +108,51 @@
           if (n >= 4)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+                             )
 #endif
-                 )
-#endif
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+#if CONFIG_UNICODE_SAFETY
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -120,19 +161,42 @@
           if (n >= 5)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+#endif
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+#if CONFIG_UNICODE_SAFETY
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
@@ -146,21 +210,49 @@
           if (n >= 6)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+#endif
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+#if CONFIG_UNICODE_SAFETY
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
--- a/lib/unistr/u8-mbtouc.c
+++ b/lib/unistr/u8-mbtouc.c
@@ -55,21 +55,32 @@
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
         {
           if (n >= 3)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -77,26 +88,45 @@
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
         {
           if (n >= 4)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
 #endif
-                 )
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                             )
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -104,7 +134,12 @@
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -112,16 +147,37 @@
         {
           if (n >= 5)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -136,18 +192,44 @@
         {
           if (n >= 6)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
--- a/lib/unistr/u8-prev.c
+++ b/lib/unistr/u8-prev.c
@@ -23,7 +23,7 @@
 const uint8_t *
 u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start)
 {
-  /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+  /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
   if (s != start)
     {
       uint8_t c_1 = s[-1];
--- a/lib/unistr/u8-stpncpy.c
+++ b/lib/unistr/u8-stpncpy.c
@@ -25,7 +25,7 @@
 /* Specification.  */
 #include "unistr.h"
 
-#if __GLIBC__ >= 2
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
 
 # include <string.h>
 
--- a/lib/unistr/u8-strmblen.c
+++ b/lib/unistr/u8-strmblen.c
@@ -24,7 +24,7 @@
 int
 u8_strmblen (const uint8_t *s)
 {
-  /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+  /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
   uint8_t c = *s;
 
   if (c < 0x80)
--- a/lib/unistr/u8-strmbtouc.c
+++ b/lib/unistr/u8-strmbtouc.c
@@ -24,7 +24,7 @@
 int
 u8_strmbtouc (ucs4_t *puc, const uint8_t *s)
 {
-  /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+  /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
   uint8_t c = *s;
 
   if (c < 0x80)
--- a/lib/unistr/u8-strnlen.c
+++ b/lib/unistr/u8-strnlen.c
@@ -25,7 +25,7 @@
 /* Specification.  */
 #include "unistr.h"
 
-#if __GLIBC__ >= 2
+#if __GLIBC__ >= 2 || defined __UCLIBC__
 
 # include <string.h>
 
--- a/lib/utimecmp.c
+++ b/lib/utimecmp.c
@@ -325,7 +325,7 @@
 
                 res = SYSCALL_RESOLUTION;
 
-                for (a /= res; a % 10 != 0; a /= 10)
+                for (a /= res; a % 10 == 0; a /= 10)
                   {
                     if (res == BILLION)
                       {
--- a/lib/vasnprintf.c
+++ b/lib/vasnprintf.c
@@ -279,7 +279,7 @@
      multithread-safe on glibc systems and MacOS X systems, but is not required
      to be multithread-safe by POSIX.  sprintf(), however, is multithread-safe.
      localeconv() is rarely multithread-safe.  */
-#  if HAVE_NL_LANGINFO && (__GLIBC__ || (defined __APPLE__ && defined __MACH__))
+#  if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__))
   point = nl_langinfo (RADIXCHAR);
 #  elif 1
   char pointbuf[5];
@@ -4599,6 +4599,7 @@
                 TCHAR_T *fbp;
                 unsigned int prefix_count;
                 int prefixes[2] IF_LINT (= { 0 });
+                int orig_errno;
 #if !USE_SNPRINTF
                 size_t tmp_length;
                 TCHAR_T tmpbuf[700];
@@ -4753,6 +4754,10 @@
                   *fbp++ = ' ';
                 if (flags & FLAG_ALT)
                   *fbp++ = '#';
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+                if (flags & FLAG_LOCALIZED)
+                  *fbp++ = 'I';
+#endif
                 if (!pad_ourselves)
                   {
                     if (flags & FLAG_ZERO)
@@ -4836,14 +4841,15 @@
 #endif
                   *fbp = dp->conversion;
 #if USE_SNPRINTF
-# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
                 fbp[1] = '%';
                 fbp[2] = 'n';
                 fbp[3] = '\0';
 # else
                 /* On glibc2 systems from glibc >= 2.3 - probably also older
-                   ones - we know that snprintf's returns value conforms to
-                   ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
+                   ones - we know that snprintf's return value conforms to
+                   ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and
+                   gl_SNPRINTF_TRUNCATION_C99 pass.
                    Therefore we can avoid using %n in this situation.
                    On glibc2 systems from 2004-10-18 or newer, the use of %n
                    in format strings in writable memory may crash the program
@@ -4902,6 +4908,8 @@
                 *(TCHAR_T *) (result + length) = '\0';
 #endif
 
+                orig_errno = errno;
+
                 for (;;)
                   {
                     int count = -1;
@@ -5499,6 +5507,7 @@
                     length += count;
                     break;
                   }
+                errno = orig_errno;
 #undef pad_ourselves
 #undef prec_ourselves
               }
--- a/lib/wchar.in.h
+++ b/lib/wchar.in.h
@@ -53,6 +53,10 @@
 
 #define _GL_ALREADY_INCLUDING_WCHAR_H
 
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__ */
+#endif
+
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
--- a/lib/xalloc.h
+++ b/lib/xalloc.h
@@ -46,6 +46,14 @@
 #  endif
 # endif
 
+# ifndef ATTRIBUTE_ALLOC_SIZE
+#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#   define ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+#  else
+#   define ATTRIBUTE_ALLOC_SIZE(args)
+#  endif
+# endif
+
 /* This function is always triggered when memory is exhausted.
    It must be defined by the application, either explicitly
    or by using gnulib's xalloc-die module.  This is the
@@ -53,13 +61,19 @@
    memory allocation failure.  */
 extern void xalloc_die (void) ATTRIBUTE_NORETURN;
 
-void *xmalloc (size_t s) ATTRIBUTE_MALLOC;
-void *xzalloc (size_t s) ATTRIBUTE_MALLOC;
-void *xcalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
-void *xrealloc (void *p, size_t s);
+void *xmalloc (size_t s)
+      ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1));
+void *xzalloc (size_t s)
+      ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1));
+void *xcalloc (size_t n, size_t s)
+      ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1, 2));
+void *xrealloc (void *p, size_t s)
+      ATTRIBUTE_ALLOC_SIZE ((2));
 void *x2realloc (void *p, size_t *pn);
-void *xmemdup (void const *p, size_t s) ATTRIBUTE_MALLOC;
-char *xstrdup (char const *str) ATTRIBUTE_MALLOC;
+void *xmemdup (void const *p, size_t s)
+      ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((2));
+char *xstrdup (char const *str)
+      ATTRIBUTE_MALLOC;
 
 /* Return 1 if an array of N objects, each of size S, cannot exist due
    to size arithmetic overflow.  S must be positive and N must be
@@ -106,10 +120,13 @@
 # if HAVE_INLINE
 #  define static_inline static inline
 # else
-void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
-void *xnrealloc (void *p, size_t n, size_t s);
+void *xnmalloc (size_t n, size_t s)
+      ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1, 2));
+void *xnrealloc (void *p, size_t n, size_t s)
+      ATTRIBUTE_ALLOC_SIZE ((2, 3));
 void *x2nrealloc (void *p, size_t *pn, size_t s);
-char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
+char *xcharalloc (size_t n)
+      ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1));
 # endif
 
 # ifdef static_inline
@@ -117,7 +134,8 @@
 /* Allocate an array of N objects, each with S bytes of memory,
    dynamically, with error checking.  S must be nonzero.  */
 
-static_inline void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+static_inline void *xnmalloc (size_t n, size_t s)
+                    ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1, 2));
 static_inline void *
 xnmalloc (size_t n, size_t s)
 {
@@ -129,6 +147,8 @@
 /* Change the size of an allocated block of memory P to an array of N
    objects each of S bytes, with error checking.  S must be nonzero.  */
 
+static_inline void *xnrealloc (void *p, size_t n, size_t s)
+                    ATTRIBUTE_ALLOC_SIZE ((2, 3));
 static_inline void *
 xnrealloc (void *p, size_t n, size_t s)
 {
@@ -229,7 +249,8 @@
 /* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
    except it returns char *.  */
 
-static_inline char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
+static_inline char *xcharalloc (size_t n)
+                    ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE ((1));
 static_inline char *
 xcharalloc (size_t n)
 {
--- a/lib/xmalloc.c
+++ b/lib/xmalloc.c
@@ -31,7 +31,7 @@
 /* 1 if calloc is known to be compatible with GNU calloc.  This
    matters if we are not also using the calloc module, which defines
    HAVE_CALLOC_GNU and supports the GNU API even on non-GNU platforms.  */
-#if defined HAVE_CALLOC_GNU || defined __GLIBC__
+#if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__)
 enum { HAVE_GNU_CALLOC = 1 };
 #else
 enum { HAVE_GNU_CALLOC = 0 };
--- a/m4/README
+++ b/m4/README
@@ -73,6 +73,47 @@
   be the autoconf macro that provides it. This is only an approximation; in
   general you should look at all preprocessor directives in lib/foo.c.
 
+- In AC_RUN_IFELSE invocations, try to put as much information about failed
+  tests as possible in the exit code. The exit code is 0 for success and any
+  value between 1 and 127 for failure. The exit code is printed in config.log;
+  therefore when an AC_RUN_IFELSE invocation failed, it is possible to analyze
+  the failure immediately if sufficient information is contained in the exit
+  code.
+
+  For a program that performs a single test, the typical idiom is:
+
+      if (do_test1 ())
+        return 1;
+      return 0;
+
+  For a test that performs a test with some preparation, the typical idiom is
+  to return an enumerated value:
+
+      if (prep1 ())
+        return 1;
+      else if (prep2 ())
+        return 2;
+      else if (prep3 ())
+        return 3;
+      else if (do_test1 ())
+        return 4;
+      return 0;
+
+  For multiple independent tests in a single program, you can return a bit
+  mask with up to 7 bits:
+
+      int result = 0;
+      if (do_test1 ())
+        result |= 1;
+      if (do_test2 ())
+        result |= 2;
+      if (do_test3 ())
+        result |= 4;
+      return result;
+
+  For more than 7 independent tests, you have to map some possible test
+  failures to same bit.
+
 - After ANY modifications of an m4 file, you should increment its serial
   number (in the first line). Also, if this first line features a particular
   release, _remove_ this release stamp. Example: Change
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,5 +1,5 @@
 # acl.m4 - check for access control list (ACL) primitives
-# serial 11
+# serial 12
 
 # Copyright (C) 2002, 2004-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -151,8 +151,10 @@
            #include <sys/acl.h>
            #include <errno.h>
           ]],
-          [[return !! (!acl_get_file (".", ACL_TYPE_ACCESS)
-                       && errno == ENOENT);]])],
+          [[if (!acl_get_file (".", ACL_TYPE_ACCESS) && errno == ENOENT)
+              return 1;
+            return 0;
+          ]])],
        [gl_cv_func_working_acl_get_file=yes],
        [gl_cv_func_working_acl_get_file=no],
        [gl_cv_func_working_acl_get_file=cross-compiling])])
--- a/m4/alloca.m4
+++ b/m4/alloca.m4
@@ -1,4 +1,4 @@
-# alloca.m4 serial 9
+# alloca.m4 serial 10
 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -7,10 +7,6 @@
 
 AC_DEFUN([gl_FUNC_ALLOCA],
 [
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   AC_REQUIRE([AC_FUNC_ALLOCA])
   if test $ac_cv_func_alloca_works = no; then
     gl_PREREQ_ALLOCA
--- a/m4/arpa_inet_h.m4
+++ b/m4/arpa_inet_h.m4
@@ -1,5 +1,5 @@
-# arpa_inet_h.m4 serial 8
-dnl Copyright (C) 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
+# arpa_inet_h.m4 serial 10
+dnl Copyright (C) 2006, 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -22,11 +22,13 @@
   dnl <arpa/inet.h> is always overridden, because of GNULIB_POSIXCHECK.
   gl_CHECK_NEXT_HEADERS([arpa/inet.h])
 
+  AC_REQUIRE([gl_FEATURES_H])
+
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[
 /* On some systems, this header is not self-consistent.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ || defined __UCLIBC__)
 # include <sys/socket.h>
 #endif
 #include <arpa/inet.h>
--- a/m4/c-stack.m4
+++ b/m4/c-stack.m4
@@ -8,7 +8,7 @@
 
 # Written by Paul Eggert.
 
-# serial 11
+# serial 12
 
 AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC],
   [# for STACK_DIRECTION
@@ -77,16 +77,18 @@
               st.ss_size = SIGSTKSZ;
               r = sigaltstack (&st, 0);
               if (r != 0)
-                return r;
+                return 1;
 
               sigemptyset (&act.sa_mask);
               act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND;
               act.sa_handler = segv_handler;
               #if FAULT_YIELDS_SIGBUS
               if (sigaction (SIGBUS, &act, 0) < 0)
-                return -1;
+                return 2;
               #endif
-              return sigaction (SIGSEGV, &act, 0);
+              if (sigaction (SIGSEGV, &act, 0) < 0)
+                return 3;
+              return 0;
             }
             static volatile int *
             recurse_1 (volatile int n, volatile int *p)
@@ -104,6 +106,7 @@
             int
             main ()
             {
+              int result;
               #if HAVE_SETRLIMIT && defined RLIMIT_STACK
               /* Before starting the endless recursion, try to be friendly
                  to the user's machine.  On some Linux 2.2.x systems, there
@@ -114,7 +117,10 @@
               setrlimit (RLIMIT_STACK, &rl);
               #endif
 
-              return c_stack_action () || recurse (0);
+              result = c_stack_action ();
+              if (result != 0)
+                return result;
+              return recurse (0);
             }
            ]])],
         [ac_cv_sys_stack_overflow_works=yes],
@@ -177,7 +183,7 @@
     exit(3);
   /* Provoke a SIGSEGV.  */
   raise (SIGSEGV);
-  exit (3);
+  exit (4);
 }]])],
       [gl_cv_sigaltstack_low_base=yes],
       [gl_cv_sigaltstack_low_base=no],
@@ -245,9 +251,9 @@
                     s += page_size;
                   if (s < stack_size + page_size)
                     _exit (0);
+                  _exit (4);
                 }
-
-              _exit (1);
+              _exit (5);
             }
 
             static int
@@ -263,16 +269,18 @@
               st.ss_size = SIGSTKSZ;
               r = sigaltstack (&st, 0);
               if (r != 0)
-                return r;
+                return 1;
 
               sigemptyset (&act.sa_mask);
               act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
               act.sa_sigaction = segv_handler;
               #if FAULT_YIELDS_SIGBUS
               if (sigaction (SIGBUS, &act, 0) < 0)
-                return -1;
+                return 2;
               #endif
-              return sigaction (SIGSEGV, &act, 0);
+              if (sigaction (SIGSEGV, &act, 0) < 0)
+                return 3;
+              return 0;
             }
             static volatile int *
             recurse_1 (volatile int n, volatile int *p)
@@ -290,6 +298,7 @@
             int
             main ()
             {
+              int result;
               #if HAVE_SETRLIMIT && defined RLIMIT_STACK
               /* Before starting the endless recursion, try to be friendly
                  to the user's machine.  On some Linux 2.2.x systems, there
@@ -300,7 +309,10 @@
               setrlimit (RLIMIT_STACK, &rl);
               #endif
 
-              return c_stack_action () || recurse (0);
+              result = c_stack_action ();
+              if (result != 0)
+                return result;
+              return recurse (0);
             }
            ]])],
         [ac_cv_sys_xsi_stack_overflow_heuristic=yes],
--- a/m4/c-strtod.m4
+++ b/m4/c-strtod.m4
@@ -1,4 +1,4 @@
-# c-strtod.m4 serial 11
+# c-strtod.m4 serial 12
 
 # Copyright (C) 2004-2006, 2009-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -39,6 +39,7 @@
 
   dnl Prerequisites of lib/c-strtod.c.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS([strtod_l])
 
   AC_REQUIRE([AC_C_INLINE])
   :
@@ -51,6 +52,7 @@
   dnl Prerequisites of lib/c-strtold.c.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_REQUIRE([gl_C99_STRTOLD])
+  AC_CHECK_FUNCS([strtold_l])
 
   AC_REQUIRE([AC_C_INLINE])
   :
--- a/m4/calloc.m4
+++ b/m4/calloc.m4
@@ -1,4 +1,4 @@
-# calloc.m4 serial 11
+# calloc.m4 serial 12
 
 # Copyright (C) 2004-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -16,14 +16,24 @@
 # -------------------------------------
 # If `calloc (0, 0)' is properly handled, run IF-WORKS, otherwise, IF-NOT.
 AC_DEFUN([_AC_FUNC_CALLOC_IF],
-[AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-AC_CACHE_CHECK([for GNU libc compatible calloc], [ac_cv_func_calloc_0_nonnull],
-[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
-                  [[exit (!calloc (0, 0) || calloc ((size_t) -1 / 8 + 1, 8));]])],
-               [ac_cv_func_calloc_0_nonnull=yes],
-               [ac_cv_func_calloc_0_nonnull=no],
-               [ac_cv_func_calloc_0_nonnull=no])])
-AS_IF([test $ac_cv_func_calloc_0_nonnull = yes], [$1], [$2])
+[
+  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+  AC_CACHE_CHECK([for GNU libc compatible calloc],
+    [ac_cv_func_calloc_0_nonnull],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [AC_INCLUDES_DEFAULT],
+          [[int result = 0;
+            if (!calloc (0, 0))
+              result |= 1;
+            if (calloc ((size_t) -1 / 8 + 1, 8))
+              result |= 2;
+            return result;
+          ]])],
+       [ac_cv_func_calloc_0_nonnull=yes],
+       [ac_cv_func_calloc_0_nonnull=no],
+       [ac_cv_func_calloc_0_nonnull=no])])
+  AS_IF([test $ac_cv_func_calloc_0_nonnull = yes], [$1], [$2])
 ])# AC_FUNC_CALLOC
 
 
--- a/m4/canonicalize.m4
+++ b/m4/canonicalize.m4
@@ -1,4 +1,4 @@
-# canonicalize.m4 serial 16
+# canonicalize.m4 serial 17
 
 dnl Copyright (C) 2003-2007, 2009-2010 Free Software Foundation, Inc.
 
@@ -65,10 +65,23 @@
       AC_LANG_PROGRAM([[
         #include <stdlib.h>
       ]], [[
-        char *name1 = realpath ("conftest.a", NULL);
-        char *name2 = realpath ("conftest.b/../conftest.a", NULL);
-        char *name3 = realpath ("conftest.a/", NULL);
-        return !(name1 && *name1 == '/' && !name2 && !name3);
+        int result = 0;
+        {
+          char *name = realpath ("conftest.a", NULL);
+          if (!(name && *name == '/'))
+            result |= 1;
+        }
+        {
+          char *name = realpath ("conftest.b/../conftest.a", NULL);
+          if (name != NULL)
+            result |= 2;
+        }
+        {
+          char *name = realpath ("conftest.a/", NULL);
+          if (name != NULL)
+            result |= 4;
+        }
+        return result;
       ]])
     ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no],
        [gl_cv_func_realpath_works="guessing no"])
--- a/m4/chown.m4
+++ b/m4/chown.m4
@@ -1,4 +1,4 @@
-# serial 23
+# serial 24
 # Determine whether we need the chown wrapper.
 
 dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2010 Free Software
@@ -114,6 +114,7 @@
         int
         main ()
         {
+          int result = 0;
           char const *dangling_symlink = "conftest.dangle";
 
           unlink (dangling_symlink);
@@ -122,8 +123,11 @@
 
           /* Exit successfully on a conforming system,
              i.e., where chown must fail with ENOENT.  */
-          exit ( ! (chown (dangling_symlink, getuid (), getgid ()) != 0
-                    && errno == ENOENT));
+          if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+            result |= 1;
+          if (errno != ENOENT)
+            result |= 2;
+          return result;
         }
         ]])],
         [gl_cv_func_chown_follows_symlink=yes],
--- a/m4/d-ino.m4
+++ b/m4/d-ino.m4
@@ -1,4 +1,4 @@
-# serial 11
+# serial 12
 
 dnl From Jim Meyering.
 dnl
@@ -27,12 +27,17 @@
              if (! dp)
                return 1;
              e = readdir (dp);
-             return ! (e
-                       && stat (e->d_name, &st) == 0
-                       && e->d_ino == st.st_ino);]])],
-            [gl_cv_struct_dirent_d_ino=yes],
-            [gl_cv_struct_dirent_d_ino=no],
-            [gl_cv_struct_dirent_d_ino=no])])
+             if (! e)
+               return 2;
+             if (stat (e->d_name, &st) != 0)
+               return 3;
+             if (e->d_ino != st.st_ino)
+               return 4;
+             return 0;
+           ]])],
+           [gl_cv_struct_dirent_d_ino=yes],
+           [gl_cv_struct_dirent_d_ino=no],
+           [gl_cv_struct_dirent_d_ino=no])])
    if test $gl_cv_struct_dirent_d_ino = yes; then
      AC_DEFINE([D_INO_IN_DIRENT], [1],
        [Define if struct dirent has a member d_ino that actually works.])
--- a/m4/dirfd.m4
+++ b/m4/dirfd.m4
@@ -1,4 +1,4 @@
-# serial 18   -*- Autoconf -*-
+# serial 19   -*- Autoconf -*-
 
 dnl Find out how to get the file descriptor associated with an open DIR*.
 
@@ -17,10 +17,6 @@
   dnl Persuade glibc <dirent.h> to declare dirfd().
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   AC_CHECK_FUNCS([dirfd])
   AC_CHECK_DECLS([dirfd], , ,
     [#include <sys/types.h>
--- a/m4/dup2.m4
+++ b/m4/dup2.m4
@@ -1,4 +1,4 @@
-#serial 10
+#serial 11
 dnl Copyright (C) 2002, 2005, 2007, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -17,15 +17,16 @@
       [AC_RUN_IFELSE([
          AC_LANG_PROGRAM([[#include <unistd.h>
 #include <errno.h>]],
-           [if (dup2 (1, 1) == 0)
-              return 1;
+           [int result = 0;
+            if (dup2 (1, 1) == 0)
+              result |= 1;
             close (0);
             if (dup2 (0, 0) != -1)
-              return 2;
+              result |= 2;
             /* Many gnulib modules require POSIX conformance of EBADF.  */
             if (dup2 (1, 1000000) == -1 && errno != EBADF)
-              return 3;
-            return 0;
+              result |= 4;
+            return result;
            ])
         ],
         [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no],
--- a/m4/duplocale.m4
+++ b/m4/duplocale.m4
@@ -1,4 +1,4 @@
-# duplocale.m4 serial 4
+# duplocale.m4 serial 5
 dnl Copyright (C) 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -31,17 +31,20 @@
 }]])],
          [gl_cv_func_duplocale_works=yes],
          [gl_cv_func_duplocale_works=no],
-         [dnl Guess it works except on glibc < 2.12 and AIX.
+         [dnl Guess it works except on glibc < 2.12, uClibc, and AIX.
           case "$host_os" in
             aix*) gl_cv_func_duplocale_works="guessing no";;
             *-gnu*)
-              AC_EGREP_CPP([Unlucky GNU user], [
+              AC_EGREP_CPP([Unlucky], [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ < 12)
   Unlucky GNU user
  #endif
 #endif
+#ifdef __UCLIBC__
+ Unlucky user
+#endif
                 ],
                 [gl_cv_func_duplocale_works="guessing no"],
                 [gl_cv_func_duplocale_works="guessing yes"])
--- a/m4/fcntl-o.m4
+++ b/m4/fcntl-o.m4
@@ -1,4 +1,4 @@
-# fcntl-o.m4 serial 2
+# fcntl-o.m4 serial 3
 dnl Copyright (C) 2006, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -37,34 +37,61 @@
             };
           ]],
           [[
-            int status = !constants;
+            int result = !constants;
             {
               static char const sym[] = "conftest.sym";
-              if (symlink (".", sym) != 0
-                  || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0)
-                status |= 32;
+              if (symlink (".", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
               unlink (sym);
             }
             {
               static char const file[] = "confdefs.h";
               int fd = open (file, O_RDONLY | O_NOATIME);
-              char c;
-              struct stat st0, st1;
-              if (fd < 0
-                  || fstat (fd, &st0) != 0
-                  || sleep (1) != 0
-                  || read (fd, &c, 1) != 1
-                  || close (fd) != 0
-                  || stat (file, &st1) != 0
-                  || st0.st_atime != st1.st_atime)
-                status |= 64;
+              if (fd < 0)
+                result |= 8;
+              else
+                {
+                  struct stat st0;
+                  if (fstat (fd, &st0) != 0)
+                    result |= 16;
+                  else
+                    {
+                      char c;
+                      sleep (1);
+                      if (read (fd, &c, 1) != 1)
+                        result |= 24;
+                      else
+                        {
+                          if (close (fd) != 0)
+                            result |= 32;
+                          else
+                            {
+                              struct stat st1;
+                              if (stat (file, &st1) != 0)
+                                result |= 40;
+                              else
+                                if (st0.st_atime != st1.st_atime)
+                                  result |= 64;
+                            }
+                        }
+                    }
+                }
             }
-            return status;]])],
+            return result;]])],
        [gl_cv_header_working_fcntl_h=yes],
        [case $? in #(
-        32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
         64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
-        96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
          *) gl_cv_header_working_fcntl_h='no';;
         esac],
        [gl_cv_header_working_fcntl_h=cross-compiling])])
--- a/m4/fnmatch.m4
+++ b/m4/fnmatch.m4
@@ -1,4 +1,4 @@
-# Check for fnmatch - serial 4.
+# Check for fnmatch - serial 5.
 
 # Copyright (C) 2000-2007, 2009-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -60,33 +60,60 @@
             static char const a01[] = { 'a' + 1, 0 };
             static char const bs_1[] = { '\\\\' - 1, 0 };
             static char const bs01[] = { '\\\\' + 1, 0 };
-            return
-             !(n ("a*", "", 0)
-               && y ("a*", "abc", 0)
-               && n ("d*/*1", "d/s/1", FNM_PATHNAME)
-               && y ("a\\\\bc", "abc", 0)
-               && n ("a\\\\bc", "abc", FNM_NOESCAPE)
-               && y ("*x", ".x", 0)
-               && n ("*x", ".x", FNM_PERIOD)
-               && y (Apat, "\\\\", 0) && y (Apat, "A", 0)
-               && y (apat, "\\\\", 0) && y (apat, "a", 0)
-               && n (Apat, A_1, 0) == ('A' < '\\\\')
-               && n (apat, a_1, 0) == ('a' < '\\\\')
-               && y (Apat, A01, 0) == ('A' < '\\\\')
-               && y (apat, a01, 0) == ('a' < '\\\\')
-               && y (Apat, bs_1, 0) == ('A' < '\\\\')
-               && y (apat, bs_1, 0) == ('a' < '\\\\')
-               && n (Apat, bs01, 0) == ('A' < '\\\\')
-               && n (apat, bs01, 0) == ('a' < '\\\\')
-               $gl_fnmatch_gnu_start
-               && y ("xxXX", "xXxX", FNM_CASEFOLD)
-               && y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH)
-               && n ("d*/*1", "d/s/1", FNM_FILE_NAME)
-               && y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR)
-               && y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR)
-               && y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR)
-               $gl_fnmatch_gnu_end
-              );
+            int result = 0;
+            if (!n ("a*", "", 0))
+              return 1;
+            if (!y ("a*", "abc", 0))
+              return 1;
+            if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+              return 2;
+            if (!y ("a\\\\bc", "abc", 0))
+              return 3;
+            if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+              return 3;
+            if (!y ("*x", ".x", 0))
+              return 4;
+            if (!n ("*x", ".x", FNM_PERIOD))
+              return 4;
+            if (!y (Apat, "\\\\", 0))
+              return 5;
+            if (!y (Apat, "A", 0))
+              return 5;
+            if (!y (apat, "\\\\", 0))
+              return 5;
+            if (!y (apat, "a", 0))
+              return 5;
+            if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+              return 5;
+            $gl_fnmatch_gnu_start
+            if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+              result |= 8;
+            if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+              result |= 16;
+            if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+              result |= 32;
+            if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            $gl_fnmatch_gnu_end
+            return result;
           ]])],
        [eval "$gl_fnmatch_cache_var=yes"],
        [eval "$gl_fnmatch_cache_var=no"],
--- a/m4/frexp.m4
+++ b/m4/frexp.m4
@@ -1,4 +1,4 @@
-# frexp.m4 serial 9
+# frexp.m4 serial 10
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -104,12 +104,25 @@
 #include <float.h>
 #include <math.h>
 #include <string.h>
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on MacOS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zero (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+double minus_zero = -0.0;
+#endif
 int main()
 {
+  int result = 0;
   int i;
   volatile double x;
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
   double zero = 0.0;
   /* Test on denormalized numbers.  */
   for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
@@ -121,7 +134,7 @@
       /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
          On NetBSD: y = 0.75. Correct: y = 0.5.  */
       if (y != 0.5)
-        return 1;
+        result |= 1;
     }
   /* Test on infinite numbers.  */
   x = 1.0 / 0.0;
@@ -129,17 +142,17 @@
     int exp;
     double y = frexp (x, &exp);
     if (y != x)
-      return 1;
+      result |= 2;
   }
   /* Test on negative zero.  */
-  x = -zero;
+  x = minus_zero;
   {
     int exp;
     double y = frexp (x, &exp);
     if (memcmp (&y, &x, sizeof x))
-      return 1;
+      result |= 4;
   }
-  return 0;
+  return result;
 }]])],
         [gl_cv_func_frexp_works=yes],
         [gl_cv_func_frexp_works=no],
--- a/m4/frexpl.m4
+++ b/m4/frexpl.m4
@@ -1,4 +1,4 @@
-# frexpl.m4 serial 12
+# frexpl.m4 serial 13
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -124,6 +124,7 @@
 extern long double frexpl (long double, int *);
 int main()
 {
+  int result = 0;
   volatile long double x;
   /* Test on finite numbers that fails on AIX 5.1.  */
   x = 16.0L;
@@ -131,7 +132,7 @@
     int exp = -9999;
     frexpl (x, &exp);
     if (exp != 5)
-      return 1;
+      result |= 1;
   }
   /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
      function returns an invalid (incorrectly normalized) value: it returns
@@ -143,7 +144,7 @@
     int exp = -9999;
     long double y = frexpl (x, &exp);
     if (!(exp == 1 && y == 0.505L))
-      return 1;
+      result |= 2;
   }
   /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
      LDBL_MAX_EXP = 16384.
@@ -156,7 +157,10 @@
         int exp = -9999;
         frexpl (x, &exp);
         if (exp != i)
-          return 1;
+          {
+            result |= 4;
+            break;
+          }
       }
   }
   /* Test on denormalized numbers.  */
@@ -171,7 +175,7 @@
         /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
            exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
         if (exp != LDBL_MIN_EXP - 1)
-          return 1;
+          result |= 8;
       }
   }
   /* Test on infinite numbers.  */
@@ -180,9 +184,9 @@
     int exp;
     long double y = frexpl (x, &exp);
     if (y != x)
-      return 1;
+      result |= 16;
   }
-  return 0;
+  return result;
 }]])],
         [gl_cv_func_frexpl_works=yes],
         [gl_cv_func_frexpl_works=no],
--- a/m4/fsusage.m4
+++ b/m4/fsusage.m4
@@ -1,4 +1,4 @@
-# serial 26
+# serial 27
 # Obtaining file system usage information.
 
 # Copyright (C) 1997-1998, 2000-2001, 2003-2010 Free Software Foundation, Inc.
@@ -48,7 +48,7 @@
   # OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS.
   AC_CACHE_CHECK([for statvfs function (SVR4)], [fu_cv_sys_stat_statvfs],
                  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#if defined __GLIBC__ && defined __linux__
+#if (defined __GLIBC__ || defined __UCLIBC__) && defined __linux__
 Do not use statvfs on systems with GNU libc on Linux, because that function
 stats all preceding entries in /proc/mounts, and that makes df hang if even
 one of the corresponding file systems is hard-mounted, but not available.
--- a/m4/getcwd-path-max.m4
+++ b/m4/getcwd-path-max.m4
@@ -1,4 +1,4 @@
-# serial 14
+# serial 15
 # Check for several getcwd bugs with long file names.
 # If so, arrange to compile the wrapper function.
 
@@ -85,7 +85,7 @@
   size_t n_chdirs = 0;
 
   if (cwd == NULL)
-    exit (1);
+    exit (10);
 
   cwd_len = initial_cwd_len = strlen (cwd);
 
@@ -103,7 +103,7 @@
       if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
         {
           if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
-            fail = 2;
+            fail = 20;
           break;
         }
 
@@ -112,12 +112,12 @@
           c = getcwd (buf, PATH_MAX);
           if (!c && errno == ENOENT)
             {
-              fail = 1;
+              fail = 11;
               break;
             }
           if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno)))
             {
-              fail = 2;
+              fail = 21;
               break;
             }
         }
@@ -132,12 +132,12 @@
               if (! (errno == ERANGE || errno == ENOENT
                      || is_ENAMETOOLONG (errno)))
                 {
-                  fail = 2;
+                  fail = 22;
                   break;
                 }
               if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
                 {
-                  fail = 1;
+                  fail = 12;
                   break;
                 }
             }
@@ -145,7 +145,7 @@
 
       if (c && strlen (c) != cwd_len)
         {
-          fail = 2;
+          fail = 23;
           break;
         }
       ++n_chdirs;
@@ -174,7 +174,7 @@
           ]])],
     [gl_cv_func_getcwd_path_max=yes],
     [case $? in
-     1) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+     10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
      *) gl_cv_func_getcwd_path_max=no;;
      esac],
     [gl_cv_func_getcwd_path_max=no])
--- a/m4/getcwd.m4
+++ b/m4/getcwd.m4
@@ -7,7 +7,7 @@
 # with or without modifications, as long as this notice is preserved.
 
 # Written by Paul Eggert.
-# serial 2
+# serial 3
 
 AC_DEFUN([gl_FUNC_GETCWD_NULL],
   [
@@ -27,7 +27,13 @@
            else
              {
                char *f = getcwd (NULL, 0);
-               return ! (f && f[0] == '/' && !f[1]);
+               if (! f)
+                 return 2;
+               if (f[0] != '/')
+                 return 3;
+               if (f[1] != '\0')
+                 return 4;
+               return 0;
              }
 #endif
          ]])],
--- a/m4/getdelim.m4
+++ b/m4/getdelim.m4
@@ -1,4 +1,4 @@
-# getdelim.m4 serial 6
+# getdelim.m4 serial 8
 
 dnl Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc.
 dnl
@@ -38,7 +38,7 @@
         size_t siz = 0;
         int len = getdelim (&line, &siz, '\n', in);
         if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
-          return 1;
+          return 2;
       }
       {
         /* Test result for a NULL buffer and a non-zero size.
@@ -46,7 +46,7 @@
         char *line = NULL;
         size_t siz = (size_t)(~0) / 4;
         if (getdelim (&line, &siz, '\n', in) == -1)
-          return 1;
+          return 3;
       }
       return 0;
     }
@@ -57,7 +57,7 @@
          [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2)
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
   Lucky GNU user
  #endif
 #endif
--- a/m4/getdomainname.m4
+++ b/m4/getdomainname.m4
@@ -1,4 +1,4 @@
-# getdomainname.m4 serial 4
+# getdomainname.m4 serial 5
 dnl Copyright (C) 2002-2003, 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,18 +7,94 @@
 AC_DEFUN([gl_FUNC_GETDOMAINNAME],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H
+  AC_REQUIRE([gl_HEADER_NETDB])dnl for HAVE_NETDB_H
 
   dnl Persuade glibc <unistd.h> to declare getdomainname().
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
 
-  AC_REPLACE_FUNCS([getdomainname])
-  if test $ac_cv_func_getdomainname = no; then
-    HAVE_GETDOMAINNAME=0
+  dnl Where is getdomainname() defined?
+  dnl - On Solaris, it is in libnsl. But this function is not declared and
+  dnl   is discouraged, see
+  dnl   <http://www.sun.com/software/solaris/programs/abi/appcert_faq.xml#q18>.
+  dnl   We need to avoid a collision with this function.
+  dnl - Otherwise is is in libc.
+  AC_CHECK_FUNCS([getdomainname], , [
+    AC_CACHE_CHECK([for getdomainname in -lnsl],
+      [gl_cv_func_getdomainname_in_libnsl],
+      [gl_cv_func_getdomainname_in_libnsl=no
+       gl_save_LIBS="$LIBS"
+       LIBS="$LIBS -lnsl"
+       AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <stddef.h>
+              extern int getdomainname (char *, size_t);
+            ]],
+            [[getdomainname(NULL, 0);]])],
+         [gl_cv_func_getdomainname_in_libnsl=yes])
+       LIBS="$gl_save_LIBS"
+      ])
+  ])
+
+  dnl What about the declaration?
+  dnl - It's  int getdomainname(char *, size_t)  on glibc, NetBSD, OpenBSD.
+  dnl - It's  int getdomainname(char *, int)  on MacOS X, FreeBSD, AIX, IRIX,
+  dnl   OSF/1.
+  AC_CHECK_DECLS([getdomainname], , ,
+    [#include <sys/types.h>
+     #ifdef HAVE_SYS_SOCKET_H
+     #include <sys/socket.h>
+     #endif
+     #ifdef HAVE_NETDB_H
+     #include <netdb.h>
+     #endif
+     #include <unistd.h>
+    ])
+  AC_CACHE_CHECK([for getdomainname's second argument type],
+    [gl_cv_decl_getdomainname_argtype2],
+    [if test $ac_cv_have_decl_getdomainname; then
+       AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <sys/types.h>
+              #ifdef HAVE_SYS_SOCKET_H
+              #include <sys/socket.h>
+              #endif
+              #ifdef HAVE_NETDB_H
+              #include <netdb.h>
+              #endif
+              #include <unistd.h>
+              extern int getdomainname (char *, int);]],
+            [[]])],
+         [gl_cv_decl_getdomainname_argtype2='int'],
+         [gl_cv_decl_getdomainname_argtype2='size_t'])
+     else
+       gl_cv_decl_getdomainname_argtype2='int'
+     fi
+    ])
+
+  if test $ac_cv_have_decl_getdomainname = no; then
+    HAVE_DECL_GETDOMAINNAME=0
+  fi
+
+  if { test $ac_cv_func_getdomainname = yes \
+       && test $gl_cv_decl_getdomainname_argtype2 != size_t; \
+     } \
+     || test "$gl_cv_func_getdomainname_in_libnsl" = yes; then
+    REPLACE_GETDOMAINNAME=1
+  fi
+
+  if test $HAVE_DECL_GETDOMAINNAME = 0 || test $REPLACE_GETDOMAINNAME = 1; then
+    AC_LIBOBJ([getdomainname])
     gl_PREREQ_GETDOMAINNAME
   fi
 ])
 
 # Prerequisites of lib/getdomainname.c.
 AC_DEFUN([gl_PREREQ_GETDOMAINNAME], [
-  :
+  if test $ac_cv_func_getdomainname = yes; then
+    AC_DEFINE([HAVE_GETDOMAINNAME], [1],
+      [Define if the getdomainname() function is present and can be used.])
+  fi
+  AC_CHECK_HEADERS([sys/systeminfo.h])
+  AC_CHECK_FUNCS([sysinfo])
 ])
--- a/m4/getline.m4
+++ b/m4/getline.m4
@@ -1,4 +1,4 @@
-# getline.m4 serial 21
+# getline.m4 serial 23
 
 dnl Copyright (C) 1998-2003, 2005-2007, 2009-2010 Free Software Foundation,
 dnl Inc.
@@ -46,7 +46,7 @@
         size_t siz = 0;
         int len = getline (&line, &siz, in);
         if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
-          return 1;
+          return 2;
       }
       {
         /* Test result for a NULL buffer and a non-zero size.
@@ -54,7 +54,7 @@
         char *line = NULL;
         size_t siz = (size_t)(~0) / 4;
         if (getline (&line, &siz, in) == -1)
-          return 1;
+          return 3;
       }
       return 0;
     }
@@ -65,7 +65,7 @@
          [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2)
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
   Lucky GNU user
  #endif
 #endif
--- a/m4/getopt.m4
+++ b/m4/getopt.m4
@@ -1,4 +1,4 @@
-# getopt.m4 serial 31
+# getopt.m4 serial 32
 dnl Copyright (C) 2002-2006, 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -231,6 +231,7 @@
                            #include <stddef.h>
                            #include <string.h>
            ]], [[
+             int result = 0;
              /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
                 and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
                 OSF/1 5.1, Solaris 10.  */
@@ -241,7 +242,7 @@
                myargv[2] = 0;
                opterr = 0;
                if (getopt (2, myargv, "+a") != '?')
-                 return 1;
+                 result |= 1;
              }
              /* This code succeeds on glibc 2.8, mingw,
                 and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
@@ -251,33 +252,33 @@
 
                optind = 1;
                if (getopt (4, argv, "p::") != 'p')
-                 return 2;
-               if (optarg != NULL)
-                 return 3;
-               if (getopt (4, argv, "p::") != -1)
-                 return 4;
-               if (optind != 2)
-                 return 5;
+                 result |= 2;
+               else if (optarg != NULL)
+                 result |= 4;
+               else if (getopt (4, argv, "p::") != -1)
+                 result |= 6;
+               else if (optind != 2)
+                 result |= 8;
              }
              /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0.  */
              {
                char *argv[] = { "program", "foo", "-p", NULL };
                optind = 0;
                if (getopt (3, argv, "-p") != 1)
-                 return 6;
-               if (getopt (3, argv, "-p") != 'p')
-                 return 7;
+                 result |= 16;
+               else if (getopt (3, argv, "-p") != 'p')
+                 result |= 32;
              }
              /* This code fails on glibc 2.11.  */
              {
                char *argv[] = { "program", "-b", "-a", NULL };
                optind = opterr = 0;
                if (getopt (3, argv, "+:a:b") != 'b')
-                 return 8;
-               if (getopt (3, argv, "+:a:b") != ':')
-                 return 9;
+                 result |= 64;
+               else if (getopt (3, argv, "+:a:b") != ':')
+                 result |= 64;
              }
-             return 0;
+             return result;
            ]])],
         [gl_cv_func_getopt_gnu=yes],
         [gl_cv_func_getopt_gnu=no],
--- a/m4/getpass.m4
+++ b/m4/getpass.m4
@@ -1,4 +1,4 @@
-# getpass.m4 serial 11
+# getpass.m4 serial 12
 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -8,6 +8,9 @@
 # Provide a getpass() function if the system doesn't have it.
 AC_DEFUN([gl_FUNC_GETPASS],
 [
+  dnl Persuade Solaris <unistd.h> and <stdlib.h> to declare getpass().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_REPLACE_FUNCS([getpass])
   AC_CHECK_DECLS_ONCE([getpass])
   if test $ac_cv_func_getpass = no; then
@@ -19,6 +22,9 @@
 # arbitrary length (not just 8 bytes as on HP-UX).
 AC_DEFUN([gl_FUNC_GETPASS_GNU],
 [
+  dnl Persuade Solaris <unistd.h> and <stdlib.h> to declare getpass().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_CHECK_DECLS_ONCE([getpass])
   dnl TODO: Detect when GNU getpass() is already found in glibc.
   AC_LIBOBJ([getpass])
--- a/m4/glibc2.m4
+++ b/m4/glibc2.m4
@@ -1,5 +1,5 @@
-# glibc2.m4 serial 2
-dnl Copyright (C) 2000-2002, 2004, 2008-2010 Free Software Foundation, Inc.
+# glibc2.m4 serial 3
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -15,7 +15,7 @@
         [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2)
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
   Lucky GNU user
  #endif
 #endif
--- a/m4/glibc21.m4
+++ b/m4/glibc21.m4
@@ -1,17 +1,17 @@
-# glibc21.m4 serial 4
-dnl Copyright (C) 2000-2002, 2004, 2008-2010 Free Software Foundation, Inc.
+# glibc21.m4 serial 5
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-# Test for the GNU C Library, version 2.1 or newer.
+# Test for the GNU C Library, version 2.1 or newer, or uClibc.
 # From Bruno Haible.
 
 AC_DEFUN([gl_GLIBC21],
   [
-    AC_CACHE_CHECK([whether we are using the GNU C Library 2.1 or newer],
+    AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
       [ac_cv_gnu_library_2_1],
-      [AC_EGREP_CPP([Lucky GNU user],
+      [AC_EGREP_CPP([Lucky],
         [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
@@ -19,6 +19,9 @@
   Lucky GNU user
  #endif
 #endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
         ],
         [ac_cv_gnu_library_2_1=yes],
         [ac_cv_gnu_library_2_1=no])
--- a/m4/gnulib-common.m4
+++ b/m4/gnulib-common.m4
@@ -1,4 +1,4 @@
-# gnulib-common.m4 serial 20
+# gnulib-common.m4 serial 21
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -102,6 +102,19 @@
     [Define to 1 when the gnulib module $1 should be tested.])
 ])
 
+# Test whether <features.h> exists.
+# Set HAVE_FEATURES_H.
+AC_DEFUN([gl_FEATURES_H],
+[
+  AC_CHECK_HEADERS_ONCE([features.h])
+  if test $ac_cv_header_features_h = yes; then
+    HAVE_FEATURES_H=1
+  else
+    HAVE_FEATURES_H=0
+  fi
+  AC_SUBST([HAVE_FEATURES_H])
+])
+
 # m4_foreach_w
 # is a backport of autoconf-2.59c's m4_foreach_w.
 # Remove this macro when we can assume autoconf >= 2.60.
--- a/m4/iconv.m4
+++ b/m4/iconv.m4
@@ -1,4 +1,4 @@
-# iconv.m4 serial 15 (gettext-0.18.2)
+# iconv.m4 serial 17 (gettext-0.18.2)
 dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -78,6 +78,7 @@
 #include <string.h>
 int main ()
 {
+  int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
@@ -94,7 +95,8 @@
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
-          return 1;
+          result |= 1;
+        iconv_close (cd_utf8_to_88591);
       }
   }
   /* Test against Solaris 10 bug: Failures are not distinguishable from
@@ -113,7 +115,8 @@
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
-          return 1;
+          result |= 2;
+        iconv_close (cd_ascii_to_88591);
       }
   }
   /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */
@@ -131,7 +134,8 @@
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
-          return 1;
+          result |= 4;
+        iconv_close (cd_88591_to_utf8);
       }
   }
 #if 0 /* This bug could be worked around by the caller.  */
@@ -150,7 +154,8 @@
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
-          return 1;
+          result |= 8;
+        iconv_close (cd_88591_to_utf8);
       }
   }
 #endif
@@ -164,8 +169,8 @@
       && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
       /* Try HP-UX names.  */
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
-    return 1;
-  return 0;
+    result |= 16;
+  return result;
 }]])],
         [am_cv_func_iconv_works=yes],
         [am_cv_func_iconv_works=no],
@@ -252,5 +257,12 @@
          $am_cv_proto_iconv])
     AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
       [Define as const if the declaration of iconv() needs const.])
+    dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
+    m4_ifdef([gl_ICONV_H_DEFAULTS],
+      [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
+       if test -n "$am_cv_proto_iconv_arg1"; then
+         ICONV_CONST="const"
+       fi
+      ])
   fi
 ])
--- a/m4/iconv_h.m4
+++ b/m4/iconv_h.m4
@@ -1,4 +1,4 @@
-# iconv_h.m4 serial 6
+# iconv_h.m4 serial 7
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -29,7 +29,9 @@
 
 AC_DEFUN([gl_ICONV_H_DEFAULTS],
 [
+  GNULIB_ICONV=0;       AC_SUBST([GNULIB_ICONV])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  ICONV_CONST=;         AC_SUBST([ICONV_CONST])
   REPLACE_ICONV=0;      AC_SUBST([REPLACE_ICONV])
   REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN])
   REPLACE_ICONV_UTF=0;  AC_SUBST([REPLACE_ICONV_UTF])
--- a/m4/iconv_open.m4
+++ b/m4/iconv_open.m4
@@ -1,4 +1,4 @@
-# iconv_open.m4 serial 8
+# iconv_open.m4 serial 11
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
     dnl We know that GNU libiconv and GNU libc do.
     AC_EGREP_CPP([gnu_iconv], [
       #include <iconv.h>
-      #if defined _LIBICONV_VERSION || defined __GLIBC__
+      #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__)
        gnu_iconv
       #endif
       ], [gl_func_iconv_gnu=yes], [gl_func_iconv_gnu=no])
@@ -52,12 +52,6 @@
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_REQUIRE([gl_ICONV_H_DEFAULTS])
   if test "$am_cv_func_iconv" = yes; then
-    if test -n "$am_cv_proto_iconv_arg1"; then
-      ICONV_CONST="const"
-    else
-      ICONV_CONST=
-    fi
-    AC_SUBST([ICONV_CONST])
     AC_CACHE_CHECK([whether iconv supports conversion between UTF-8 and UTF-{16,32}{BE,LE}],
       [gl_cv_func_iconv_supports_utf],
       [
@@ -70,9 +64,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#define ASSERT(expr) if (!(expr)) return 1;
 int main ()
 {
+  int result = 0;
   /* Test conversion from UTF-8 to UTF-16BE with no errors.  */
   {
     static const char input[] =
@@ -80,25 +74,33 @@
     static const char expected[] =
       "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
     iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
     cd = iconv_open ("UTF-16BE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
+    if (cd == (iconv_t)(-1))
+      result |= 1;
+    else
+      {
+        char buf[100];
+        const char *inptr;
+        size_t inbytesleft;
+        char *outptr;
+        size_t outbytesleft;
+        size_t res;
+        inptr = input;
+        inbytesleft = sizeof (input) - 1;
+        outptr = buf;
+        outbytesleft = sizeof (buf);
+        res = iconv (cd,
+                     (ICONV_CONST char **) &inptr, &inbytesleft,
+                     &outptr, &outbytesleft);
+        if (!(res == 0 && inbytesleft == 0))
+          result |= 1;
+        else if (!(outptr == buf + (sizeof (expected) - 1)))
+          result |= 1;
+        else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+          result |= 1;
+        else if (!(iconv_close (cd) == 0))
+          result |= 1;
+      }
   }
   /* Test conversion from UTF-8 to UTF-16LE with no errors.  */
   {
@@ -107,25 +109,33 @@
     static const char expected[] =
       "J\000a\000p\000a\000n\000e\000s\000e\000 \000(\000\345\145\054\147\236\212)\000 \000[\000\065\330\015\335\065\330\036\335\065\330\055\335]\000";
     iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
     cd = iconv_open ("UTF-16LE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
+    if (cd == (iconv_t)(-1))
+      result |= 2;
+    else
+      {
+        char buf[100];
+        const char *inptr;
+        size_t inbytesleft;
+        char *outptr;
+        size_t outbytesleft;
+        size_t res;
+        inptr = input;
+        inbytesleft = sizeof (input) - 1;
+        outptr = buf;
+        outbytesleft = sizeof (buf);
+        res = iconv (cd,
+                     (ICONV_CONST char **) &inptr, &inbytesleft,
+                     &outptr, &outbytesleft);
+        if (!(res == 0 && inbytesleft == 0))
+          result |= 2;
+        else if (!(outptr == buf + (sizeof (expected) - 1)))
+          result |= 2;
+        else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+          result |= 2;
+        else if (!(iconv_close (cd) == 0))
+          result |= 2;
+      }
   }
   /* Test conversion from UTF-8 to UTF-32BE with no errors.  */
   {
@@ -134,25 +144,33 @@
     static const char expected[] =
       "\000\000\000J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\145\345\000\000\147\054\000\000\212\236\000\000\000)\000\000\000 \000\000\000[\000\001\325\015\000\001\325\036\000\001\325\055\000\000\000]";
     iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
     cd = iconv_open ("UTF-32BE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
+    if (cd == (iconv_t)(-1))
+      result |= 4;
+    else
+      {
+        char buf[100];
+        const char *inptr;
+        size_t inbytesleft;
+        char *outptr;
+        size_t outbytesleft;
+        size_t res;
+        inptr = input;
+        inbytesleft = sizeof (input) - 1;
+        outptr = buf;
+        outbytesleft = sizeof (buf);
+        res = iconv (cd,
+                     (ICONV_CONST char **) &inptr, &inbytesleft,
+                     &outptr, &outbytesleft);
+        if (!(res == 0 && inbytesleft == 0))
+          result |= 4;
+        else if (!(outptr == buf + (sizeof (expected) - 1)))
+          result |= 4;
+        else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+          result |= 4;
+        else if (!(iconv_close (cd) == 0))
+          result |= 4;
+      }
   }
   /* Test conversion from UTF-8 to UTF-32LE with no errors.  */
   {
@@ -161,25 +179,33 @@
     static const char expected[] =
       "J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\000\345\145\000\000\054\147\000\000\236\212\000\000)\000\000\000 \000\000\000[\000\000\000\015\325\001\000\036\325\001\000\055\325\001\000]\000\000\000";
     iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
     cd = iconv_open ("UTF-32LE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
+    if (cd == (iconv_t)(-1))
+      result |= 8;
+    else
+      {
+        char buf[100];
+        const char *inptr;
+        size_t inbytesleft;
+        char *outptr;
+        size_t outbytesleft;
+        size_t res;
+        inptr = input;
+        inbytesleft = sizeof (input) - 1;
+        outptr = buf;
+        outbytesleft = sizeof (buf);
+        res = iconv (cd,
+                     (ICONV_CONST char **) &inptr, &inbytesleft,
+                     &outptr, &outbytesleft);
+        if (!(res == 0 && inbytesleft == 0))
+          result |= 8;
+        else if (!(outptr == buf + (sizeof (expected) - 1)))
+          result |= 8;
+        else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+          result |= 8;
+        else if ((iconv_close (cd) == 0))
+          result |= 8;
+      }
   }
   /* Test conversion from UTF-16BE to UTF-8 with no errors.
      This test fails on NetBSD 3.0.  */
@@ -189,27 +215,35 @@
     static const char expected[] =
       "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
     iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
     cd = iconv_open ("UTF-8", "UTF-16BE");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
+    if (cd == (iconv_t)(-1))
+      result |= 16;
+    else
+      {
+        char buf[100];
+        const char *inptr;
+        size_t inbytesleft;
+        char *outptr;
+        size_t outbytesleft;
+        size_t res;
+        inptr = input;
+        inbytesleft = sizeof (input) - 1;
+        outptr = buf;
+        outbytesleft = sizeof (buf);
+        res = iconv (cd,
+                     (ICONV_CONST char **) &inptr, &inbytesleft,
+                     &outptr, &outbytesleft);
+        if (!(res == 0 && inbytesleft == 0))
+          result |= 16;
+        else if (!(outptr == buf + (sizeof (expected) - 1)))
+          result |= 16;
+        else if (!(memcmp (buf, expected, sizeof (expected) - 1) == 0))
+          result |= 16;
+        else if (!(iconv_close (cd) == 0))
+          result |= 16;
+      }
   }
-  return 0;
+  return result;
 }]])],
           [gl_cv_func_iconv_supports_utf=yes],
           [gl_cv_func_iconv_supports_utf=no],
--- a/m4/intdiv0.m4
+++ b/m4/intdiv0.m4
@@ -1,4 +1,4 @@
-# intdiv0.m4 serial 4 (gettext-0.18.2)
+# intdiv0.m4 serial 5 (gettext-0.18.2)
 dnl Copyright (C) 2002, 2007-2008, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -60,7 +60,7 @@
 
   z = x / y;
   nan = y / y;
-  exit (1);
+  exit (2);
 }
 ]])],
           [gt_cv_int_divbyzero_sigfpe=yes],
--- a/m4/isapipe.m4
+++ b/m4/isapipe.m4
@@ -39,8 +39,10 @@
             {
               int fd[2];
               struct stat st;
-              if (pipe (fd) != 0 || fstat (fd[0], &st) != 0)
+              if (pipe (fd) != 0)
                 return 1;
+              if (fstat (fd[0], &st) != 0)
+                return 2;
               if (2 <= argc && argv[1][0] == '-')
                 {
                   char const *yesno = (S_ISFIFO (st.st_mode) ? "yes" : "no");
@@ -48,21 +50,21 @@
                     {
                       long int i = st.st_nlink;
                       if (i != st.st_nlink)
-                        return 1;
+                        return 3;
                       printf ("%s (%ld)\n", yesno, i);
                     }
                   else
                     {
                       unsigned long int i = st.st_nlink;
                       if (i != st.st_nlink)
-                        return 1;
+                        return 4;
                       printf ("%s (%lu)\n", yesno, i);
                     }
                 }
               else
                 {
                   if (! S_ISFIFO (st.st_mode) && ! S_ISSOCK (st.st_mode))
-                    return 1;
+                    return 5;
                 }
               return 0;
             }]])],
--- a/m4/isfinite.m4
+++ b/m4/isfinite.m4
@@ -1,4 +1,4 @@
-# isfinite.m4 serial 7
+# isfinite.m4 serial 8
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -68,19 +68,23 @@
 #endif
 int main ()
 {
-  memory_long_double m;
-  unsigned int i;
+  int result = 0;
+
+  {
+    memory_long_double m;
+    unsigned int i;
 
-  /* The isfinite macro should be immune against changes in the sign bit and
-     in the mantissa bits.  The xor operation twiddles a bit that can only be
-     a sign bit or a mantissa bit (since the exponent never extends to
-     bit 31).  */
-  m.value = NaNl ();
-  m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
-  for (i = 0; i < NWORDS; i++)
-    m.word[i] |= 1;
-  if (isfinite (m.value))
-    return 1;
+    /* The isfinite macro should be immune against changes in the sign bit and
+       in the mantissa bits.  The xor operation twiddles a bit that can only be
+       a sign bit or a mantissa bit (since the exponent never extends to
+       bit 31).  */
+    m.value = NaNl ();
+    m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+    for (i = 0; i < NWORDS; i++)
+      m.word[i] |= 1;
+    if (isfinite (m.value))
+      result |= 1;
+  }
 
 #if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
@@ -99,14 +103,14 @@
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      result |= 2;
   }
   {
     /* Signalling NaN.  */
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      result |= 2;
   }
   /* The isfinite macro should recognize Pseudo-NaNs, Pseudo-Infinities,
      Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
@@ -119,35 +123,35 @@
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      result |= 4;
   }
   { /* Pseudo-Infinity.  */
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      result |= 8;
   }
   { /* Pseudo-Zero.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      result |= 16;
   }
   { /* Unnormalized number.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      result |= 32;
   }
   { /* Pseudo-Denormal.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
     if (isfinite (x.value))
-      return 1;
+      return |= 64;
   }
 #endif
 
-  return 0;
+  return result;
 }]])], [gl_cv_func_isfinitel_works=yes], [gl_cv_func_isfinitel_works=no],
       [case "$host_cpu" in
                                # Guess no on ia64, x86_64, i386.
--- a/m4/isnanf.m4
+++ b/m4/isnanf.m4
@@ -1,4 +1,4 @@
-# isnanf.m4 serial 11
+# isnanf.m4 serial 12
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -150,13 +150,13 @@
 typedef union { unsigned int word[NWORDS]; float value; } memory_float;
 int main()
 {
-  memory_float m;
+  int result = 0;
 
   if (isnanf (1.0f / 0.0f))
-    return 1;
+    result |= 1;
 
   if (!isnanf (NaN ()))
-    return 1;
+    result |= 2;
 
 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
   /* The isnanf function should be immune against changes in the sign bit and
@@ -164,16 +164,18 @@
      a sign bit or a mantissa bit.  */
   if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0)
     {
+      memory_float m;
+
       m.value = NaN ();
       /* Set the bits below the exponent to 01111...111.  */
       m.word[0] &= -1U << FLT_EXPBIT0_BIT;
       m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1;
       if (!isnanf (m.value))
-        return 1;
+        result |= 4;
     }
 #endif
 
-  return 0;
+  return result;
 }]])],
         [gl_cv_func_isnanf_works=yes],
         [gl_cv_func_isnanf_works=no],
--- a/m4/isnanl.m4
+++ b/m4/isnanl.m4
@@ -1,4 +1,4 @@
-# isnanl.m4 serial 13
+# isnanl.m4 serial 14
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -151,22 +151,26 @@
 #endif
 int main ()
 {
-  memory_long_double m;
-  unsigned int i;
+  int result = 0;
 
   if (!isnanl (NaNl ()))
-    return 1;
+    result |= 1;
+
+  {
+    memory_long_double m;
+    unsigned int i;
 
-  /* The isnanl function should be immune against changes in the sign bit and
-     in the mantissa bits.  The xor operation twiddles a bit that can only be
-     a sign bit or a mantissa bit (since the exponent never extends to
-     bit 31).  */
-  m.value = NaNl ();
-  m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
-  for (i = 0; i < NWORDS; i++)
-    m.word[i] |= 1;
-  if (!isnanl (m.value))
-    return 1;
+    /* The isnanl function should be immune against changes in the sign bit and
+       in the mantissa bits.  The xor operation twiddles a bit that can only be
+       a sign bit or a mantissa bit (since the exponent never extends to
+       bit 31).  */
+    m.value = NaNl ();
+    m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+    for (i = 0; i < NWORDS; i++)
+      m.word[i] |= 1;
+    if (!isnanl (m.value))
+      result |= 1;
+  }
 
 #if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
@@ -185,14 +189,14 @@
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 2;
   }
   {
     /* Signalling NaN.  */
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 2;
   }
   /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
      Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
@@ -205,35 +209,35 @@
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 4;
   }
   { /* Pseudo-Infinity.  */
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 8;
   }
   { /* Pseudo-Zero.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 16;
   }
   { /* Unnormalized number.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 32;
   }
   { /* Pseudo-Denormal.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 64;
   }
 #endif
 
-  return 0;
+  return result;
 }]])],
         [gl_cv_func_isnanl_works=yes],
         [gl_cv_func_isnanl_works=no],
--- a/m4/ldexpl.m4
+++ b/m4/ldexpl.m4
@@ -1,4 +1,4 @@
-# ldexpl.m4 serial 8
+# ldexpl.m4 serial 9
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -87,11 +87,20 @@
 extern long double ldexpl (long double, int);
 int main()
 {
-  volatile long double x1 = 1.0;
-  volatile long double y1 = ldexpl (x1, -1);
-  volatile long double x2 = 1.73205L;
-  volatile long double y2 = ldexpl (x2, 0);
-  return (y1 != 0.5L) || (y2 != x2);
+  int result = 0;
+  {
+    volatile long double x = 1.0;
+    volatile long double y = ldexpl (x, -1);
+    if (y != 0.5L)
+      result |= 1;
+  }
+  {
+    volatile long double x = 1.73205L;
+    volatile long double y = ldexpl (x, 0);
+    if (y != x)
+      result |= 2;
+  }
+  return result;
 }]])],
         [gl_cv_func_ldexpl_works=yes],
         [gl_cv_func_ldexpl_works=no],
--- a/m4/link.m4
+++ b/m4/link.m4
@@ -1,4 +1,4 @@
-# link.m4 serial 4
+# link.m4 serial 5
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -22,10 +22,15 @@
        AC_RUN_IFELSE(
          [AC_LANG_PROGRAM(
            [[#include <unistd.h>
-]], [[if (!link ("conftest.a", "conftest.b/")) return 1;
+           ]],
+           [[int result = 0;
+             if (!link ("conftest.a", "conftest.b/"))
+               result |= 1;
 #if HAVE_LSTAT
-      if (!link ("conftest.lnk/", "conftest.b")) return 2;
+             if (!link ("conftest.lnk/", "conftest.b"))
+               result |= 2;
 #endif
+             return result;
            ]])],
          [gl_cv_func_link_works=yes], [gl_cv_func_link_works=no],
          [gl_cv_func_link_works="guessing no"])
--- a/m4/linkat.m4
+++ b/m4/linkat.m4
@@ -1,4 +1,4 @@
-# serial 3
+# serial 4
 # See if we need to provide linkat replacement.
 
 dnl Copyright (C) 2009-2010 Free Software Foundation, Inc.
@@ -50,9 +50,8 @@
               #include <errno.h>
               #include <stdio.h>
             ]],
-            [[int fd;
-              int err;
-              int ret;
+            [[int result;
+              int fd;
               /* Create a regular file.  */
               fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
               if (fd < 0)
@@ -66,14 +65,15 @@
               if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
                           AT_SYMLINK_FOLLOW) < 0)
                 return 0;
+              result = 0;
               /* Test whether a trailing "/" is treated like "/.".  */
               if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
                           AT_SYMLINK_FOLLOW) == 0)
-                return 4;
+                result |= 4;
               if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
                           AT_SYMLINK_FOLLOW) == 0)
-                return 5;
-              return 0;
+                result |= 8;
+              return result;
             ]])],
          [gl_cv_func_linkat_slash=yes],
          [gl_cv_func_linkat_slash=no],
--- a/m4/locale-fr.m4
+++ b/m4/locale-fr.m4
@@ -1,4 +1,4 @@
-# locale-fr.m4 serial 11
+# locale-fr.m4 serial 12
 dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -31,11 +31,14 @@
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
--- a/m4/locale-ja.m4
+++ b/m4/locale-ja.m4
@@ -1,4 +1,4 @@
-# locale-ja.m4 serial 7
+# locale-ja.m4 serial 8
 dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -33,11 +33,14 @@
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -52,7 +55,7 @@
   if (MB_CUR_MAX == 1)
     return 1;
   /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
+     This excludes the UTF-8 encoding (except on MirBSD).  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
   for (p = buf; *p != '\0'; p++)
--- a/m4/locale-zh.m4
+++ b/m4/locale-zh.m4
@@ -1,4 +1,4 @@
-# locale-zh.m4 serial 6
+# locale-zh.m4 serial 7
 dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -34,11 +34,14 @@
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -49,7 +52,7 @@
   if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
 #endif
   /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
+     This excludes the UTF-8 encoding (except on MirBSD).  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
   for (p = buf; *p != '\0'; p++)
--- a/m4/mbrlen.m4
+++ b/m4/mbrlen.m4
@@ -1,4 +1,4 @@
-# mbrlen.m4 serial 3
+# mbrlen.m4 serial 4
 dnl Copyright (C) 2008, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -110,6 +110,7 @@
 #include <wchar.h>
 int main ()
 {
+  int result = 0;
   /* This fails on Solaris.  */
   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
     {
@@ -121,7 +122,7 @@
         {
           input[1] = '\0';
           if (mbrlen (input + 2, 5, &state) != 1)
-            return 1;
+            result |= 1;
         }
     }
   /* This fails on HP-UX 11.11.  */
@@ -135,10 +136,10 @@
         {
           input[1] = '\0';
           if (mbrlen (input + 2, 5, &state) != 2)
-            return 1;
+            result |= 2;
         }
     }
-  return 0;
+  return result;
 }]])],
           [gl_cv_func_mbrlen_retval=yes],
           [gl_cv_func_mbrlen_retval=no],
--- a/m4/mbrtowc.m4
+++ b/m4/mbrtowc.m4
@@ -1,4 +1,4 @@
-# mbrtowc.m4 serial 18
+# mbrtowc.m4 serial 19
 dnl Copyright (C) 2001-2002, 2004-2005, 2008-2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -271,6 +271,7 @@
 #include <wchar.h>
 int main ()
 {
+  int result = 0;
   /* This fails on Solaris.  */
   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
     {
@@ -283,7 +284,7 @@
         {
           input[1] = '\0';
           if (mbrtowc (&wc, input + 2, 5, &state) != 1)
-            return 1;
+            result |= 1;
         }
     }
   /* This fails on HP-UX 11.11.  */
@@ -298,10 +299,10 @@
         {
           input[1] = '\0';
           if (mbrtowc (&wc, input + 2, 5, &state) != 2)
-            return 1;
+            result |= 2;
         }
     }
-  return 0;
+  return result;
 }]])],
           [gl_cv_func_mbrtowc_retval=yes],
           [gl_cv_func_mbrtowc_retval=no],
--- a/m4/mbsrtowcs.m4
+++ b/m4/mbsrtowcs.m4
@@ -1,4 +1,4 @@
-# mbsrtowcs.m4 serial 7
+# mbsrtowcs.m4 serial 8
 dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -64,6 +64,7 @@
 #include <wchar.h>
 int main ()
 {
+  int result = 0;
   /* Test whether the function works when started with a conversion state
      in non-initial state.  This fails on HP-UX 11.11 and Solaris 10.  */
   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
@@ -77,7 +78,7 @@
           {
             const char *src = input + 2;
             if (mbsrtowcs (NULL, &src, 10, &state) != 4)
-              return 1;
+              result |= 1;
           }
     }
   if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
@@ -91,7 +92,7 @@
           {
             const char *src = input + 4;
             if (mbsrtowcs (NULL, &src, 10, &state) != 3)
-              return 1;
+              result |= 2;
           }
     }
   if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
@@ -105,10 +106,10 @@
           {
             const char *src = input + 2;
             if (mbsrtowcs (NULL, &src, 10, &state) != 4)
-              return 1;
+              result |= 4;
           }
     }
-  return 0;
+  return result;
 }]])],
           [gl_cv_func_mbsrtowcs_works=yes],
           [gl_cv_func_mbsrtowcs_works=no],
--- a/m4/memchr.m4
+++ b/m4/memchr.m4
@@ -1,4 +1,4 @@
-# memchr.m4 serial 9
+# memchr.m4 serial 10
 dnl Copyright (C) 2002-2004, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -35,6 +35,7 @@
 # endif
 #endif
 ]], [[
+  int result = 0;
   char *fence = NULL;
 #if HAVE_SYS_MMAN_H && HAVE_MPROTECT
 # if HAVE_MAP_ANONYMOUS
@@ -58,14 +59,14 @@
   if (fence)
     {
       if (memchr (fence, 0, 0))
-        return 1;
+        result |= 1;
       strcpy (fence - 9, "12345678");
       if (memchr (fence - 9, 0, 79) != fence - 1)
-        return 2;
+        result |= 2;
       if (memchr (fence - 1, 0, 3) != fence - 1)
-        return 3;
+        result |= 4;
     }
-  return 0;
+  return result;
 ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no],
       [dnl Be pessimistic for now.
        gl_cv_func_memchr_works="guessing no"])])
--- a/m4/memmem.m4
+++ b/m4/memmem.m4
@@ -1,4 +1,4 @@
-# memmem.m4 serial 17
+# memmem.m4 serial 20
 dnl Copyright (C) 2002, 2003, 2004, 2007, 2008, 2009, 2010 Free Software
 dnl Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
@@ -35,7 +35,8 @@
            [
 #ifdef __GNU_LIBRARY__
  #include <features.h>
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #elif defined __CYGWIN__
@@ -63,7 +64,7 @@
 AC_DEFUN([gl_FUNC_MEMMEM],
 [
   AC_REQUIRE([gl_FUNC_MEMMEM_SIMPLE])
-  if test $HAVE_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then
+  if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then
     AC_CACHE_CHECK([whether memmem works in linear time],
       [gl_cv_func_memmem_works_fast],
       [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
@@ -72,10 +73,11 @@
 #include <stdlib.h> /* for malloc */
 #include <unistd.h> /* for alarm */
 static void quit (int sig) { exit (sig + 128); }
-]], [[size_t m = 1000000;
+]], [[
+    int result = 0;
+    size_t m = 1000000;
     char *haystack = (char *) malloc (2 * m + 1);
     char *needle = (char *) malloc (m + 1);
-    void *result = 0;
     /* Failure to compile this test due to missing alarm is okay,
        since all such platforms (mingw) also lack memmem.  */
     signal (SIGALRM, quit);
@@ -87,10 +89,14 @@
         haystack[2 * m] = 'B';
         memset (needle, 'A', m);
         needle[m] = 'B';
-        result = memmem (haystack, 2 * m + 1, needle, m + 1);
+        if (!memmem (haystack, 2 * m + 1, needle, m + 1))
+          result |= 1;
       }
     /* Check for empty needle behavior.  */
-    return !result || !memmem ("a", 1, 0, 0);]])],
+    if (!memmem ("a", 1, 0, 0))
+      result |= 2;
+    return result;
+    ]])],
         [gl_cv_func_memmem_works_fast=yes], [gl_cv_func_memmem_works_fast=no],
         [dnl Only glibc > 2.12 and cygwin > 1.7.7 are known to have a
          dnl bug-free memmem that works in linear time.
@@ -98,7 +104,8 @@
            [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #endif
--- a/m4/mkfifo.m4
+++ b/m4/mkfifo.m4
@@ -1,4 +1,4 @@
-# serial 1
+# serial 2
 # See if we need to provide mkfifo replacement.
 
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
@@ -27,10 +27,15 @@
        AC_RUN_IFELSE(
          [AC_LANG_PROGRAM(
            [[#include <sys/stat.h>
-]], [[if (!mkfifo ("conftest.tmp/", 0600)) return 1;
+           ]],
+           [[int result = 0;
+             if (!mkfifo ("conftest.tmp/", 0600))
+               result |= 1;
 #if HAVE_LSTAT
-      if (!mkfifo ("conftest.lnk/", 0600)) return 2;
+             if (!mkfifo ("conftest.lnk/", 0600))
+               result |= 2;
 #endif
+             return result;
            ]])],
          [gl_cv_func_mkfifo_works=yes], [gl_cv_func_mkfifo_works=no],
          [gl_cv_func_mkfifo_works="guessing no"])
--- a/m4/mknod.m4
+++ b/m4/mknod.m4
@@ -1,4 +1,4 @@
-# serial 2
+# serial 3
 # See if we need to provide mknod replacement.
 
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
@@ -30,7 +30,7 @@
       if (!geteuid ()) return 99;
       if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;]])],
          [gl_cv_func_mknod_works=yes],
-         [if test $? == 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+         [if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
             AC_MSG_FAILURE([you should not run configure as root ]dnl
 [(set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)])
           fi
--- a/m4/mkstemp.m4
+++ b/m4/mkstemp.m4
@@ -1,4 +1,4 @@
-#serial 18
+#serial 19
 
 # Copyright (C) 2001, 2003-2007, 2009-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -25,7 +25,8 @@
         AC_RUN_IFELSE(
           [AC_LANG_PROGRAM(
             [AC_INCLUDES_DEFAULT],
-            [[int i;
+            [[int result = 0;
+              int i;
               off_t large = (off_t) 4294967295u;
               if (large < 0)
                 large = 2147483647;
@@ -34,11 +35,16 @@
                   char templ[] = "conftest.mkstemp/coXXXXXX";
                   int (*mkstemp_function) (char *) = mkstemp;
                   int fd = mkstemp_function (templ);
-                  if (fd < 0 || lseek (fd, large, SEEK_SET) != large)
-                    return 1;
-                  close (fd);
+                  if (fd < 0)
+                    result |= 1;
+                  else
+                    {
+                      if (lseek (fd, large, SEEK_SET) != large)
+                        result |= 2;
+                      close (fd);
+                    }
                 }
-              return 0;]])],
+              return result;]])],
           [gl_cv_func_working_mkstemp=yes],
           [gl_cv_func_working_mkstemp=no],
           [gl_cv_func_working_mkstemp=no])
--- a/m4/mktime.m4
+++ b/m4/mktime.m4
@@ -1,4 +1,4 @@
-# serial 16
+# serial 17
 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -162,6 +162,7 @@
 int
 main ()
 {
+  int result = 0;
   time_t t, delta;
   int i, j;
 
@@ -187,21 +188,27 @@
 
       for (t = 0; t <= time_t_max - delta; t += delta)
         if (! mktime_test (t))
-          return 1;
+          result |= 1;
       if (! (mktime_test ((time_t) 1)
              && mktime_test ((time_t) (60 * 60))
              && mktime_test ((time_t) (60 * 60 * 24))))
-        return 1;
+        result |= 2;
 
       for (j = 1; ; j <<= 1)
         if (! bigtime_test (j))
-          return 1;
+          result |= 4;
         else if (INT_MAX / 2 < j)
           break;
       if (! bigtime_test (INT_MAX))
-        return 1;
+        result |= 8;
     }
-  return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ());
+  if (! irix_6_4_bug ())
+    result |= 16;
+  if (! spring_forward_gap ())
+    result |= 32;
+  if (! year_2050_test ())
+    result |= 64;
+  return result;
 }]])],
                [ac_cv_func_working_mktime=yes],
                [ac_cv_func_working_mktime=no],
--- a/m4/mmap-anon.m4
+++ b/m4/mmap-anon.m4
@@ -1,4 +1,4 @@
-# mmap-anon.m4 serial 8
+# mmap-anon.m4 serial 9
 dnl Copyright (C) 2005, 2007, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -15,10 +15,6 @@
 
 AC_DEFUN([gl_FUNC_MMAP_ANON],
 [
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
--- a/m4/nanosleep.m4
+++ b/m4/nanosleep.m4
@@ -1,4 +1,4 @@
-# serial 31
+# serial 32
 
 dnl From Jim Meyering.
 dnl Check for the nanosleep function.
@@ -74,7 +74,7 @@
             static struct timespec ts_remaining;
             static struct sigaction act;
             if (! nanosleep)
-              return 1;
+              return 2;
             act.sa_handler = check_for_SIGALRM;
             sigemptyset (&act.sa_mask);
             sigaction (SIGALRM, &act, NULL);
@@ -82,18 +82,21 @@
             ts_sleep.tv_nsec = 1;
             alarm (1);
             if (nanosleep (&ts_sleep, NULL) != 0)
-              return 1;
+              return 3;
             ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
             ts_sleep.tv_nsec = 999999999;
             alarm (1);
-            if (nanosleep (&ts_sleep, &ts_remaining) == -1 && errno == EINTR
-                && TYPE_MAXIMUM (time_t) - 10 < ts_remaining.tv_sec)
-              return 0;
-            return 119;
+            if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+              return 4;
+            if (errno != EINTR)
+              return 5;
+            if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
+              return 6;
+            return 0;
           }]])],
        [gl_cv_func_nanosleep=yes],
        [case $? in dnl (
-        119) gl_cv_func_nanosleep='no (mishandles large arguments)';; dnl (
+        4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';; dnl (
         *)   gl_cv_func_nanosleep=no;;
         esac],
        [gl_cv_func_nanosleep=cross-compiling])
--- a/m4/open.m4
+++ b/m4/open.m4
@@ -1,4 +1,4 @@
-# open.m4 serial 9
+# open.m4 serial 10
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -30,10 +30,14 @@
 #endif
 int main ()
 {
+  int result = 0;
 #if HAVE_LSTAT
-  if (open ("conftest.lnk/", O_RDONLY) != -1) return 2;
+  if (open ("conftest.lnk/", O_RDONLY) != -1)
+    result |= 1;
 #endif
-  return open ("conftest.sl/", O_CREAT, 0600) >= 0;
+  if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+    result |= 2;
+  return result;
 }]])],
             [gl_cv_func_open_slash=yes],
             [gl_cv_func_open_slash=no],
--- a/m4/openat.m4
+++ b/m4/openat.m4
@@ -1,4 +1,4 @@
-# serial 30
+# serial 31
 # See if we need to use our replacement for Solaris' openat et al functions.
 
 dnl Copyright (C) 2004-2010 Free Software Foundation, Inc.
@@ -63,6 +63,9 @@
 # gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
 AC_DEFUN([gl_FUNC_FCHOWNAT_DEREF_BUG],
 [
+  dnl Persuade glibc's <unistd.h> to declare fchownat().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_CACHE_CHECK([whether fchownat works with AT_SYMLINK_NOFOLLOW],
     gl_cv_func_fchownat_nofollow_works,
     [
@@ -96,6 +99,38 @@
   AS_IF([test $gl_cv_func_fchownat_nofollow_works = no], [$1], [$2])
 ])
 
+# gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
+AC_DEFUN([gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG],
+[
+  dnl Persuade glibc's <unistd.h> to declare fchownat().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  AC_CACHE_CHECK([whether fchownat works with an empty file name],
+    [gl_cv_func_fchownat_empty_filename_works],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <unistd.h>
+            #include <fcntl.h>
+          ]],
+          [[int fd;
+            int ret;
+            if (mkdir ("conftestdir", 0700) < 0)
+              return 2;
+            fd = open ("conftestdir", O_RDONLY);
+            if (fd < 0)
+              return 3;
+            ret = fchownat (fd, "", -1, -1, 0);
+            close (fd);
+            rmdir ("conftestdir");
+            return ret == 0;
+          ]])],
+       [gl_cv_func_fchownat_empty_filename_works=yes],
+       [gl_cv_func_fchownat_empty_filename_works=no],
+       [gl_cv_func_fchownat_empty_filename_works="guessing no"])
+    ])
+  AS_IF([test "$gl_cv_func_fchownat_empty_filename_works" != yes], [$1], [$2])
+])
+
 # If we have the fchownat function, and it has the bug (in glibc-2.4)
 # that it dereferences symlinks even with AT_SYMLINK_NOFOLLOW, then
 # use the replacement function.
@@ -104,6 +139,7 @@
 # Also use the replacement function if fchownat is simply not available.
 AC_DEFUN([gl_FUNC_FCHOWNAT],
 [
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REQUIRE([gl_FUNC_CHOWN])
   AC_CHECK_FUNC([fchownat],
     [gl_FUNC_FCHOWNAT_DEREF_BUG(
@@ -112,6 +148,12 @@
                   [Define to 1 if your platform has fchownat, but it cannot
                    perform lchown tasks.])
        ])
+     gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG(
+       [REPLACE_FCHOWNAT=1
+        AC_DEFINE([FCHOWNAT_EMPTY_FILENAME_BUG], [1],
+                  [Define to 1 if your platform has fchownat, but it does
+                   not reject an empty file name.])
+       ])
      if test $REPLACE_CHOWN = 1; then
        REPLACE_FCHOWNAT=1
      fi],
--- a/m4/pipe.m4
+++ b/m4/pipe.m4
@@ -1,12 +1,16 @@
-# pipe.m4 serial 4
-dnl Copyright (C) 2004, 2008, 2009, 2010 Free Software Foundation, Inc.
+# pipe.m4 serial 1
+dnl Copyright (C) 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gl_PIPE],
+AC_DEFUN([gl_FUNC_PIPE],
 [
-  dnl Prerequisites of lib/pipe.c.
-  AC_REQUIRE([AC_C_INLINE])
-  AC_REQUIRE([AC_TYPE_MODE_T])
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+
+  AC_CHECK_FUNCS_ONCE([pipe])
+  if test $ac_cv_func_pipe != yes; then
+    HAVE_PIPE=0
+    AC_LIBOBJ([pipe])
+  fi
 ])
--- a/m4/poll.m4
+++ b/m4/poll.m4
@@ -1,4 +1,4 @@
-# poll.m4 serial 11
+# poll.m4 serial 12
 dnl Copyright (c) 2003, 2005, 2006, 2007, 2009, 2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -20,27 +20,30 @@
 #include <poll.h>
          int main()
          {
+           int result = 0;
            struct pollfd ufd;
            /* Try /dev/null for reading.  */
            ufd.fd = open ("/dev/null", O_RDONLY);
-           if (ufd.fd < 0)
-             /* If /dev/null does not exist, it's not MacOS X nor AIX. */
-             return 0;
-           ufd.events = POLLIN;
-           ufd.revents = 0;
-           if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLIN))
-             return 1;
+           /* If /dev/null does not exist, it's not MacOS X nor AIX. */
+           if (ufd.fd >= 0)
+             {
+               ufd.events = POLLIN;
+               ufd.revents = 0;
+               if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLIN))
+                 result |= 1;
+             }
            /* Try /dev/null for writing.  */
            ufd.fd = open ("/dev/null", O_WRONLY);
-           if (ufd.fd < 0)
-             /* If /dev/null does not exist, it's not MacOS X nor AIX. */
-             return 0;
-           ufd.events = POLLOUT;
-           ufd.revents = 0;
-           if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLOUT))
-             return 1;
+           /* If /dev/null does not exist, it's not MacOS X nor AIX. */
+           if (ufd.fd >= 0)
+             {
+               ufd.events = POLLOUT;
+               ufd.revents = 0;
+               if (!(poll (&ufd, 1, 0) == 1 && ufd.revents == POLLOUT))
+                 result |= 2;
+             }
            /* Trying /dev/tty may be too environment dependent.  */
-           return 0;
+           return result;
          }]])],
          [gl_cv_func_poll=yes],
          [gl_cv_func_poll=no],
--- a/m4/popen.m4
+++ b/m4/popen.m4
@@ -1,4 +1,4 @@
-# popen.m4 serial 2
+# popen.m4 serial 3
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -11,11 +11,16 @@
     [gl_cv_func_popen_works],
     [
       AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
-]], [FILE *child;
+]], [int result = 0;
+     FILE *child;
      fclose (stdin);
      fclose (stdout);
      child = popen ("echo a", "r");
-     return !(fgetc (child) == 'a' && pclose (child) == 0);
+     if (fgetc (child) != 'a')
+       result |= 1;
+     if (pclose (child) != 0)
+       result |= 2;
+     return result;
 ])], [gl_cv_func_popen_works=yes], [gl_cv_func_popen_works=no],
      dnl For now, only cygwin 1.5 or older is known to be broken.
      [gl_cv_func_popen_works='guessing yes'])
--- a/m4/posix_spawn.m4
+++ b/m4/posix_spawn.m4
@@ -1,4 +1,4 @@
-# posix_spawn.m4 serial 7
+# posix_spawn.m4 serial 8
 dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -291,7 +291,7 @@
   if (fflush (fp) || fclose (fp))
     {
       perror ("cannot prepare data file");
-      return 1;
+      return 2;
     }
 
   /* Avoid reading from our stdin, as it could block.  */
@@ -309,7 +309,7 @@
         posix_spawn_file_actions_destroy (&actions);
       errno = err;
       perror ("subprocess failed");
-      return 1;
+      return 3;
     }
   posix_spawn_file_actions_destroy (&actions);
   status = 0;
@@ -318,13 +318,13 @@
   if (!WIFEXITED (status))
     {
       fprintf (stderr, "subprocess terminated with unexpected wait status %d\n", status);
-      return 1;
+      return 4;
     }
   exitstatus = WEXITSTATUS (status);
   if (exitstatus != 0)
     {
       fprintf (stderr, "subprocess terminated with unexpected exit status %d\n", exitstatus);
-      return 1;
+      return 5;
     }
   return 0;
 }
@@ -339,7 +339,7 @@
       && memcmp (buf, "Halle Potta", 11) == 0)
     return 0;
   else
-    return 2;
+    return 8;
 }
 
 static void
--- a/m4/printf.m4
+++ b/m4/printf.m4
@@ -1,4 +1,4 @@
-# printf.m4 serial 35
+# printf.m4 serial 40
 dnl Copyright (C) 2003, 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -32,25 +32,26 @@
 static char buf[100];
 int main ()
 {
+  int result = 0;
 #if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
   buf[0] = '\0';
   if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0
       || strcmp (buf, "12345671 33") != 0)
-    return 1;
+    result |= 1;
 #endif
   buf[0] = '\0';
   if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0
       || strcmp (buf, "12345672 33") != 0)
-    return 1;
+    result |= 2;
   buf[0] = '\0';
   if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0
       || strcmp (buf, "12345673 33") != 0)
-    return 1;
+    result |= 4;
   buf[0] = '\0';
   if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0
       || strcmp (buf, "1.5 33") != 0)
-    return 1;
-  return 0;
+    result |= 8;
+  return result;
 }]])],
         [gl_cv_func_printf_sizes_c99=yes],
         [gl_cv_func_printf_sizes_c99=no],
@@ -102,19 +103,20 @@
 static char buf[10000];
 int main ()
 {
+  int result = 0;
   buf[0] = '\0';
   if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
       || strcmp (buf, "1.750000 33") != 0)
-    return 1;
+    result |= 1;
   buf[0] = '\0';
   if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
       || strcmp (buf, "1.750000e+00 33") != 0)
-    return 1;
+    result |= 2;
   buf[0] = '\0';
   if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
       || strcmp (buf, "1.75 33") != 0)
-    return 1;
-  return 0;
+    result |= 4;
+  return result;
 }]])],
         [gl_cv_func_printf_long_double=yes],
         [gl_cv_func_printf_long_double=no],
@@ -175,39 +177,40 @@
 static double zero = 0.0;
 int main ()
 {
+  int result = 0;
   if (sprintf (buf, "%f", 1.0 / 0.0) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%f", -1.0 / 0.0) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%f", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 2;
   if (sprintf (buf, "%e", 1.0 / 0.0) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
+    result |= 4;
   if (sprintf (buf, "%e", -1.0 / 0.0) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 4;
   if (sprintf (buf, "%e", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 8;
   if (sprintf (buf, "%g", 1.0 / 0.0) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
+    result |= 16;
   if (sprintf (buf, "%g", -1.0 / 0.0) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 16;
   if (sprintf (buf, "%g", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 32;
   /* This test fails on HP-UX 10.20.  */
   if (have_minus_zero ())
     if (sprintf (buf, "%g", - zero) < 0
         || strcmp (buf, "-0") != 0)
-    return 1;
-  return 0;
+    result |= 64;
+  return result;
 }]])],
         [gl_cv_func_printf_infinite=yes],
         [gl_cv_func_printf_infinite=no],
@@ -289,34 +292,35 @@
 static long double zeroL = 0.0L;
 int main ()
 {
+  int result = 0;
   nocrash_init();
   if (sprintf (buf, "%Lf", 1.0L / 0.0L) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lf", -1.0L / 0.0L) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Le", 1.0L / 0.0L) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Le", -1.0L / 0.0L) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Le", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lg", 1.0L / 0.0L) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lg", -1.0L / 0.0L) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 1;
 #if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
@@ -335,13 +339,13 @@
       { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
   }
   {
     /* Signalling NaN.  */
@@ -349,81 +353,81 @@
       { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
   }
   { /* Pseudo-NaN.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 4;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 4;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 4;
   }
   { /* Pseudo-Infinity.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 8;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 8;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 8;
   }
   { /* Pseudo-Zero.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 16;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 16;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 16;
   }
   { /* Unnormalized number.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 32;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 32;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 32;
   }
   { /* Pseudo-Denormal.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 64;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 64;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 64;
   }
 #endif
-  return 0;
+  return result;
 }]])],
             [gl_cv_func_printf_infinite_long_double=yes],
             [gl_cv_func_printf_infinite_long_double=no],
@@ -439,16 +443,9 @@
                                          # Guess yes on FreeBSD >= 6.
                    freebsd[1-5]*)        gl_cv_func_printf_infinite_long_double="guessing no";;
                    freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                         # Guess yes on MacOS X >= 10.3.
-                   darwin[1-6].*)        gl_cv_func_printf_infinite_long_double="guessing no";;
-                   darwin*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
                                          # Guess yes on HP-UX >= 11.
                    hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
                    hpux*)                gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                         # Guess yes on NetBSD >= 3.
-                   netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                                         gl_cv_func_printf_infinite_long_double="guessing no";;
-                   netbsd*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
                                          # If we don't know, assume the worst.
                    *)                    gl_cv_func_printf_infinite_long_double="guessing no";;
                  esac
@@ -483,37 +480,38 @@
 static char buf[100];
 int main ()
 {
+  int result = 0;
   if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
       || (strcmp (buf, "0x1.922p+1 33") != 0
           && strcmp (buf, "0x3.244p+0 33") != 0
           && strcmp (buf, "0x6.488p-1 33") != 0
           && strcmp (buf, "0xc.91p-2 33") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
       || (strcmp (buf, "-0X1.922P+1 33") != 0
           && strcmp (buf, "-0X3.244P+0 33") != 0
           && strcmp (buf, "-0X6.488P-1 33") != 0
           && strcmp (buf, "-0XC.91P-2 33") != 0))
-    return 1;
+    result |= 2;
   /* This catches a FreeBSD 6.1 bug: it doesn't round.  */
   if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
       || (strcmp (buf, "0x1.83p+0 33") != 0
           && strcmp (buf, "0x3.05p-1 33") != 0
           && strcmp (buf, "0x6.0ap-2 33") != 0
           && strcmp (buf, "0xc.14p-3 33") != 0))
-    return 1;
+    result |= 4;
   /* This catches a FreeBSD 6.1 bug.  See
      <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
   if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
       || buf[0] == '0')
-    return 1;
+    result |= 8;
   /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug.  */
   if (sprintf (buf, "%.1a", 1.999) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
-    return 1;
+    result |= 16;
   /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
      glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
   if (sprintf (buf, "%.1La", 1.999L) < 0
@@ -521,8 +519,8 @@
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
-    return 1;
-  return 0;
+    result |= 32;
+  return result;
 }]])],
         [gl_cv_func_printf_directive_a=yes],
         [gl_cv_func_printf_directive_a=no],
@@ -533,7 +531,7 @@
              AC_EGREP_CPP([BZ2908], [
                #include <features.h>
                #ifdef __GNU_LIBRARY__
-                #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)
+                #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__
                  BZ2908
                 #endif
                #endif
@@ -566,17 +564,18 @@
 static char buf[100];
 int main ()
 {
+  int result = 0;
   if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
       || strcmp (buf, "1234567.000000 33") != 0)
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%F", 1.0 / 0.0) < 0
       || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
-    return 1;
+    result |= 2;
   /* This catches a Cygwin 1.5.x bug.  */
   if (sprintf (buf, "%.F", 1234.0) < 0
       || strcmp (buf, "1234") != 0)
-    return 1;
-  return 0;
+    result |= 4;
+  return result;
 }]])],
         [gl_cv_func_printf_directive_f=yes],
         [gl_cv_func_printf_directive_f=no],
@@ -671,6 +670,7 @@
 #include <string.h>
 int main ()
 {
+  int result = 0;
   char buf[100];
   /* Test whether %ls works at all.
      This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on
@@ -680,7 +680,7 @@
     buf[0] = '\0';
     if (sprintf (buf, "%ls", wstring) < 0
         || strcmp (buf, "abc") != 0)
-      return 1;
+      result |= 1;
   }
   /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an
      assertion failure inside libc), but not on OpenBSD 4.0.  */
@@ -689,7 +689,7 @@
     buf[0] = '\0';
     if (sprintf (buf, "%ls", wstring) < 0
         || strcmp (buf, "a") != 0)
-      return 1;
+      result |= 2;
   }
   /* Test whether precisions in %ls are supported as specified in ISO C 99
      section 7.19.6.1:
@@ -704,9 +704,9 @@
     buf[0] = '\0';
     if (sprintf (buf, "%.2ls", wstring) < 0
         || strcmp (buf, "ab") != 0)
-      return 1;
+      result |= 8;
   }
-  return 0;
+  return result;
 }]])],
         [gl_cv_func_printf_directive_ls=yes],
         [gl_cv_func_printf_directive_ls=no],
@@ -889,8 +889,9 @@
 
 dnl Test whether the *printf family of functions supports large precisions.
 dnl On mingw, precisions larger than 512 are treated like 512, in integer,
-dnl floating-point or pointer output. On BeOS, precisions larger than 1044
-dnl crash the program.
+dnl floating-point or pointer output. On Solaris 10/x86, precisions larger
+dnl than 510 in floating-point output crash the program. On BeOS, precisions
+dnl larger than 1044 crash the program.
 dnl Result is gl_cv_func_printf_precision.
 
 AC_DEFUN([gl_PRINTF_PRECISION],
@@ -907,20 +908,24 @@
 static char buf[5000];
 int main ()
 {
+  int result = 0;
 #ifdef __BEOS__
   /* On BeOS, this would crash and show a dialog box.  Avoid the crash.  */
   return 1;
 #endif
   if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
-    return 1;
-  return 0;
+    result |= 1;
+  if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5)
+    result |= 2;
+  return result;
 }]])],
         [gl_cv_func_printf_precision=yes],
         [gl_cv_func_printf_precision=no],
         [
 changequote(,)dnl
          case "$host_os" in
-           # Guess no only on native Win32 and BeOS systems.
+           # Guess no only on Solaris, native Win32, and BeOS systems.
+           solaris*)     gl_cv_func_printf_precision="guessing no" ;;
            mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
            beos*)        gl_cv_func_printf_precision="guessing no" ;;
            *)            gl_cv_func_printf_precision="guessing yes" ;;
@@ -1439,12 +1444,14 @@
 dnl   glibc 2.5                      .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   glibc 2.3.6                    .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   FreeBSD 5.4, 6.1               .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
+dnl   MacOS X 10.5.8                 .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
 dnl   MacOS X 10.3.9                 .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
 dnl   OpenBSD 3.9, 4.0               .  .  #  #  #  #  .  #  .  #  .  #  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.7.0 (2009)            .  .  .  #  .  .  .  ?  .  .  .  .  .  ?  .  .  .  .  .  .
 dnl   Cygwin 1.5.25 (2008)           .  .  .  #  #  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.5.19 (2006)           #  .  .  #  #  #  .  #  .  #  .  #  #  #  .  .  .  .  .  .
-dnl   Solaris 10                     .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Solaris 11 2010-11             .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Solaris 10                     .  .  #  #  #  .  .  #  .  .  .  #  #  .  .  .  .  .  .  .
 dnl   Solaris 2.6 ... 9              #  .  #  #  #  #  .  #  .  .  .  #  .  .  .  .  .  .  .  .
 dnl   Solaris 2.5.1                  #  .  #  #  #  #  .  #  .  .  .  #  .  .  #  #  #  #  #  #
 dnl   AIX 5.2, 7.1                   .  .  #  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
@@ -1455,6 +1462,7 @@
 dnl   IRIX 6.5                       #  .  #  #  #  #  .  #  .  .  .  #  .  .  .  .  #  .  .  .
 dnl   OSF/1 5.1                      #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  #  .  .  #
 dnl   OSF/1 4.0d                     #  .  #  #  #  #  .  .  .  .  .  #  .  .  #  #  #  #  #  #
+dnl   NetBSD 5.0                     .  .  .  #  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
 dnl   NetBSD 4.0                     .  ?  ?  ?  ?  ?  .  ?  .  ?  ?  ?  ?  ?  .  .  .  ?  ?  ?
 dnl   NetBSD 3.0                     .  .  .  .  #  #  .  ?  #  #  ?  #  .  #  .  .  .  .  .  .
 dnl   Haiku                          .  .  .  #  #  #  .  #  .  .  .  .  .  ?  .  .  .  .  .  .
--- a/m4/putenv.m4
+++ b/m4/putenv.m4
@@ -1,4 +1,4 @@
-# putenv.m4 serial 16
+# putenv.m4 serial 17
 dnl Copyright (C) 2002-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -21,11 +21,11 @@
 
     /* Try to remove it.  */
     if (putenv ("CONFTEST_putenv"))
-      return 1;
+      return 2;
 
     /* Make sure it was deleted.  */
     if (getenv ("CONFTEST_putenv") != 0)
-      return 1;
+      return 3;
 
     return 0;
               ]])],
--- a/m4/readline.m4
+++ b/m4/readline.m4
@@ -1,4 +1,4 @@
-# readline.m4 serial 7
+# readline.m4 serial 8
 dnl Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -40,7 +40,12 @@
       AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
 #include <readline/readline.h>]],
           [[readline((char*)0);]])],
-        [gl_cv_lib_readline=" -l$extra_lib"])
+        [if test -n "$extra_lib"; then
+           gl_cv_lib_readline="yes, requires -l$extra_lib"
+         else
+           gl_cv_lib_readline="yes"
+         fi
+        ])
       if test "$gl_cv_lib_readline" != no; then
         break
       fi
@@ -50,9 +55,10 @@
 
   if test "$gl_cv_lib_readline" != no; then
     AC_DEFINE([HAVE_READLINE], [1], [Define if you have the readline library.])
-    if test "$gl_cv_lib_readline" != " -l"; then
-      LIBREADLINE="$LIBREADLINE$gl_cv_lib_readline"
-      LTLIBREADLINE="$LTLIBREADLINE$gl_cv_lib_readline"
+    extra_lib=`echo "$gl_cv_lib_readline" | sed -n -e 's/yes, requires //p'`
+    if test -n "$extra_lib"; then
+      LIBREADLINE="$LIBREADLINE $extra_lib"
+      LTLIBREADLINE="$LTLIBREADLINE $extra_lib"
     fi
     AC_MSG_CHECKING([how to link with libreadline])
     AC_MSG_RESULT([$LIBREADLINE])
@@ -68,7 +74,7 @@
 
   AC_CHECK_HEADERS([readline/readline.h])
 
-  if test $gl_cv_lib_readline = no; then
+  if test "$gl_cv_lib_readline" = no; then
     AC_LIBOBJ([readline])
     gl_PREREQ_READLINE
   fi
--- a/m4/regex.m4
+++ b/m4/regex.m4
@@ -1,4 +1,4 @@
-# serial 56
+# serial 57
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
 # 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@@ -41,7 +41,8 @@
            #include <limits.h>
            #include <regex.h>
            ]],
-          [[static struct re_pattern_buffer regex;
+          [[int result = 0;
+            static struct re_pattern_buffer regex;
             unsigned char folded_chars[UCHAR_MAX + 1];
             int i;
             const char *s;
@@ -63,11 +64,11 @@
                   memset (&regex, 0, sizeof regex);
                   s = re_compile_pattern (pat, sizeof pat - 1, &regex);
                   if (s)
-                    return 1;
-                  if (re_search (&regex, data, sizeof data - 1,
-                                 0, sizeof data - 1, &regs)
-                      != -1)
-                    return 1;
+                    result |= 1;
+                  else if (re_search (&regex, data, sizeof data - 1,
+                                      0, sizeof data - 1, &regs)
+                           != -1)
+                    result |= 1;
                   if (! setlocale (LC_ALL, "C"))
                     return 1;
                 }
@@ -78,11 +79,10 @@
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("a[^x]b", 6, &regex);
             if (s)
-              return 1;
-
+              result |= 2;
             /* This should fail, but succeeds for glibc-2.5.  */
-            if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
-              return 1;
+            else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+              result |= 2;
 
             /* This regular expression is from Spencer ere test number 75
                in grep-2.3.  */
@@ -94,7 +94,7 @@
             s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, &regex);
             /* This should fail with _Invalid character class name_ error.  */
             if (!s)
-              return 1;
+              result |= 4;
 
             /* Ensure that [b-a] is diagnosed as invalid, when
                using RE_NO_EMPTY_RANGES. */
@@ -102,34 +102,31 @@
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("a[b-a]", 6, &regex);
             if (s == 0)
-              return 1;
+              result |= 8;
 
             /* This should succeed, but does not for glibc-2.1.3.  */
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("{1", 2, &regex);
-
             if (s)
-              return 1;
+              result |= 8;
 
             /* The following example is derived from a problem report
                against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("[an\371]*n", 7, &regex);
             if (s)
-              return 1;
-
+              result |= 8;
             /* This should match, but does not for glibc-2.2.1.  */
-            if (re_match (&regex, "an", 2, 0, &regs) != 2)
-              return 1;
+            else if (re_match (&regex, "an", 2, 0, &regs) != 2)
+              result |= 8;
 
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("x", 1, &regex);
             if (s)
-              return 1;
-
+              result |= 8;
             /* glibc-2.2.93 does not work with a negative RANGE argument.  */
-            if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
-              return 1;
+            else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+              result |= 8;
 
             /* The version of regex.c in older versions of gnulib
                ignored RE_ICASE.  Detect that problem too.  */
@@ -137,10 +134,9 @@
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("x", 1, &regex);
             if (s)
-              return 1;
-
-            if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
-              return 1;
+              result |= 16;
+            else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+              result |= 16;
 
             /* Catch a bug reported by Vin Shelton in
                http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
@@ -151,12 +147,12 @@
             memset (&regex, 0, sizeof regex);
             s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
             if (s)
-              return 1;
+              result |= 32;
 
             /* REG_STARTEND was added to glibc on 2004-01-15.
                Reject older versions.  */
             if (! REG_STARTEND)
-              return 1;
+              result |= 64;
 
 #if 0
             /* It would be nice to reject hosts whose regoff_t values are too
@@ -167,10 +163,11 @@
                when compiling --without-included-regex.   */
             if (sizeof (regoff_t) < sizeof (ptrdiff_t)
                 || sizeof (regoff_t) < sizeof (ssize_t))
-              return 1;
+              result |= 64;
 #endif
 
-            return 0;]])],
+            return result;
+          ]])],
        [gl_cv_func_re_compile_pattern_working=yes],
        [gl_cv_func_re_compile_pattern_working=no],
        dnl When crosscompiling, assume it is not working.
--- a/m4/rename.m4
+++ b/m4/rename.m4
@@ -1,4 +1,4 @@
-# serial 22
+# serial 23
 
 # Copyright (C) 2001, 2003, 2005-2006, 2009-2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -28,27 +28,34 @@
   dnl links are also broken.
   AC_CACHE_CHECK([whether rename honors trailing slash on destination],
     [gl_cv_func_rename_slash_dst_works],
-    [rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.lnk
-    touch conftest.f && mkdir conftest.d1 ||
+    [rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+    touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
       AC_MSG_ERROR([cannot create temporary files])
     # Assume that if we have lstat, we can also check symlinks.
     if test $ac_cv_func_lstat = yes; then
       ln -s conftest.f conftest.lnk
     fi
-    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#       include <stdio.h>
-#       include <stdlib.h>
-]], [if (rename ("conftest.f", "conftest.f1/") == 0) return 1;
-     if (rename ("conftest.d1", "conftest.d2/") != 0) return 2;
+    AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM([[
+#        include <stdio.h>
+#        include <stdlib.h>
+         ]],
+         [[int result = 0;
+           if (rename ("conftest.f1", "conftest.f2/") == 0)
+             result |= 1;
+           if (rename ("conftest.d1", "conftest.d2/") != 0)
+             result |= 2;
 #if HAVE_LSTAT
-     if (rename ("conftest.f", "conftest.lnk/") == 0) return 3;
+           if (rename ("conftest.f", "conftest.lnk/") == 0)
+             result |= 4;
 #endif
-    ])],
+           return result;
+         ]])],
       [gl_cv_func_rename_slash_dst_works=yes],
       [gl_cv_func_rename_slash_dst_works=no],
       dnl When crosscompiling, assume rename is broken.
       [gl_cv_func_rename_slash_dst_works="guessing no"])
-    rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.lnk
+    rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
   ])
   if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
     AC_LIBOBJ([rename])
@@ -65,27 +72,34 @@
   dnl symlinks with a trailing slash.
   AC_CACHE_CHECK([whether rename honors trailing slash on source],
     [gl_cv_func_rename_slash_src_works],
-    [rm -rf conftest.f conftest.d1 conftest.d2 conftest.lnk
-    touch conftest.f && mkdir conftest.d1 ||
+    [rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+    touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
       AC_MSG_ERROR([cannot create temporary files])
     # Assume that if we have lstat, we can also check symlinks.
     if test $ac_cv_func_lstat = yes; then
       ln -s conftest.f conftest.lnk
     fi
-    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#       include <stdio.h>
-#       include <stdlib.h>
-]], [if (rename ("conftest.f/", "conftest.d2") == 0) return 1;
-     if (rename ("conftest.d1/", "conftest.d2") != 0) return 2;
+    AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM([[
+#        include <stdio.h>
+#        include <stdlib.h>
+         ]],
+         [[int result = 0;
+           if (rename ("conftest.f1/", "conftest.d3") == 0)
+             result |= 1;
+           if (rename ("conftest.d1/", "conftest.d2") != 0)
+             result |= 2;
 #if HAVE_LSTAT
-     if (rename ("conftest.lnk/", "conftest.f") == 0) return 3;
+           if (rename ("conftest.lnk/", "conftest.f") == 0)
+             result |= 4;
 #endif
-    ])],
+           return result;
+         ]])],
       [gl_cv_func_rename_slash_src_works=yes],
       [gl_cv_func_rename_slash_src_works=no],
       dnl When crosscompiling, assume rename is broken.
       [gl_cv_func_rename_slash_src_works="guessing no"])
-    rm -rf conftest.f conftest.d1 conftest.d2 conftest.lnk
+    rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
   ])
   if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
     AC_LIBOBJ([rename])
@@ -103,14 +117,23 @@
     [rm -rf conftest.f conftest.f1
     if touch conftest.f && ln conftest.f conftest.f1 &&
         set x `ls -i conftest.f conftest.f1` && test "$2" = "$4"; then
-      AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#       include <stdio.h>
-#       include <stdlib.h>
-#       include <unistd.h>
-]], [if (rename ("conftest.f", "conftest.f1")) return 1;
-     if (unlink ("conftest.f1")) return 2;
-     if (rename ("conftest.f", "conftest.f")) return 3;
-     if (rename ("conftest.f1", "conftest.f1") == 0) return 4;])],
+      AC_RUN_IFELSE(
+        [AC_LANG_PROGRAM([[
+#          include <stdio.h>
+#          include <stdlib.h>
+#          include <unistd.h>
+           ]],
+           [[int result = 0;
+             if (rename ("conftest.f", "conftest.f1"))
+               result |= 1;
+             if (unlink ("conftest.f1"))
+               result |= 2;
+             if (rename ("conftest.f", "conftest.f"))
+               result |= 4;
+             if (rename ("conftest.f1", "conftest.f1") == 0)
+               result |= 8;
+             return result;
+           ]])],
         [gl_cv_func_rename_link_works=yes],
         [gl_cv_func_rename_link_works=no],
         dnl When crosscompiling, assume rename is broken.
@@ -137,11 +160,18 @@
     [rm -rf conftest.f conftest.d1 conftest.d2
     touch conftest.f && mkdir conftest.d1 conftest.d2 ||
       AC_MSG_ERROR([cannot create temporary files])
-    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#       include <stdio.h>
-#       include <stdlib.h>
-]], [if (rename ("conftest.d1", "conftest.d2") != 0) return 1;
-     if (rename ("conftest.d2", "conftest.f") == 0) return 2;])],
+    AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM([[
+#        include <stdio.h>
+#        include <stdlib.h>
+         ]],
+         [[int result = 0;
+           if (rename ("conftest.d1", "conftest.d2") != 0)
+             result |= 1;
+           if (rename ("conftest.d2", "conftest.f") == 0)
+             result |= 2;
+           return result;
+         ]])],
       [gl_cv_func_rename_dest_works=yes],
       [gl_cv_func_rename_dest_works=no],
       dnl When crosscompiling, assume rename is broken.
--- a/m4/rmdir.m4
+++ b/m4/rmdir.m4
@@ -1,4 +1,4 @@
-# rmdir.m4 serial 8
+# rmdir.m4 serial 9
 dnl Copyright (C) 2002, 2005, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -17,8 +17,15 @@
          [[#include <stdio.h>
            #include <errno.h>
            #include <unistd.h>
-]], [[return !rmdir ("conftest.file/") || errno != ENOTDIR
-       || !rmdir ("conftest.dir/./");]])],
+]], [[int result = 0;
+      if (!rmdir ("conftest.file/"))
+        result |= 1;
+      else if (errno != ENOTDIR)
+        result |= 2;
+      if (!rmdir ("conftest.dir/./"))
+        result |= 4;
+      return result;
+    ]])],
        [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no],
        [gl_cv_func_rmdir_works="guessing no"])
      rm -rf conftest.dir conftest.file])
--- a/m4/setenv.m4
+++ b/m4/setenv.m4
@@ -1,4 +1,4 @@
-# setenv.m4 serial 18
+# setenv.m4 serial 19
 dnl Copyright (C) 2001-2004, 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -27,10 +27,20 @@
        #include <errno.h>
        #include <string.h>
       ]], [[
-       if (setenv ("", "", 0) != -1) return 1;
-       if (errno != EINVAL) return 2;
-       if (setenv ("a", "=", 1) != 0) return 3;
-       if (strcmp (getenv ("a"), "=") != 0) return 4;
+       int result = 0;
+       {
+         if (setenv ("", "", 0) != -1)
+           result |= 1;
+         else if (errno != EINVAL)
+           result |= 2;
+       }
+       {
+         if (setenv ("a", "=", 1) != 0)
+           result |= 4;
+         else if (strcmp (getenv ("a"), "=") != 0)
+           result |= 8;
+       }
+       return result;
       ]])],
       [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
       [gl_cv_func_setenv_works="guessing no"])])
--- a/m4/signbit.m4
+++ b/m4/signbit.m4
@@ -1,4 +1,4 @@
-# signbit.m4 serial 7
+# signbit.m4 serial 8
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -160,7 +160,8 @@
 #else
 long double m0l = -p0l;
 #endif
-  if (signbit (vf))
+  int result = 0;
+  if (signbit (vf)) /* link check */
     vf++;
   {
     float plus_inf = 1.0f / p0f;
@@ -171,9 +172,9 @@
           && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f))
           && !signbit (plus_inf)
           && signbit (minus_inf)))
-      return 1;
+      result |= 1;
   }
-  if (signbit (vd))
+  if (signbit (vd)) /* link check */
     vd++;
   {
     double plus_inf = 1.0 / p0d;
@@ -184,22 +185,27 @@
           && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d))
           && !signbit (plus_inf)
           && signbit (minus_inf)))
-      return 1;
+      result |= 2;
   }
-  if (signbit (vl))
+  if (signbit (vl)) /* link check */
     vl++;
   {
     long double plus_inf = 1.0L / p0l;
     long double minus_inf = -1.0L / p0l;
-    if (!(!signbit (255.0L)
-          && signbit (-255.0L)
-          && !signbit (p0l)
-          && (memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
+    if (signbit (255.0L))
+      result |= 4;
+    if (!signbit (-255.0L))
+      result |= 4;
+    if (signbit (p0l))
+      result |= 8;
+    if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l)))
+      result |= 16;
+    if (signbit (plus_inf))
+      result |= 32;
+    if (!signbit (minus_inf))
+      result |= 64;
   }
-  return 0;
+  return result;
 }
 ]])
 
@@ -249,7 +255,7 @@
         {
           /* More than one bit difference.  */
           fprintf (fp, "unknown");
-          return 1;
+          return 2;
         }
       if (x)
         {
@@ -261,7 +267,7 @@
     {
       /* No difference.  */
       fprintf (fp, "unknown");
-      return 1;
+      return 3;
     }
   /* Now m = plus.word[k] ^ ~minus.word[k].  */
   if (plus.word[k] & ~minus.word[k])
@@ -269,13 +275,15 @@
       /* Oh? The sign bit is set in the positive and cleared in the negative
          numbers?  */
       fprintf (fp, "unknown");
-      return 1;
+      return 4;
     }
   for (i = 0; ; i++)
     if ((m >> i) & 1)
       break;
   fprintf (fp, "word %d bit %d", (int) k, (int) i);
-  return (fclose (fp) != 0);
+  if (fclose (fp) != 0)
+    return 5;
+  return 0;
 }
         ]])],
         [$2=`cat conftest.out`],
--- a/m4/sleep.m4
+++ b/m4/sleep.m4
@@ -1,4 +1,4 @@
-# sleep.m4 serial 3
+# sleep.m4 serial 4
 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,12 @@
     signal (SIGALRM, handle_alarm);
     alarm (1);
     remaining = sleep (pentecost);
-    return !(pentecost - 10 < remaining && remaining <= pentecost);]])],
+    if (remaining > pentecost)
+      return 3;
+    if (remaining <= pentecost - 10)
+      return 4;
+    return 0;
+    ]])],
       [gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no],
       [gl_cv_func_sleep_works="guessing no"])])
     if test "$gl_cv_func_sleep_works" != yes; then
new file mode 100644
--- /dev/null
+++ b/m4/spawn-pipe.m4
@@ -0,0 +1,12 @@
+# spawn-pipe.m4 serial 1
+dnl Copyright (C) 2004, 2008-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_SPAWN_PIPE],
+[
+  dnl Prerequisites of lib/spawn-pipe.c.
+  AC_REQUIRE([AC_C_INLINE])
+  AC_REQUIRE([AC_TYPE_MODE_T])
+])
--- a/m4/stat.m4
+++ b/m4/stat.m4
@@ -1,4 +1,4 @@
-# serial 5
+# serial 6
 
 # Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 #
@@ -36,11 +36,15 @@
        AC_RUN_IFELSE(
          [AC_LANG_PROGRAM(
            [[#include <sys/stat.h>
-]], [[struct stat st;
-      if (!stat ("conftest.tmp/", &st)) return 1;
+]], [[int result = 0;
+      struct stat st;
+      if (!stat ("conftest.tmp/", &st))
+        result |= 1;
 #if HAVE_LSTAT
-      if (!stat ("conftest.lnk/", &st)) return 2;
+      if (!stat ("conftest.lnk/", &st))
+        result |= 2;
 #endif
+      return result;
            ]])],
          [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no],
          [gl_cv_func_stat_file_slash="guessing no"])
--- a/m4/stdint.m4
+++ b/m4/stdint.m4
@@ -1,4 +1,4 @@
-# stdint.m4 serial 35
+# stdint.m4 serial 36
 dnl Copyright (C) 2001-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -259,7 +259,7 @@
           || strncmp (value, "((int)"/*)*/, 6) == 0
           || strncmp (value, "((signed short)"/*)*/, 15) == 0
           || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return 1;
+        return mv - macro_values + 1;
     }
   return 0;
 ]])],
--- a/m4/stpncpy.m4
+++ b/m4/stpncpy.m4
@@ -1,4 +1,4 @@
-# stpncpy.m4 serial 12
+# stpncpy.m4 serial 13
 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -37,19 +37,30 @@
 #if !HAVE_DECL_STPNCPY
 extern char *stpncpy (char *dest, const char *src, size_t n);
 #endif
-int main () {
+int main ()
+{
+  int result = 0;
   const char *src = "Hello";
   char dest[10];
   /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+1 here.  */
-  strcpy (dest, "\377\377\377\377\377\377");
-  if (stpncpy (dest, src, 2) != dest + 2) exit(1);
+  {
+    strcpy (dest, "\377\377\377\377\377\377");
+    if (stpncpy (dest, src, 2) != dest + 2)
+      result |= 1;
+  }
   /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+4 here.  */
-  strcpy (dest, "\377\377\377\377\377\377");
-  if (stpncpy (dest, src, 5) != dest + 5) exit(1);
+  {
+    strcpy (dest, "\377\377\377\377\377\377");
+    if (stpncpy (dest, src, 5) != dest + 5)
+      result |= 2;
+  }
   /* AIX 4.3.3 and AIX 5.1 stpncpy() returns dest+6 here.  */
-  strcpy (dest, "\377\377\377\377\377\377");
-  if (stpncpy (dest, src, 7) != dest + 5) exit(1);
-  exit(0);
+  {
+    strcpy (dest, "\377\377\377\377\377\377");
+    if (stpncpy (dest, src, 7) != dest + 5)
+      result |= 4;
+  }
+  return result;
 }
 ]])],
         [gl_cv_func_stpncpy=yes],
--- a/m4/strcasestr.m4
+++ b/m4/strcasestr.m4
@@ -1,4 +1,4 @@
-# strcasestr.m4 serial 16
+# strcasestr.m4 serial 18
 dnl Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,8 @@
              [
 #ifdef __GNU_LIBRARY__
  #include <features.h>
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #elif defined __CYGWIN__
@@ -79,10 +80,11 @@
 #include <stdlib.h> /* for malloc */
 #include <unistd.h> /* for alarm */
 static void quit (int sig) { exit (sig + 128); }
-]], [[size_t m = 1000000;
+]], [[
+    int result = 0;
+    size_t m = 1000000;
     char *haystack = (char *) malloc (2 * m + 2);
     char *needle = (char *) malloc (m + 2);
-    void *result = 0;
     /* Failure to compile this test due to missing alarm is okay,
        since all such platforms (mingw) also lack strcasestr.  */
     signal (SIGALRM, quit);
@@ -96,9 +98,11 @@
         memset (needle, 'A', m);
         needle[m] = 'B';
         needle[m + 1] = 0;
-        result = strcasestr (haystack, needle);
+        if (!strcasestr (haystack, needle))
+          result |= 1;
       }
-    return !result;]])],
+    return result;
+    ]])],
         [gl_cv_func_strcasestr_linear=yes], [gl_cv_func_strcasestr_linear=no],
         [dnl Only glibc > 2.12 and cygwin > 1.7.7 are known to have a
          dnl strcasestr that works in linear time.
@@ -106,7 +110,8 @@
            [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #endif
new file mode 100644
--- /dev/null
+++ b/m4/strerror_r.m4
@@ -0,0 +1,102 @@
+# strerror_r.m4 serial 3
+dnl Copyright (C) 2002, 2007-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRERROR_R],
+[
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  dnl Persuade Solaris <string.h> to declare strerror_r().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT
+  dnl are not defined.
+  AC_CHECK_DECLS_ONCE([strerror_r])
+  if test $ac_cv_have_decl_strerror_r = no; then
+    HAVE_DECL_STRERROR_R=0
+  fi
+
+  AC_CHECK_FUNCS([strerror_r])
+  if test $ac_cv_func_strerror_r = yes; then
+    if test -z "$ERRNO_H"; then
+      dnl The POSIX prototype is:  int strerror_r (int, char *, size_t);
+      dnl glibc's prototype:       char *strerror_r (int, char *, size_t);
+      dnl AIX 5.1, OSF/1 5.1:      int strerror_r (int, char *, int);
+      AC_CACHE_CHECK([for strerror_r with POSIX signature],
+        [gl_cv_func_strerror_r_posix_signature],
+        [AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <string.h>
+                int strerror_r (int, char *, size_t);
+              ]],
+              [[return strerror (0);]])],
+           [gl_cv_func_strerror_r_posix_signature=yes],
+           [gl_cv_func_strerror_r_posix_signature=no])
+        ])
+      if test $gl_cv_func_strerror_r_posix_signature = yes; then
+        dnl AIX 6.1 strerror_r fails by returning -1, not an error number.
+        dnl HP-UX 11.31 strerror_r always fails when the buffer length argument
+        dnl is less than 80.
+        AC_CACHE_CHECK([whether strerror_r works],
+          [gl_cv_func_strerror_r_works],
+          [AC_RUN_IFELSE(
+             [AC_LANG_PROGRAM(
+                [[#include <errno.h>
+                  #include <string.h>
+                  int strerror_r (int, char *, size_t);
+                ]],
+                [[int result = 0;
+                  char buf[79];
+                  if (strerror_r (EACCES, buf, 0) < 0)
+                    result |= 1;
+                  if (strerror_r (EACCES, buf, sizeof (buf)) != 0)
+                    result |= 2;
+                  return result;
+                ]])],
+             [gl_cv_func_strerror_r_works=yes],
+             [gl_cv_func_strerror_r_works=no],
+             [
+changequote(,)dnl
+              case "$host_os" in
+                       # Guess no on AIX.
+                aix*)  gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess no on HP-UX.
+                hpux*) gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess yes otherwise.
+                *)     gl_cv_func_strerror_r_works="guessing yes";;
+              esac
+changequote([,])dnl
+             ])
+          ])
+        case "$gl_cv_func_strerror_r_works" in
+          *no) REPLACE_STRERROR_R=1 ;;
+        esac
+      else
+        dnl The system's strerror() has a wrong signature. Replace it.
+        REPLACE_STRERROR_R=1
+        dnl glibc >= 2.3.4 has a function __xpg_strerror_r.
+        AC_CHECK_FUNCS([__xpg_strerror_r])
+      fi
+    else
+      dnl The system's strerror_r() cannot know about the new errno values we
+      dnl add to <errno.h>. Replace it.
+      REPLACE_STRERROR_R=1
+      AC_DEFINE([EXTEND_STRERROR_R], [1],
+        [Define to 1 if strerror_r needs to be extended so that it handles the
+         extra errno values.])
+    fi
+  fi
+  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+    AC_LIBOBJ([strerror_r])
+    gl_PREREQ_STRERROR_R
+  fi
+])
+
+# Prerequisites of lib/strerror_r.c.
+AC_DEFUN([gl_PREREQ_STRERROR_R], [
+  :
+])
--- a/m4/string_h.m4
+++ b/m4/string_h.m4
@@ -5,7 +5,7 @@
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 17
+# serial 18
 
 # Written by Paul Eggert.
 
@@ -28,8 +28,8 @@
   gl_WARN_ON_USE_PREPARE([[#include <string.h>
     ]],
     [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup
-     strncat strndup strnlen strpbrk strsep strcasestr strtok_r strsignal
-     strverscmp])
+     strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r
+     strsignal strverscmp])
 ])
 
 AC_DEFUN([gl_STRING_MODULE_INDICATOR],
@@ -75,6 +75,7 @@
   GNULIB_MBSSEP=0;      AC_SUBST([GNULIB_MBSSEP])
   GNULIB_MBSTOK_R=0;    AC_SUBST([GNULIB_MBSTOK_R])
   GNULIB_STRERROR=0;    AC_SUBST([GNULIB_STRERROR])
+  GNULIB_STRERROR_R=0;  AC_SUBST([GNULIB_STRERROR_R])
   GNULIB_STRSIGNAL=0;   AC_SUBST([GNULIB_STRSIGNAL])
   GNULIB_STRVERSCMP=0;  AC_SUBST([GNULIB_STRVERSCMP])
   HAVE_MBSLEN=0;        AC_SUBST([HAVE_MBSLEN])
@@ -94,6 +95,7 @@
   HAVE_STRSEP=1;                AC_SUBST([HAVE_STRSEP])
   HAVE_STRCASESTR=1;            AC_SUBST([HAVE_STRCASESTR])
   HAVE_DECL_STRTOK_R=1;         AC_SUBST([HAVE_DECL_STRTOK_R])
+  HAVE_DECL_STRERROR_R=1;       AC_SUBST([HAVE_DECL_STRERROR_R])
   HAVE_DECL_STRSIGNAL=1;        AC_SUBST([HAVE_DECL_STRSIGNAL])
   HAVE_STRVERSCMP=1;            AC_SUBST([HAVE_STRVERSCMP])
   REPLACE_MEMCHR=0;             AC_SUBST([REPLACE_MEMCHR])
@@ -103,6 +105,7 @@
   REPLACE_STRSTR=0;             AC_SUBST([REPLACE_STRSTR])
   REPLACE_STRCASESTR=0;         AC_SUBST([REPLACE_STRCASESTR])
   REPLACE_STRERROR=0;           AC_SUBST([REPLACE_STRERROR])
+  REPLACE_STRERROR_R=0;         AC_SUBST([REPLACE_STRERROR_R])
   REPLACE_STRNCAT=0;            AC_SUBST([REPLACE_STRNCAT])
   REPLACE_STRNDUP=0;            AC_SUBST([REPLACE_STRNDUP])
   REPLACE_STRNLEN=0;            AC_SUBST([REPLACE_STRNLEN])
--- a/m4/strsignal.m4
+++ b/m4/strsignal.m4
@@ -1,4 +1,4 @@
-# strsignal.m4 serial 4
+# strsignal.m4 serial 5
 dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -28,8 +28,14 @@
             [[#include <string.h>
 #include <unistd.h> /* NetBSD 5.0 declares it in wrong header. */
             ]],
-            [[char *s = strsignal (-1);
-              return !(s != (char *) 0 && s != (char *) -1);]])],
+            [[int result = 0;
+              char *s = strsignal (-1);
+              if (s == (char *) 0)
+                result |= 1;
+              if (s == (char *) -1)
+                result |= 2;
+              return result;
+            ]])],
          [gl_cv_func_working_strsignal=yes],
          [gl_cv_func_working_strsignal=no],
          [case "$host_os" in
--- a/m4/strstr.m4
+++ b/m4/strstr.m4
@@ -1,4 +1,4 @@
-# strstr.m4 serial 10
+# strstr.m4 serial 12
 dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -31,7 +31,8 @@
            [
 #ifdef __GNU_LIBRARY__
  #include <features.h>
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #elif defined __CYGWIN__
@@ -67,10 +68,11 @@
 #include <stdlib.h> /* for malloc */
 #include <unistd.h> /* for alarm */
 static void quit (int sig) { exit (sig + 128); }
-]], [[size_t m = 1000000;
+]], [[
+    int result = 0;
+    size_t m = 1000000;
     char *haystack = (char *) malloc (2 * m + 2);
     char *needle = (char *) malloc (m + 2);
-    void *result = 0;
     /* Failure to compile this test due to missing alarm is okay,
        since all such platforms (mingw) also have quadratic strstr.  */
     signal (SIGALRM, quit);
@@ -84,9 +86,11 @@
         memset (needle, 'A', m);
         needle[m] = 'B';
         needle[m + 1] = 0;
-        result = strstr (haystack, needle);
+        if (!strstr (haystack, needle))
+          result |= 1;
       }
-    return !result;]])],
+    return result;
+    ]])],
         [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no],
         [dnl Only glibc > 2.12 and cygwin > 1.7.7 are known to have a
          dnl bug-free strstr that works in linear time.
@@ -94,7 +98,8 @@
            [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #endif
--- a/m4/strtod.m4
+++ b/m4/strtod.m4
@@ -1,4 +1,4 @@
-# strtod.m4 serial 17
+# strtod.m4 serial 19
 dnl Copyright (C) 2002-2003, 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -30,6 +30,7 @@
   return x == y;
 }
 ]], [[
+  int result = 0;
   {
     /* In some old versions of Linux (2000 or before), strtod mis-parses
        strings with leading '+'.  */
@@ -37,7 +38,7 @@
     char *term;
     double value = strtod (string, &term);
     if (value != 69 || term != (string + 4))
-      return 1;
+      result |= 1;
   }
   {
     /* Under Solaris 2.4, strtod returns the wrong value for the
@@ -46,7 +47,7 @@
     char *term;
     strtod (string, &term);
     if (term != string && *(term - 1) == 0)
-      return 2;
+      result |= 2;
   }
   {
     /* Older glibc and Cygwin mis-parse "-0x".  */
@@ -55,7 +56,7 @@
     double value = strtod (string, &term);
     double zero = 0.0;
     if (1.0 / value != -1.0 / zero || term != (string + 2))
-      return 3;
+      result |= 4;
   }
   {
     /* Many platforms do not parse hex floats.  */
@@ -63,7 +64,7 @@
     char *term;
     double value = strtod (string, &term);
     if (value != 20.0 || term != (string + 6))
-      return 4;
+      result |= 8;
   }
   {
     /* Many platforms do not parse infinities.  HP-UX 11.31 parses inf,
@@ -74,7 +75,7 @@
     errno = 0;
     value = strtod (string, &term);
     if (value != HUGE_VAL || term != (string + 3) || errno)
-      return 5;
+      result |= 16;
   }
   {
     /* glibc 2.7 and cygwin 1.5.24 misparse "nan()".  */
@@ -82,7 +83,7 @@
     char *term;
     double value = strtod (string, &term);
     if (numeric_equal (value, value) || term != (string + 5))
-      return 6;
+      result |= 32;
   }
   {
     /* darwin 10.6.1 misparses "nan(".  */
@@ -90,8 +91,9 @@
     char *term;
     double value = strtod (string, &term);
     if (numeric_equal (value, value) || term != (string + 3))
-      return 7;
+      result |= 64;
   }
+  return result;
 ]])],
         [gl_cv_func_strtod_works=yes],
         [gl_cv_func_strtod_works=no],
@@ -101,7 +103,8 @@
            [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) || (__GLIBC__ > 2)
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
   Lucky user
  #endif
 #endif
--- a/m4/strtoimax.m4
+++ b/m4/strtoimax.m4
@@ -1,4 +1,4 @@
-# strtoimax.m4 serial 7
+# strtoimax.m4 serial 8
 dnl Copyright (C) 2002, 2003, 2004, 2006, 2009, 2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -7,10 +7,6 @@
 
 AC_DEFUN([gl_FUNC_STRTOIMAX],
 [
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   AC_CACHE_CHECK([whether <inttypes.h> defines strtoimax as a macro],
     gl_cv_func_strtoimax_macro,
     [AC_EGREP_CPP([inttypes_h_defines_strtoimax], [#include <inttypes.h>
--- a/m4/strtoumax.m4
+++ b/m4/strtoumax.m4
@@ -1,4 +1,4 @@
-# strtoumax.m4 serial 7
+# strtoumax.m4 serial 8
 dnl Copyright (C) 2002, 2003, 2004, 2006, 2009, 2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -7,10 +7,6 @@
 
 AC_DEFUN([gl_FUNC_STRTOUMAX],
 [
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro],
     gl_cv_func_strtoumax_macro,
     [AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h>
--- a/m4/symlink.m4
+++ b/m4/symlink.m4
@@ -1,4 +1,4 @@
-# serial 3
+# serial 4
 # See if we need to provide symlink replacement.
 
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
@@ -24,9 +24,16 @@
       [AC_RUN_IFELSE(
          [AC_LANG_PROGRAM(
            [[#include <unistd.h>
-]], [[if (!symlink ("a", "conftest.link/")) return 1;
-      if (symlink ("conftest.f", "conftest.lnk2")) return 2;
-      if (!symlink ("a", "conftest.lnk2/")) return 3;]])],
+           ]],
+           [[int result = 0;
+             if (!symlink ("a", "conftest.link/"))
+               result |= 1;
+             if (symlink ("conftest.f", "conftest.lnk2"))
+               result |= 2;
+             else if (!symlink ("a", "conftest.lnk2/"))
+               result |= 4;
+             return result;
+           ]])],
          [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no],
          [gl_cv_func_symlink_works="guessing no"])
       rm -f conftest.f conftest.link conftest.lnk2])
--- a/m4/sys_ioctl_h.m4
+++ b/m4/sys_ioctl_h.m4
@@ -1,4 +1,4 @@
-# sys_ioctl_h.m4 serial 8
+# sys_ioctl_h.m4 serial 9
 dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,7 @@
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <sys/ioctl.h>
 /* Some platforms declare ioctl in the wrong header.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <unistd.h>
 #endif
     ]], [ioctl])
--- a/m4/sys_select_h.m4
+++ b/m4/sys_select_h.m4
@@ -1,4 +1,4 @@
-# sys_select_h.m4 serial 14
+# sys_select_h.m4 serial 15
 dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -61,7 +61,7 @@
   gl_WARN_ON_USE_PREPARE([[
 /* Some systems require prerequisite headers.  */
 #include <sys/types.h>
-#if !defined __GLIBC__ && HAVE_SYS_TIME_H
+#if !(defined __GLIBC__ && !defined __UCLIBC__) && HAVE_SYS_TIME_H
 # include <sys/time.h>
 #endif
 #include <sys/select.h>
--- a/m4/sys_socket_h.m4
+++ b/m4/sys_socket_h.m4
@@ -1,4 +1,4 @@
-# sys_socket_h.m4 serial 17
+# sys_socket_h.m4 serial 20
 dnl Copyright (C) 2005-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -57,6 +57,23 @@
   if test $ac_cv_type_sa_family_t = no; then
     HAVE_SA_FAMILY_T=0
   fi
+  if test $ac_cv_type_struct_sockaddr_storage != no; then
+    AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family],
+      [],
+      [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0],
+      [#include <sys/types.h>
+       #ifdef HAVE_SYS_SOCKET_H
+       #include <sys/socket.h>
+       #endif
+       #ifdef HAVE_WS2TCPIP_H
+       #include <ws2tcpip.h>
+       #endif
+      ])
+  fi
+  if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
+     || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
+    SYS_SOCKET_H='sys/socket.h'
+  fi
   gl_PREREQ_SYS_H_WINSOCK2
 
   dnl Check for declarations of anything we want to poison if the
@@ -64,10 +81,7 @@
   gl_WARN_ON_USE_PREPARE([[
 /* Some systems require prerequisite headers.  */
 #include <sys/types.h>
-#if !defined __GLIBC__ && HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <sys/select.h>
+#include <sys/socket.h>
     ]], [socket connect accept bind getpeername getsockname getsockopt
     listen recv send recvfrom sendto setsockopt shutdown accept4])
 ])
@@ -148,6 +162,8 @@
   GNULIB_SHUTDOWN=0;    AC_SUBST([GNULIB_SHUTDOWN])
   GNULIB_ACCEPT4=0;     AC_SUBST([GNULIB_ACCEPT4])
   HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+  HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
+                        AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY])
   HAVE_SA_FAMILY_T=1;   AC_SUBST([HAVE_SA_FAMILY_T])
   HAVE_ACCEPT4=1;       AC_SUBST([HAVE_ACCEPT4])
 ])
--- a/m4/sys_times_h.m4
+++ b/m4/sys_times_h.m4
@@ -1,5 +1,5 @@
 # Configure a replacement for <sys/times.h>.
-# serial 6
+# serial 7
 
 # Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -30,7 +30,7 @@
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[
 /* Some systems have incomplete headers.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <time.h>
 #endif
 #include <sys/times.h>
--- a/m4/termios_h.m4
+++ b/m4/termios_h.m4
@@ -12,6 +12,11 @@
 
   gl_CHECK_NEXT_HEADERS([termios.h])
 
+  AC_CHECK_HEADERS_ONCE([termios.h])
+  if test $ac_cv_header_termios_h != yes; then
+    HAVE_TERMIOS_H=0
+  fi
+
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use, and which is not
   dnl guaranteed by C89.
@@ -33,4 +38,5 @@
   GNULIB_TCGETSID=0;      AC_SUBST([GNULIB_TCGETSID])
   dnl Assume proper GNU behavior unless another module says otherwise.
   HAVE_TCGETSID=1;        AC_SUBST([HAVE_TCGETSID])
+  HAVE_TERMIOS_H=1;       AC_SUBST([HAVE_TERMIOS_H])
 ])
--- a/m4/tsearch.m4
+++ b/m4/tsearch.m4
@@ -1,4 +1,4 @@
-# tsearch.m4 serial 4
+# tsearch.m4 serial 5
 dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -25,13 +25,17 @@
 int
 main ()
 {
+  int result = 0;
   int x = 0;
   void *root = NULL;
-  if (!(tfind (&x, &root, cmp_fn) == NULL)) return 1;
+  if (!(tfind (&x, &root, cmp_fn) == NULL))
+    result |= 1;
   tsearch (&x, &root, cmp_fn);
-  if (!(tfind (&x, &root, cmp_fn) != NULL)) return 1;
-  if (!(tdelete (&x, &root, cmp_fn) != NULL)) return 1;
-  return 0;
+  if (!(tfind (&x, &root, cmp_fn) != NULL))
+    result |= 2;
+  if (!(tdelete (&x, &root, cmp_fn) != NULL))
+    result |= 4;
+  return result;
 }]])], [gl_cv_func_tdelete_works=yes], [gl_cv_func_tdelete_works=no],
             [case "$host_os" in
                openbsd*) gl_cv_func_tdelete_works="guessing no";;
--- a/m4/ttyname_r.m4
+++ b/m4/ttyname_r.m4
@@ -1,4 +1,4 @@
-# ttyname_r.m4 serial 4
+# ttyname_r.m4 serial 5
 dnl Copyright (C) 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -58,15 +58,16 @@
 int
 main (void)
 {
+  int result = 0;
   int fd;
   char buf[31]; /* use any size < 128 here */
 
   fd = open ("/dev/tty", O_RDONLY);
   if (fd < 0)
-    return 1;
-  if (ttyname_r (fd, buf, sizeof (buf)) != 0)
-    return 1;
-  return 0;
+    result |= 1;
+  else if (ttyname_r (fd, buf, sizeof (buf)) != 0)
+    result |= 2;
+  return result;
 }]])],
             [gl_cv_func_ttyname_r_works=yes],
             [:],
--- a/m4/unistd_h.m4
+++ b/m4/unistd_h.m4
@@ -1,4 +1,4 @@
-# unistd_h.m4 serial 46
+# unistd_h.m4 serial 49
 dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -27,7 +27,7 @@
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <unistd.h>
 /* Some systems declare various items in the wrong headers.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdlib.h>
@@ -38,7 +38,7 @@
     ]], [chown dup2 dup3 environ euidaccess faccessat fchdir fchownat
     fsync ftruncate getcwd getdomainname getdtablesize getgroups
     gethostname getlogin getlogin_r getpagesize getusershell setusershell
-    endusershell lchown link linkat lseek pipe2 pread pwrite readlink
+    endusershell lchown link linkat lseek pipe pipe2 pread pwrite readlink
     readlinkat rmdir sleep symlink symlinkat ttyname_r unlink unlinkat
     usleep])
 ])
@@ -78,6 +78,7 @@
   GNULIB_LINK=0;             AC_SUBST([GNULIB_LINK])
   GNULIB_LINKAT=0;           AC_SUBST([GNULIB_LINKAT])
   GNULIB_LSEEK=0;            AC_SUBST([GNULIB_LSEEK])
+  GNULIB_PIPE=0;             AC_SUBST([GNULIB_PIPE])
   GNULIB_PIPE2=0;            AC_SUBST([GNULIB_PIPE2])
   GNULIB_PREAD=0;            AC_SUBST([GNULIB_PREAD])
   GNULIB_PWRITE=0;           AC_SUBST([GNULIB_PWRITE])
@@ -104,7 +105,6 @@
   HAVE_FCHOWNAT=1;        AC_SUBST([HAVE_FCHOWNAT])
   HAVE_FSYNC=1;           AC_SUBST([HAVE_FSYNC])
   HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
-  HAVE_GETDOMAINNAME=1;   AC_SUBST([HAVE_GETDOMAINNAME])
   HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
   HAVE_GETGROUPS=1;       AC_SUBST([HAVE_GETGROUPS])
   HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
@@ -113,6 +113,7 @@
   HAVE_LCHOWN=1;          AC_SUBST([HAVE_LCHOWN])
   HAVE_LINK=1;            AC_SUBST([HAVE_LINK])
   HAVE_LINKAT=1;          AC_SUBST([HAVE_LINKAT])
+  HAVE_PIPE=1;            AC_SUBST([HAVE_PIPE])
   HAVE_PIPE2=1;           AC_SUBST([HAVE_PIPE2])
   HAVE_PREAD=1;           AC_SUBST([HAVE_PREAD])
   HAVE_PWRITE=1;          AC_SUBST([HAVE_PWRITE])
@@ -125,6 +126,7 @@
   HAVE_UNLINKAT=1;        AC_SUBST([HAVE_UNLINKAT])
   HAVE_USLEEP=1;          AC_SUBST([HAVE_USLEEP])
   HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
+  HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
   HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
   HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
   HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
@@ -136,6 +138,7 @@
   REPLACE_DUP2=0;         AC_SUBST([REPLACE_DUP2])
   REPLACE_FCHOWNAT=0;     AC_SUBST([REPLACE_FCHOWNAT])
   REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
+  REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
   REPLACE_GETGROUPS=0;    AC_SUBST([REPLACE_GETGROUPS])
   REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
   REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
--- a/m4/unlink-busy.m4
+++ b/m4/unlink-busy.m4
@@ -1,4 +1,4 @@
-#serial 11
+#serial 12
 
 dnl From J. David Anglin.
 
@@ -20,7 +20,12 @@
             int
             main (int argc, char **argv)
             {
-              return !argc || unlink (argv[0]) != 0;
+              int result = 0;
+              if (argc == 0)
+                result |= 1;
+              else if (unlink (argv[0]) != 0)
+                result |= 2;
+              return result;
             }]])],
       gl_cv_func_unlink_busy_text=yes,
       gl_cv_func_unlink_busy_text=no,
--- a/m4/unlink.m4
+++ b/m4/unlink.m4
@@ -1,4 +1,4 @@
-# unlink.m4 serial 5
+# unlink.m4 serial 6
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -21,18 +21,27 @@
        [AC_LANG_PROGRAM(
          [[#include <unistd.h>
            #include <errno.h>
-]], [[if (!unlink ("conftest.file/") || errno != ENOTDIR) return 1;
+         ]],
+         [[int result = 0;
+           if (!unlink ("conftest.file/"))
+             result |= 1;
+           else if (errno != ENOTDIR)
+             result |= 2;
 #if HAVE_LSTAT
-      if (!unlink ("conftest.lnk/") || errno != ENOTDIR) return 2;
+           if (!unlink ("conftest.lnk/"))
+             result |= 4;
+           else if (errno != ENOTDIR)
+             result |= 8;
 #endif
-      ]])],
+           return result;
+         ]])],
       [gl_cv_func_unlink_honors_slashes=yes],
       [gl_cv_func_unlink_honors_slashes=no],
       [gl_cv_func_unlink_honors_slashes="guessing no"])
      rm -f conftest.file conftest.lnk])
   dnl Detect MacOS X 10.5.6 bug: On read-write HFS mounts, unlink("..") or
   dnl unlink("../..") succeeds without doing anything.
-  AC_CACHE_CHECK([whether unlink of a parent directory fails is it should],
+  AC_CACHE_CHECK([whether unlink of a parent directory fails as it should],
     [gl_cv_func_unlink_parent_fails],
     [case "$host_os" in
        darwin*)
@@ -65,9 +74,12 @@
                 #include <unistd.h>
                 int main ()
                 {
+                  int result = 0;
                   if (chdir (getenv ("GL_SUBDIR_FOR_UNLINK")) != 0)
-                    return 1;
-                  return unlink ("..") == 0;
+                    result |= 1;
+                  else if (unlink ("..") == 0)
+                    result |= 2;
+                  return result;
                 }
               ]])],
              [gl_cv_func_unlink_parent_fails=yes],
--- a/m4/utimens.m4
+++ b/m4/utimens.m4
@@ -3,7 +3,7 @@
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-dnl serial 4
+dnl serial 5
 
 AC_DEFUN([gl_UTIMENS],
 [
@@ -25,6 +25,7 @@
        AC_RUN_IFELSE([AC_LANG_PROGRAM([[
 #include <stddef.h>
 #include <sys/times.h>
+#include <fcntl.h>
 ]], [[    int fd = open ("conftest.file", O_RDWR);
           if (fd < 0) return 1;
           if (futimesat (fd, NULL, NULL)) return 2;
--- a/m4/utimensat.m4
+++ b/m4/utimensat.m4
@@ -1,4 +1,4 @@
-# serial 3
+# serial 4
 # See if we need to provide utimensat replacement.
 
 dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
@@ -19,22 +19,39 @@
   else
     AC_CACHE_CHECK([whether utimensat works],
       [gl_cv_func_utimensat_works],
-      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+      [AC_RUN_IFELSE(
+         [AC_LANG_PROGRAM([[
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <unistd.h>
-]], [[struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
-      struct stat st;
-      const char *f = "conftest.file";
-      if (close (creat (f, 0600))) return 1;
-      if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW)) return 2;
-      if (utimensat (AT_FDCWD, f, ts, 0)) return 3;
-      sleep (1);
-      ts[0].tv_nsec = UTIME_NOW;
-      ts[1].tv_nsec = UTIME_OMIT;
-      if (utimensat (AT_FDCWD, f, ts, 0)) return 4;
-      if (stat (f, &st)) return 5;
-      if (st.st_ctime < st.st_atime) return 6;]])],
+]],         [[int result = 0;
+              const char *f = "conftest.file";
+              if (close (creat (f, 0600)))
+                return 1;
+              /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported.  */
+              {
+                if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+                  result |= 2;
+              }
+              /* Test whether UTIME_NOW and UTIME_OMIT work.  */
+              {
+                struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+                if (utimensat (AT_FDCWD, f, ts, 0))
+                  result |= 4;
+              }
+              sleep (1);
+              {
+                struct timespec ts[2] = { { 1, UTIME_NOW }, { 1, UTIME_OMIT } };
+                struct stat st;
+                if (utimensat (AT_FDCWD, f, ts, 0))
+                  result |= 8;
+                if (stat (f, &st))
+                  result |= 16;
+                else if (st.st_ctime < st.st_atime)
+                  result |= 32;
+              }
+              return result;
+            ]])],
 dnl FIXME: simplify this in 2012, when file system bugs are no longer common
          [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #ifdef __linux__
--- a/m4/utimes.m4
+++ b/m4/utimes.m4
@@ -1,5 +1,5 @@
 # Detect some bugs in glibc's implementation of utimes.
-# serial 2
+# serial 3
 
 dnl Copyright (C) 2003-2005, 2009-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
@@ -37,41 +37,71 @@
 int
 main ()
 {
-  static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
-  struct stat sbuf;
+  int result = 0;
   char const *file = "conftest.utimes";
-  FILE *f;
-  time_t now;
-  int fd;
 
-  int ok = ((f = fopen (file, "w"))
-            && fclose (f) == 0
-            && utimes (file, timeval) == 0
-            && lstat (file, &sbuf) == 0
-            && sbuf.st_atime == timeval[0].tv_sec
-            && sbuf.st_mtime == timeval[1].tv_sec);
-  unlink (file);
-  if (!ok)
-    exit (1);
+  /* Test whether utimes() essentially works.  */
+  {
+    static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
+    struct stat sbuf;
+    FILE *f = fopen (file, "w");
+    if (f == NULL)
+      result |= 1;
+    else if (fclose (f) != 0)
+      result |= 1;
+    else if (utimes (file, timeval) != 0)
+      result |= 2;
+    else if (lstat (file, &sbuf) != 0)
+      result |= 1;
+    else if (!(sbuf.st_atime == timeval[0].tv_sec
+               && sbuf.st_mtime == timeval[1].tv_sec))
+      result |= 4;
+    unlink (file);
+  }
 
-  ok =
-    ((f = fopen (file, "w"))
-     && fclose (f) == 0
-     && time (&now) != (time_t)-1
-     && utimes (file, NULL) == 0
-     && lstat (file, &sbuf) == 0
-     && now - sbuf.st_atime <= 2
-     && now - sbuf.st_mtime <= 2);
-  unlink (file);
-  if (!ok)
-    exit (1);
+  /* Test whether utimes() with a NULL argument sets the file's timestamp
+     to the current time.  Note that this test fails on NFS file systems
+     if there is a time skew between the host and the NFS server.  */
+  {
+    struct stat sbuf;
+    FILE *f = fopen (file, "w");
+    if (f == NULL)
+      result |= 1;
+    else if (fclose (f) != 0)
+      result |= 1;
+    else
+      {
+        time_t now;
+        if (time (&now) == (time_t)-1)
+          result |= 1;
+        else if (utimes (file, NULL) != 0)
+          result |= 8;
+        else if (lstat (file, &sbuf) != 0)
+          result |= 1;
+        else
+          {
+            if (!(now - sbuf.st_atime <= 2))
+              result |= 16;
+            if (!(now - sbuf.st_mtime <= 2))
+              result |= 32;
+          }
+      }
+    unlink (file);
+  }
 
-  ok = (0 <= (fd = open (file, O_WRONLY|O_CREAT, 0444))
-              && close (fd) == 0
-              && utimes (file, NULL) == 0);
-  unlink (file);
+  /* Test whether utimes() with a NULL argument works on read-only files.  */
+  {
+    int fd = open (file, O_WRONLY|O_CREAT, 0444);
+    if (fd < 0)
+      result |= 1;
+    else if (close (fd) != 0)
+      result |= 1;
+    else if (utimes (file, NULL) != 0)
+      result |= 64;
+    unlink (file);
+  }
 
-  exit (!ok);
+  return result;
 }
   ]])],
        [gl_cv_func_working_utimes=yes],
--- a/m4/vasnprintf.m4
+++ b/m4/vasnprintf.m4
@@ -1,4 +1,4 @@
-# vasnprintf.m4 serial 31
+# vasnprintf.m4 serial 32
 dnl Copyright (C) 2002-2004, 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -40,6 +40,7 @@
 # Prequisites of lib/printf-parse.h, lib/printf-parse.c.
 AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 [
+  AC_REQUIRE([gl_FEATURES_H])
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
--- a/m4/wchar_h.m4
+++ b/m4/wchar_h.m4
@@ -7,7 +7,7 @@
 
 dnl Written by Eric Blake.
 
-# wchar_h.m4 serial 33
+# wchar_h.m4 serial 35
 
 AC_DEFUN([gl_WCHAR_H],
 [
@@ -26,6 +26,8 @@
   fi
   AC_SUBST([HAVE_WCHAR_H])
 
+  AC_REQUIRE([gl_FEATURES_H])
+
   AC_REQUIRE([gt_TYPE_WINT_T])
   if test $gt_cv_c_wint_t = yes; then
     HAVE_WINT_T=1
@@ -38,7 +40,7 @@
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[
 /* Some systems require additional headers.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <stddef.h>
 # include <stdio.h>
 # include <time.h>
--- a/m4/wcrtomb.m4
+++ b/m4/wcrtomb.m4
@@ -1,4 +1,4 @@
-# wcrtomb.m4 serial 6
+# wcrtomb.m4 serial 7
 dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -48,27 +48,28 @@
 #include <wchar.h>
 int main ()
 {
+  int result = 0;
   if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
     {
       if (wcrtomb (NULL, 0, NULL) != 1)
-        return 1;
+        result |= 1;
     }
   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
     {
       if (wcrtomb (NULL, 0, NULL) != 1)
-        return 1;
+        result |= 2;
     }
   if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
     {
       if (wcrtomb (NULL, 0, NULL) != 1)
-        return 1;
+        result |= 4;
     }
   if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
     {
       if (wcrtomb (NULL, 0, NULL) != 1)
-        return 1;
+        result |= 8;
     }
-  return 0;
+  return result;
 }]])],
               [gl_cv_func_wcrtomb_retval=yes],
               [gl_cv_func_wcrtomb_retval=no],
--- a/m4/wcwidth.m4
+++ b/m4/wcwidth.m4
@@ -1,4 +1,4 @@
-# wcwidth.m4 serial 17
+# wcwidth.m4 serial 18
 dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -63,10 +63,15 @@
 #endif
 int main ()
 {
+  int result = 0;
   if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
-    if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0)
-      return 1;
-  return 0;
+    {
+      if (wcwidth (0x0301) > 0)
+        result |= 1;
+      if (wcwidth (0x200B) > 0)
+        result |= 2;
+    }
+  return result;
 }]])],
           [gl_cv_func_wcwidth_works=yes],
           [gl_cv_func_wcwidth_works=no],
--- a/modules/arpa_inet
+++ b/modules/arpa_inet
@@ -29,6 +29,7 @@
 	  sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+	      -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
 	      -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \
 	      -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \
 	      -e 's|@''GNULIB_INET_NTOP''@|$(GNULIB_INET_NTOP)|g' \
--- a/modules/ceilf-tests
+++ b/modules/ceilf-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-ceilf1.c
 tests/test-ceilf2.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 Depends-on:
 float
 isnanf-nolibm
+signbit
 stdbool
 stdint
 
--- a/modules/ceill-tests
+++ b/modules/ceill-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-ceill.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 fpucw
 isnanl-nolibm
 float
+signbit
 
 configure.ac:
 
--- a/modules/cloexec
+++ b/modules/cloexec
@@ -21,7 +21,7 @@
 "cloexec.h"
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Jim Meyering, Eric Blake
--- a/modules/copysign-tests
+++ b/modules/copysign-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-copysign.c
 tests/signature.h
+tests/minus-zero.h
 tests/macros.h
 
 Depends-on:
--- a/modules/csharpcomp
+++ b/modules/csharpcomp
@@ -9,7 +9,7 @@
 stdbool
 xmalloca
 execute
-pipe
+spawn-pipe
 wait-process
 getline
 sh-quote
--- a/modules/fcntl
+++ b/modules/fcntl
@@ -21,7 +21,7 @@
 <fcntl.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Eric Blake
--- a/modules/floorf-tests
+++ b/modules/floorf-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-floorf1.c
 tests/test-floorf2.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 Depends-on:
 float
 isnanf-nolibm
+signbit
 stdbool
 stdint
 
--- a/modules/floorl-tests
+++ b/modules/floorl-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-floorl.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 fpucw
 isnanl-nolibm
 float
+signbit
 
 configure.ac:
 
--- a/modules/frexp-nolibm-tests
+++ b/modules/frexp-nolibm-tests
@@ -1,5 +1,7 @@
 Files:
 tests/test-frexp.c
+tests/minus-zero.h
+tests/nan.h
 tests/signature.h
 tests/macros.h
 
--- a/modules/frexp-tests
+++ b/modules/frexp-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-frexp.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
--- a/modules/frexpl-nolibm-tests
+++ b/modules/frexpl-nolibm-tests
@@ -1,5 +1,7 @@
 Files:
 tests/test-frexpl.c
+tests/minus-zero.h
+tests/nan.h
 tests/signature.h
 tests/macros.h
 
--- a/modules/frexpl-tests
+++ b/modules/frexpl-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-frexpl.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
new file mode 100644
--- /dev/null
+++ b/modules/ftoastr
@@ -0,0 +1,27 @@
+Description:
+Convert floating point to accurate string
+
+Files:
+lib/ftoastr.h
+lib/ftoastr.c
+lib/dtoastr.c
+lib/ldtoastr.c
+m4/c-strtod.m4
+
+Depends-on:
+intprops
+
+configure.ac:
+AC_REQUIRE([gl_C99_STRTOLD])
+
+Makefile.am:
+lib_SOURCES += ftoastr.h ftoastr.c dtoastr.c ldtoastr.c
+
+Include:
+"ftoastr.h"
+
+License:
+GPL
+
+Maintainer:
+Paul Eggert
--- a/modules/getdomainname
+++ b/modules/getdomainname
@@ -8,6 +8,8 @@
 Depends-on:
 unistd
 extensions
+netdb
+sys_socket
 
 configure.ac:
 gl_FUNC_GETDOMAINNAME
new file mode 100644
--- /dev/null
+++ b/modules/getdomainname-tests
@@ -0,0 +1,11 @@
+Files:
+tests/signature.h
+tests/test-getdomainname.c
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-getdomainname
+check_PROGRAMS += test-getdomainname
--- a/modules/getdtablesize
+++ b/modules/getdtablesize
@@ -18,7 +18,7 @@
 <unistd.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible
--- a/modules/getpass
+++ b/modules/getpass
@@ -7,6 +7,7 @@
 m4/getpass.m4
 
 Depends-on:
+extensions
 fseeko
 getline
 stdbool
--- a/modules/iconv
+++ b/modules/iconv
@@ -9,6 +9,7 @@
 
 configure.ac:
 AM_ICONV
+gl_ICONV_MODULE_INDICATOR([iconv])
 
 Makefile.am:
 
--- a/modules/iconv-h
+++ b/modules/iconv-h
@@ -29,6 +29,7 @@
 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
 	      -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \
+	      -e 's|@''GNULIB_ICONV''@|$(GNULIB_ICONV)|g' \
 	      -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
 	      -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
 	      -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
--- a/modules/inttostr
+++ b/modules/inttostr
@@ -14,7 +14,6 @@
 Depends-on:
 intprops
 stdint
-verify
 
 configure.ac:
 gl_INTTOSTR
--- a/modules/isnan-tests
+++ b/modules/isnan-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-isnan.c
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/isnand-nolibm-tests
+++ b/modules/isnand-nolibm-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-isnand-nolibm.c
 tests/test-isnand.h
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/isnand-tests
+++ b/modules/isnand-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-isnand.c
 tests/test-isnand.h
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/isnanf-nolibm-tests
+++ b/modules/isnanf-nolibm-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-isnanf-nolibm.c
 tests/test-isnanf.h
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/isnanf-tests
+++ b/modules/isnanf-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-isnanf.c
 tests/test-isnanf.h
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/isnanl-nolibm-tests
+++ b/modules/isnanl-nolibm-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-isnanl-nolibm.c
 tests/test-isnanl.h
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/isnanl-tests
+++ b/modules/isnanl-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-isnanl.c
 tests/test-isnanl.h
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/javacomp
+++ b/modules/javacomp
@@ -10,7 +10,7 @@
 unistd
 javaversion
 execute
-pipe
+spawn-pipe
 wait-process
 classpath
 xsetenv
--- a/modules/javaversion
+++ b/modules/javaversion
@@ -10,7 +10,7 @@
 Depends-on:
 javaexec
 stdbool
-pipe
+spawn-pipe
 wait-process
 getline
 gettext-h
--- a/modules/ldexpl-tests
+++ b/modules/ldexpl-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-ldexpl.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
--- a/modules/link-warning
+++ b/modules/link-warning
@@ -10,6 +10,7 @@
 Depends-on:
 
 configure.ac:
+AC_REQUIRE([gl_FEATURES_H])
 
 Makefile.am:
 nodist_pkginclude_HEADERS += link-warning.h
@@ -24,8 +25,9 @@
 # build-aux/link-warning.h, except that it has the copyright header cut off.
 link-warning.h: $(top_srcdir)/build-aux/link-warning.h
 	$(AM_V_GEN)rm -f $@-t $@ && \
-	sed -n -e '/GL_LINK_WARNING/,$$p' \
+	sed -n -e '/HAVE_FEATURES_H/,$$p' \
 	  < $(top_srcdir)/build-aux/link-warning.h \
+	| sed -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
 	  > $@-t && \
 	mv $@-t $@
 MOSTLYCLEANFILES += link-warning.h link-warning.h-t
--- a/modules/nextafter
+++ b/modules/nextafter
@@ -7,7 +7,7 @@
 Depends-on:
 
 configure.ac:
-gl_MATHFUNC([nextafter], [double], [(double)])
+gl_MATHFUNC([nextafter], [double], [(double, double)])
 
 Makefile.am:
 
--- a/modules/nproc
+++ b/modules/nproc
@@ -21,7 +21,7 @@
 "nproc.h"
 
 License:
-GPL
+LGPL
 
 Maintainer:
 Glen Lenker and Paul Eggert
--- a/modules/pipe
+++ b/modules/pipe
@@ -1,48 +1,23 @@
 Description:
 Creation of subprocesses, communicating via pipes.
 
+Status:
+obsolete
+
+Notice:
+This module is obsolete. Use the module 'spawn-pipe' instead.
+
 Files:
-lib/pipe.h
-lib/pipe.c
-lib/w32spawn.h
-m4/pipe.m4
 
 Depends-on:
-cloexec
-dup2
-environ
-error
-exit
-fatal-signal
-gettext-h
-open
-pipe2
-pipe2-safer
-spawn
-posix_spawnp
-posix_spawn_file_actions_init
-posix_spawn_file_actions_addclose
-posix_spawn_file_actions_adddup2
-posix_spawn_file_actions_addopen
-posix_spawn_file_actions_destroy
-posix_spawnattr_init
-posix_spawnattr_setsigmask
-posix_spawnattr_setflags
-posix_spawnattr_destroy
-stdbool
-strpbrk
-unistd
-unistd-safer
-wait-process
+spawn-pipe
 
 configure.ac:
-gl_PIPE
 
 Makefile.am:
-lib_SOURCES += pipe.h pipe.c w32spawn.h
 
 Include:
-"pipe.h"
+"spawn-pipe.h"
 
 License:
 GPL
--- a/modules/pipe-filter-gi
+++ b/modules/pipe-filter-gi
@@ -7,7 +7,7 @@
 lib/pipe-filter-aux.h
 
 Depends-on:
-pipe
+spawn-pipe
 wait-process
 error
 exit
--- a/modules/pipe-filter-ii
+++ b/modules/pipe-filter-ii
@@ -7,7 +7,7 @@
 lib/pipe-filter-aux.h
 
 Depends-on:
-pipe
+spawn-pipe
 wait-process
 error
 exit
new file mode 100644
--- /dev/null
+++ b/modules/pipe-posix
@@ -0,0 +1,24 @@
+Description:
+pipe() function: Creation of a pipe.
+
+Files:
+lib/pipe.c
+m4/pipe.m4
+
+Depends-on:
+unistd
+
+configure.ac:
+gl_FUNC_PIPE
+gl_UNISTD_MODULE_INDICATOR([pipe])
+
+Makefile.am:
+
+Include:
+<unistd.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Eric Blake
new file mode 100644
--- /dev/null
+++ b/modules/pipe-posix-tests
@@ -0,0 +1,14 @@
+Files:
+tests/test-pipe.c
+tests/signature.h
+tests/macros.h
+
+Depends-on:
+stdbool
+binary-io
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-pipe
+check_PROGRAMS += test-pipe
deleted file mode 100644
--- a/modules/pipe-tests
+++ /dev/null
@@ -1,14 +0,0 @@
-Files:
-tests/test-pipe.sh
-tests/test-pipe.c
-tests/macros.h
-
-Depends-on:
-progname
-
-configure.ac:
-
-Makefile.am:
-TESTS += test-pipe.sh
-check_PROGRAMS += test-pipe
-test_pipe_LDADD = $(LDADD) @LIBINTL@
--- a/modules/posix_spawn
+++ b/modules/posix_spawn
@@ -24,7 +24,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawn-internal
+++ b/modules/posix_spawn-internal
@@ -21,7 +21,7 @@
 Include:
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawn_file_actions_addclose
+++ b/modules/posix_spawn_file_actions_addclose
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawn_file_actions_adddup2
+++ b/modules/posix_spawn_file_actions_adddup2
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawn_file_actions_addopen
+++ b/modules/posix_spawn_file_actions_addopen
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawn_file_actions_destroy
+++ b/modules/posix_spawn_file_actions_destroy
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawn_file_actions_init
+++ b/modules/posix_spawn_file_actions_init
@@ -24,7 +24,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_destroy
+++ b/modules/posix_spawnattr_destroy
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_getflags
+++ b/modules/posix_spawnattr_getflags
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_getpgroup
+++ b/modules/posix_spawnattr_getpgroup
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_getschedparam
+++ b/modules/posix_spawnattr_getschedparam
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_getschedpolicy
+++ b/modules/posix_spawnattr_getschedpolicy
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_getsigdefault
+++ b/modules/posix_spawnattr_getsigdefault
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_getsigmask
+++ b/modules/posix_spawnattr_getsigmask
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_init
+++ b/modules/posix_spawnattr_init
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_setflags
+++ b/modules/posix_spawnattr_setflags
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_setpgroup
+++ b/modules/posix_spawnattr_setpgroup
@@ -22,7 +22,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_setschedparam
+++ b/modules/posix_spawnattr_setschedparam
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_setschedpolicy
+++ b/modules/posix_spawnattr_setschedpolicy
@@ -25,7 +25,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_setsigdefault
+++ b/modules/posix_spawnattr_setsigdefault
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnattr_setsigmask
+++ b/modules/posix_spawnattr_setsigmask
@@ -23,7 +23,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/posix_spawnp
+++ b/modules/posix_spawnp
@@ -24,7 +24,7 @@
 <spawn.h>
 
 License:
-LGPL
+LGPLv2+
 
 Maintainer:
 Bruno Haible, glibc
--- a/modules/regex
+++ b/modules/regex
@@ -38,6 +38,9 @@
 Include:
 <regex.h>
 
+Link:
+$(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise
+
 License:
 LGPLv2+
 
--- a/modules/regex-quote-tests
+++ b/modules/regex-quote-tests
@@ -11,3 +11,4 @@
 Makefile.am:
 TESTS += test-regex-quote
 check_PROGRAMS += test-regex-quote
+test_regex_quote_LDADD = $(LDADD) $(LIBINTL)
--- a/modules/relocatable-prog-wrapper
+++ b/modules/relocatable-prog-wrapper
@@ -53,6 +53,20 @@
 gl_FUNC_STRERROR_SEPARATE
 
 Makefile.am:
+if RELOCATABLE_VIA_WRAPPER
+uninstall-hook: uninstall-relocwrapper
+uninstall-relocwrapper:
+	if test $(RELOCATABLE) = yes; then \
+	  case '$(EXEEXT)' in \
+	    .bin*) ;; \
+	    *) cd $(top_builddir) && \
+	       $(MAKE) $(AM_MAKEFLAGS) EXEEXT=.bin$(EXEEXT) \
+		       AM_MAKEFLAGS='$(AM_MAKEFLAGS) EXEEXT=.bin$(EXEEXT)' \
+		       uninstall ;; \
+	  esac; \
+	fi
+.PHONY: uninstall-relocwrapper
+endif
 
 Include:
 
--- a/modules/round-tests
+++ b/modules/round-tests
@@ -1,12 +1,14 @@
 Files:
 tests/test-round1.c
 tests/test-round2.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
 
 Depends-on:
 isnand-nolibm
+signbit
 stdbool
 stdint
 verify
--- a/modules/roundf-tests
+++ b/modules/roundf-tests
@@ -2,6 +2,7 @@
 tests/test-roundf1.c
 tests/test-round2.c
 tests/test-roundf2.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -10,6 +11,7 @@
 ceilf
 floorf
 isnanf-nolibm
+signbit
 stdbool
 stdint
 verify
--- a/modules/roundl-tests
+++ b/modules/roundl-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-roundl.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 fpucw
 isnanl-nolibm
 float
+signbit
 
 configure.ac:
 
--- a/modules/rpmatch
+++ b/modules/rpmatch
@@ -22,6 +22,9 @@
 Include:
 <stdlib.h>
 
+Link:
+$(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise
+
 License:
 GPL
 
--- a/modules/select-tests
+++ b/modules/select-tests
@@ -1,4 +1,5 @@
 Files:
+tests/macros.h
 tests/signature.h
 tests/test-select.c
 tests/test-select-fd.c
--- a/modules/signbit-tests
+++ b/modules/signbit-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-signbit.c
+tests/minus-zero.h
 tests/macros.h
 m4/exponentf.m4
 m4/exponentd.m4
--- a/modules/snprintf-posix-tests
+++ b/modules/snprintf-posix-tests
@@ -2,6 +2,7 @@
 tests/test-snprintf-posix.c
 tests/test-snprintf-posix.h
 tests/test-snprintf.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
--- a/modules/socketlib
+++ b/modules/socketlib
@@ -3,6 +3,7 @@
 
 Files:
 m4/socketlib.m4
+m4/sys_socket_h.m4
 
 Depends-on:
 
new file mode 100644
--- /dev/null
+++ b/modules/spawn-pipe
@@ -0,0 +1,51 @@
+Description:
+Creation of subprocesses, communicating via pipes.
+
+Files:
+lib/spawn-pipe.h
+lib/spawn-pipe.c
+lib/w32spawn.h
+m4/spawn-pipe.m4
+
+Depends-on:
+cloexec
+dup2
+environ
+error
+exit
+fatal-signal
+gettext-h
+open
+pipe2
+pipe2-safer
+spawn
+posix_spawnp
+posix_spawn_file_actions_init
+posix_spawn_file_actions_addclose
+posix_spawn_file_actions_adddup2
+posix_spawn_file_actions_addopen
+posix_spawn_file_actions_destroy
+posix_spawnattr_init
+posix_spawnattr_setsigmask
+posix_spawnattr_setflags
+posix_spawnattr_destroy
+stdbool
+strpbrk
+unistd
+unistd-safer
+wait-process
+
+configure.ac:
+gl_SPAWN_PIPE
+
+Makefile.am:
+lib_SOURCES += spawn-pipe.h spawn-pipe.c w32spawn.h
+
+Include:
+"spawn-pipe.h"
+
+License:
+GPL
+
+Maintainer:
+Bruno Haible
new file mode 100644
--- /dev/null
+++ b/modules/spawn-pipe-tests
@@ -0,0 +1,14 @@
+Files:
+tests/test-spawn-pipe.sh
+tests/test-spawn-pipe.c
+tests/macros.h
+
+Depends-on:
+progname
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-spawn-pipe.sh
+check_PROGRAMS += test-spawn-pipe
+test_spawn_pipe_LDADD = $(LDADD) @LIBINTL@
--- a/modules/sprintf-posix-tests
+++ b/modules/sprintf-posix-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-sprintf-posix.c
 tests/test-sprintf-posix.h
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
new file mode 100644
--- /dev/null
+++ b/modules/strerror_r-posix
@@ -0,0 +1,28 @@
+Description:
+strerror_r() function: get string describing error code.
+
+Files:
+lib/strerror_r.c
+m4/strerror_r.m4
+
+Depends-on:
+string
+errno
+extensions
+lock
+strerror
+
+configure.ac:
+gl_FUNC_STRERROR_R
+gl_STRING_MODULE_INDICATOR([strerror_r])
+
+Makefile.am:
+
+Include:
+<string.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+Bruno Haible
new file mode 100644
--- /dev/null
+++ b/modules/strerror_r-posix-tests
@@ -0,0 +1,12 @@
+Files:
+tests/test-strerror_r.c
+tests/signature.h
+tests/macros.h
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-strerror_r
+check_PROGRAMS += test-strerror_r
--- a/modules/striconveh-tests
+++ b/modules/striconveh-tests
@@ -9,5 +9,5 @@
 Makefile.am:
 TESTS += test-striconveh
 check_PROGRAMS += test-striconveh
-test_striconveh_LDADD = $(LDADD) @LIBICONV@
+test_striconveh_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
--- a/modules/striconveha-tests
+++ b/modules/striconveha-tests
@@ -9,5 +9,5 @@
 Makefile.am:
 TESTS += test-striconveha
 check_PROGRAMS += test-striconveha
-test_striconveha_LDADD = $(LDADD) @LIBICONV@
+test_striconveha_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
--- a/modules/string
+++ b/modules/string
@@ -62,6 +62,7 @@
 	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
 	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
 	      -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+	      -e 's|@''GNULIB_STRERROR_R''@|$(GNULIB_STRERROR_R)|g' \
 	      -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
 	      -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
 	      < $(srcdir)/string.in.h | \
@@ -81,6 +82,7 @@
 	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
 	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
 	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+	      -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
 	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
 	      -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
 	      -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
@@ -90,6 +92,7 @@
 	      -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
 	      -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
 	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+	      -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
 	      -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
 	      -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
 	      -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
--- a/modules/strtod-tests
+++ b/modules/strtod-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-strtod.c
 tests/signature.h
+tests/minus-zero.h
 tests/macros.h
 
 Depends-on:
--- a/modules/sys_socket
+++ b/modules/sys_socket
@@ -54,6 +54,7 @@
 	      -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
 	      -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
 	      -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
+	      -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \
 	      -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
 	      -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|g' \
 	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
--- a/modules/termios
+++ b/modules/termios
@@ -29,6 +29,7 @@
 	      -e 's|@''NEXT_TERMIOS_H''@|$(NEXT_TERMIOS_H)|g' \
 	      -e 's|@''GNULIB_TCGETSID''@|$(GNULIB_TCGETSID)|g' \
 	      -e 's|@''HAVE_TCGETSID''@|$(HAVE_TCGETSID)|g' \
+	      -e 's|@''HAVE_TERMIOS_H''@|$(HAVE_TERMIOS_H)|g' \
 	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
 	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
 	    < $(srcdir)/termios.in.h; \
--- a/modules/trunc-tests
+++ b/modules/trunc-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-trunc1.c
 tests/test-trunc2.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 Depends-on:
 float
 isnand-nolibm
+signbit
 stdbool
 stdint
 
--- a/modules/truncf-tests
+++ b/modules/truncf-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-truncf1.c
 tests/test-truncf2.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 Depends-on:
 float
 isnanf-nolibm
+signbit
 stdbool
 stdint
 
--- a/modules/truncl-tests
+++ b/modules/truncl-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-truncl.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
@@ -8,6 +9,7 @@
 fpucw
 isnanl-nolibm
 float
+signbit
 
 configure.ac:
 
--- a/modules/unistd
+++ b/modules/unistd
@@ -54,6 +54,7 @@
 	      -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
 	      -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \
 	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+	      -e 's|@''GNULIB_PIPE''@|$(GNULIB_PIPE)|g' \
 	      -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
 	      -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
 	      -e 's|@''GNULIB_PWRITE''@|$(GNULIB_PWRITE)|g' \
@@ -80,7 +81,6 @@
 	      -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
 	      -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
 	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-	      -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
 	      -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
 	      -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
 	      -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
@@ -89,6 +89,7 @@
 	      -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
 	      -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
 	      -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
+	      -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
 	      -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
 	      -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
 	      -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
@@ -101,6 +102,7 @@
 	      -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
 	      -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
 	      -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+	      -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
 	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
 	      -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
 	      -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
@@ -112,6 +114,7 @@
 	      -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
 	      -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
 	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+	      -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
 	      -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
 	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
 	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
--- a/modules/unistr/u8-mbsnlen
+++ b/modules/unistr/u8-mbsnlen
@@ -9,7 +9,7 @@
 unistr/u8-mbtoucr
 
 configure.ac:
-gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u8-mbsnlen])
+gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbsnlen])
 
 Makefile.am:
 if LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN
--- a/modules/unistr/u8-mbtouc
+++ b/modules/unistr/u8-mbtouc
@@ -10,7 +10,7 @@
 
 configure.ac:
 gl_MODULE_INDICATOR([unistr/u8-mbtouc])
-gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtouc])
+gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbtouc])
 
 Makefile.am:
 if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC
--- a/modules/unistr/u8-mbtouc-unsafe
+++ b/modules/unistr/u8-mbtouc-unsafe
@@ -10,7 +10,7 @@
 
 configure.ac:
 gl_MODULE_INDICATOR([unistr/u8-mbtouc-unsafe])
-gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtouc-unsafe])
+gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbtouc-unsafe])
 
 Makefile.am:
 if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE
--- a/modules/unistr/u8-strcmp
+++ b/modules/unistr/u8-strcmp
@@ -8,7 +8,7 @@
 unistr/base
 
 configure.ac:
-gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strcmp])
+gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-strcmp])
 
 Makefile.am:
 if LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP
--- a/modules/userspec
+++ b/modules/userspec
@@ -2,7 +2,6 @@
 Parse a `user:group' specifier (e.g. the first argument of chown utility).
 
 Files:
-lib/inttostr.h
 lib/userspec.c
 lib/userspec.h
 m4/userspec.m4
--- a/modules/vasnprintf-posix-tests
+++ b/modules/vasnprintf-posix-tests
@@ -2,6 +2,8 @@
 tests/test-vasnprintf-posix.c
 tests/test-vasnprintf-posix2.sh
 tests/test-vasnprintf-posix2.c
+tests/test-vasnprintf-posix3.c
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 m4/locale-fr.m4
@@ -16,6 +18,6 @@
 gt_LOCALE_FR_UTF8
 
 Makefile.am:
-TESTS += test-vasnprintf-posix test-vasnprintf-posix2.sh
+TESTS += test-vasnprintf-posix test-vasnprintf-posix2.sh test-vasnprintf-posix3
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
-check_PROGRAMS += test-vasnprintf-posix test-vasnprintf-posix2
+check_PROGRAMS += test-vasnprintf-posix test-vasnprintf-posix2 test-vasnprintf-posix3
--- a/modules/vasprintf-posix-tests
+++ b/modules/vasprintf-posix-tests
@@ -1,5 +1,6 @@
 Files:
 tests/test-vasprintf-posix.c
+tests/minus-zero.h
 tests/nan.h
 tests/macros.h
 
--- a/modules/vsnprintf-posix-tests
+++ b/modules/vsnprintf-posix-tests
@@ -2,6 +2,7 @@
 tests/test-vsnprintf-posix.c
 tests/test-snprintf-posix.h
 tests/test-vsnprintf.c
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
--- a/modules/vsprintf-posix-tests
+++ b/modules/vsprintf-posix-tests
@@ -1,6 +1,7 @@
 Files:
 tests/test-vsprintf-posix.c
 tests/test-sprintf-posix.h
+tests/minus-zero.h
 tests/nan.h
 tests/signature.h
 tests/macros.h
--- a/modules/wchar
+++ b/modules/wchar
@@ -29,6 +29,7 @@
 	  sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+	      -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
 	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
 	      -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
 	      -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -330,6 +330,12 @@
     || fail_ "failed to create temporary directory in $initial_cwd_"
   cd "$test_dir_"
 
+  # As autoconf-generated configure scripts do, ensure that IFS
+  # is defined initially, so that saving and restoring $IFS works.
+  gl_init_sh_nl_='
+'
+  IFS=" ""	$gl_init_sh_nl_"
+
   # This trap statement, along with a trap on 0 below, ensure that the
   # temporary directory, $test_dir_, is removed upon exit as well as
   # upon receipt of any of the listed signals.
new file mode 100644
--- /dev/null
+++ b/tests/minus-zero.h
@@ -0,0 +1,70 @@
+/* Macros for floating-point negative zero.
+   Copyright (C) 2010 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+
+/* minus_zerof represents the value -0.0f.  */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -FLT_MIN * FLT_MIN does not work when cross-compiling
+   to PowerPC on MacOS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static float
+compute_minus_zerof (void)
+{
+  return -FLT_MIN * FLT_MIN;
+}
+# define minus_zerof compute_minus_zerof ()
+#else
+float minus_zerof = -0.0f;
+#endif
+
+
+/* minus_zerod represents the value -0.0.  */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on MacOS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zerod (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zerod compute_minus_zerod ()
+#else
+double minus_zerod = -0.0;
+#endif
+
+/* minus_zerol represents the value -0.0L.  */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -LDBL_MIN * LDBL_MIN does not work when cross-compiling
+   to PowerPC on MacOS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
+#else
+long double minus_zerol = -0.0L;
+#endif
--- a/tests/test-ceilf1.c
+++ b/tests/test-ceilf1.c
@@ -24,45 +24,57 @@
 SIGNATURE_CHECK (ceilf, float, (float));
 
 #include "isnanf-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zero = 0.0f;
+/* If IEEE compliance was not requested, the ICC compiler inlines its
+   own ceilf assembly that turns -0.0f to 0.0f; but that is a correct
+   result when IEEE is not enforced.  To avoid spurious failure, we
+   have to provide this dummy function in order to outsmart ICC's
+   inlining, and call our ceilf through a function pointer.  */
+static float
+dummy (float f)
+{
+  return 0;
+}
 
 int
-main ()
+main (int argc, char **argv _GL_UNUSED)
 {
+  float (*my_ceilf) (float) = argc ? ceilf : dummy;
+
   /* Zero.  */
-  ASSERT (ceilf (0.0f) == 0.0f);
-  ASSERT (ceilf (-zero) == 0.0f);
+  ASSERT (my_ceilf (0.0f) == 0.0f);
+  ASSERT (!signbit (my_ceilf (0.0f)));
+  ASSERT (my_ceilf (minus_zerof) == 0.0f);
+  ASSERT (!!signbit (minus_zerof) == !!signbit (my_ceilf (minus_zerof)));
   /* Positive numbers.  */
-  ASSERT (ceilf (0.3f) == 1.0f);
-  ASSERT (ceilf (0.7f) == 1.0f);
-  ASSERT (ceilf (1.0f) == 1.0f);
-  ASSERT (ceilf (1.001f) == 2.0f);
-  ASSERT (ceilf (1.5f) == 2.0f);
-  ASSERT (ceilf (1.999f) == 2.0f);
-  ASSERT (ceilf (2.0f) == 2.0f);
-  ASSERT (ceilf (65535.99f) == 65536.0f);
-  ASSERT (ceilf (65536.0f) == 65536.0f);
-  ASSERT (ceilf (2.341e31f) == 2.341e31f);
+  ASSERT (my_ceilf (0.3f) == 1.0f);
+  ASSERT (my_ceilf (0.7f) == 1.0f);
+  ASSERT (my_ceilf (1.0f) == 1.0f);
+  ASSERT (my_ceilf (1.001f) == 2.0f);
+  ASSERT (my_ceilf (1.5f) == 2.0f);
+  ASSERT (my_ceilf (1.999f) == 2.0f);
+  ASSERT (my_ceilf (2.0f) == 2.0f);
+  ASSERT (my_ceilf (65535.99f) == 65536.0f);
+  ASSERT (my_ceilf (65536.0f) == 65536.0f);
+  ASSERT (my_ceilf (2.341e31f) == 2.341e31f);
   /* Negative numbers.  */
-  ASSERT (ceilf (-0.3f) == 0.0f);
-  ASSERT (ceilf (-0.7f) == 0.0f);
-  ASSERT (ceilf (-1.0f) == -1.0f);
-  ASSERT (ceilf (-1.5f) == -1.0f);
-  ASSERT (ceilf (-1.999f) == -1.0f);
-  ASSERT (ceilf (-2.0f) == -2.0f);
-  ASSERT (ceilf (-65535.99f) == -65535.0f);
-  ASSERT (ceilf (-65536.0f) == -65536.0f);
-  ASSERT (ceilf (-2.341e31f) == -2.341e31f);
+  ASSERT (my_ceilf (-0.3f) == 0.0f);
+  ASSERT (my_ceilf (-0.7f) == 0.0f);
+  ASSERT (my_ceilf (-1.0f) == -1.0f);
+  ASSERT (my_ceilf (-1.5f) == -1.0f);
+  ASSERT (my_ceilf (-1.999f) == -1.0f);
+  ASSERT (my_ceilf (-2.0f) == -2.0f);
+  ASSERT (my_ceilf (-65535.99f) == -65535.0f);
+  ASSERT (my_ceilf (-65536.0f) == -65536.0f);
+  ASSERT (my_ceilf (-2.341e31f) == -2.341e31f);
   /* Infinite numbers.  */
-  ASSERT (ceilf (1.0f / 0.0f) == 1.0f / 0.0f);
-  ASSERT (ceilf (-1.0f / 0.0f) == -1.0f / 0.0f);
+  ASSERT (my_ceilf (1.0f / 0.0f) == 1.0f / 0.0f);
+  ASSERT (my_ceilf (-1.0f / 0.0f) == -1.0f / 0.0f);
   /* NaNs.  */
-  ASSERT (isnanf (ceilf (NaNf ())));
+  ASSERT (isnanf (my_ceilf (NaNf ())));
 
   return 0;
 }
--- a/tests/test-ceilf2.c
+++ b/tests/test-ceilf2.c
@@ -63,6 +63,9 @@
 
   if (z > L_(0.0))
     {
+      /* Work around ICC's desire to optimize denormal floats to 0.  */
+      if (z < FLT_MIN)
+        return L_(1.0);
       /* Avoid rounding errors for values near 2^k, where k >= MANT_DIG-1.  */
       if (z < TWO_MANT_DIG)
         {
--- a/tests/test-ceill.c
+++ b/tests/test-ceill.c
@@ -27,25 +27,10 @@
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -55,7 +40,9 @@
 
   /* Zero.  */
   ASSERT (ceill (0.0L) == 0.0L);
-  ASSERT (ceill (minus_zero) == 0.0L);
+  ASSERT (!signbit (ceill (0.0L)));
+  ASSERT (ceill (minus_zerol) == 0.0L);
+  ASSERT (!!signbit (minus_zerol) == !!signbit (ceill (minus_zerol)));
   /* Positive numbers.  */
   ASSERT (ceill (0.3L) == 1.0L);
   ASSERT (ceill (0.7L) == 1.0L);
--- a/tests/test-copysign.c
+++ b/tests/test-copysign.c
@@ -24,10 +24,14 @@
 SIGNATURE_CHECK (copysign, double, (double, double));
 
 #include "macros.h"
+#include "minus-zero.h"
+
+#include <string.h>
 
 volatile double x;
 volatile double y;
 double z;
+double zero = 0.0;
 
 int
 main ()
@@ -56,5 +60,52 @@
   z = copysign (x, y);
   ASSERT (z == -0.6);
 
+  /* From signed zero.  */
+  x = 1.0;
+  y = 0.0;
+  z = copysign (x, y);
+  ASSERT (z == 1.0);
+
+  x = 1.0;
+  y = minus_zerod;
+  z = copysign (x, y);
+  /* Assume all gnulib targets support -0.0, until proven otherwise.  */
+  ASSERT (z == -1.0);
+
+  x = -1.0;
+  y = 0.0;
+  z = copysign (x, y);
+  ASSERT (z == 1.0);
+
+  x = -1.0;
+  y = minus_zerod;
+  z = copysign (x, y);
+  ASSERT (z == -1.0);
+
+  /* To signed zero.  */
+  x = 0.0;
+  y = 1.0;
+  z = copysign (x, y);
+  ASSERT (z == 0.0);
+  ASSERT (memcmp (&z, &zero, sizeof z) == 0);
+
+  x = 0.0;
+  y = -1.0;
+  z = copysign (x, y);
+  ASSERT (z == 0.0);
+  ASSERT (memcmp (&z, &zero, sizeof z) != 0);
+
+  x = minus_zerod;
+  y = 1.0;
+  z = copysign (x, y);
+  ASSERT (z == 0.0);
+  ASSERT (memcmp (&z, &zero, sizeof z) == 0);
+
+  x = minus_zerod;
+  y = -1.0;
+  z = copysign (x, y);
+  ASSERT (z == 0.0);
+  ASSERT (memcmp (&z, &zero, sizeof z) != 0);
+
   return 0;
 }
--- a/tests/test-floorf1.c
+++ b/tests/test-floorf1.c
@@ -24,45 +24,57 @@
 SIGNATURE_CHECK (floorf, float, (float));
 
 #include "isnanf-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zero = 0.0f;
+/* If IEEE compliance was not requested, the ICC compiler inlines its
+   own floorf assembly that turns -0.0f to 0.0f; but that is a correct
+   result when IEEE is not enforced.  To avoid spurious failure, we
+   have to provide this dummy function in order to outsmart ICC's
+   inlining, and call our floorf through a function pointer.  */
+static float
+dummy (float f)
+{
+  return 0;
+}
 
 int
-main ()
+main (int argc, char **argv _GL_UNUSED)
 {
+  float (*my_floorf) (float) = argc ? floorf : dummy;
+
   /* Zero.  */
-  ASSERT (floorf (0.0f) == 0.0f);
-  ASSERT (floorf (-zero) == 0.0f);
+  ASSERT (my_floorf (0.0f) == 0.0f);
+  ASSERT (!signbit (my_floorf (0.0f)));
+  ASSERT (my_floorf (minus_zerof) == 0.0f);
+  ASSERT (!!signbit (minus_zerof) == !!signbit (my_floorf (minus_zerof)));
   /* Positive numbers.  */
-  ASSERT (floorf (0.3f) == 0.0f);
-  ASSERT (floorf (0.7f) == 0.0f);
-  ASSERT (floorf (1.0f) == 1.0f);
-  ASSERT (floorf (1.5f) == 1.0f);
-  ASSERT (floorf (1.999f) == 1.0f);
-  ASSERT (floorf (2.0f) == 2.0f);
-  ASSERT (floorf (65535.99f) == 65535.0f);
-  ASSERT (floorf (65536.0f) == 65536.0f);
-  ASSERT (floorf (2.341e31f) == 2.341e31f);
+  ASSERT (my_floorf (0.3f) == 0.0f);
+  ASSERT (my_floorf (0.7f) == 0.0f);
+  ASSERT (my_floorf (1.0f) == 1.0f);
+  ASSERT (my_floorf (1.5f) == 1.0f);
+  ASSERT (my_floorf (1.999f) == 1.0f);
+  ASSERT (my_floorf (2.0f) == 2.0f);
+  ASSERT (my_floorf (65535.99f) == 65535.0f);
+  ASSERT (my_floorf (65536.0f) == 65536.0f);
+  ASSERT (my_floorf (2.341e31f) == 2.341e31f);
   /* Negative numbers.  */
-  ASSERT (floorf (-0.3f) == -1.0f);
-  ASSERT (floorf (-0.7f) == -1.0f);
-  ASSERT (floorf (-1.0f) == -1.0f);
-  ASSERT (floorf (-1.001f) == -2.0f);
-  ASSERT (floorf (-1.5f) == -2.0f);
-  ASSERT (floorf (-1.999f) == -2.0f);
-  ASSERT (floorf (-2.0f) == -2.0f);
-  ASSERT (floorf (-65535.99f) == -65536.0f);
-  ASSERT (floorf (-65536.0f) == -65536.0f);
-  ASSERT (floorf (-2.341e31f) == -2.341e31f);
+  ASSERT (my_floorf (-0.3f) == -1.0f);
+  ASSERT (my_floorf (-0.7f) == -1.0f);
+  ASSERT (my_floorf (-1.0f) == -1.0f);
+  ASSERT (my_floorf (-1.001f) == -2.0f);
+  ASSERT (my_floorf (-1.5f) == -2.0f);
+  ASSERT (my_floorf (-1.999f) == -2.0f);
+  ASSERT (my_floorf (-2.0f) == -2.0f);
+  ASSERT (my_floorf (-65535.99f) == -65536.0f);
+  ASSERT (my_floorf (-65536.0f) == -65536.0f);
+  ASSERT (my_floorf (-2.341e31f) == -2.341e31f);
   /* Infinite numbers.  */
-  ASSERT (floorf (1.0f / 0.0f) == 1.0f / 0.0f);
-  ASSERT (floorf (-1.0f / 0.0f) == -1.0f / 0.0f);
+  ASSERT (my_floorf (1.0f / 0.0f) == 1.0f / 0.0f);
+  ASSERT (my_floorf (-1.0f / 0.0f) == -1.0f / 0.0f);
   /* NaNs.  */
-  ASSERT (isnanf (floorf (NaNf ())));
+  ASSERT (isnanf (my_floorf (NaNf ())));
 
   return 0;
 }
--- a/tests/test-floorf2.c
+++ b/tests/test-floorf2.c
@@ -76,6 +76,9 @@
     }
   else if (z < L_(0.0))
     {
+      /* Work around ICC's desire to optimize denormal floats to 0.  */
+      if (z > -FLT_MIN)
+        return L_(-1.0);
       /* Avoid rounding errors for values near -2^k, where k >= MANT_DIG-1.  */
       if (z > - TWO_MANT_DIG)
         {
--- a/tests/test-floorl.c
+++ b/tests/test-floorl.c
@@ -27,25 +27,10 @@
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -55,7 +40,9 @@
 
   /* Zero.  */
   ASSERT (floorl (0.0L) == 0.0L);
-  ASSERT (floorl (minus_zero) == 0.0L);
+  ASSERT (!signbit (floorl (0.0L)));
+  ASSERT (floorl (minus_zerol) == 0.0L);
+  ASSERT (!!signbit (minus_zerol) == !!signbit (floorl (minus_zerol)));
   /* Positive numbers.  */
   ASSERT (floorl (0.3L) == 0.0L);
   ASSERT (floorl (0.7L) == 0.0L);
--- a/tests/test-frexp.c
+++ b/tests/test-frexp.c
@@ -26,6 +26,7 @@
 #include <float.h>
 
 #include "isnand-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
@@ -34,10 +35,6 @@
 #undef exp
 #define exp exponent
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zero = 0.0;
-
 static double
 my_ldexp (double x, int d)
 {
@@ -96,7 +93,7 @@
   { /* Negative zero.  */
     int exp = -9999;
     double mantissa;
-    x = -zero;
+    x = minus_zerod;
     mantissa = frexp (x, &exp);
     ASSERT (exp == 0);
     ASSERT (mantissa == x);
--- a/tests/test-frexpl.c
+++ b/tests/test-frexpl.c
@@ -27,6 +27,7 @@
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
@@ -48,22 +49,6 @@
 # define MIN_NORMAL_EXP LDBL_MIN_EXP
 #endif
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 static long double
 my_ldexp (long double x, int d)
 {
@@ -120,7 +105,7 @@
   { /* Negative zero.  */
     int exp = -9999;
     long double mantissa;
-    x = minus_zero;
+    x = minus_zerol;
     mantissa = frexpl (x, &exp);
     ASSERT (exp == 0);
     ASSERT (mantissa == x);
new file mode 100644
--- /dev/null
+++ b/tests/test-getdomainname.c
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2008-2010 Free Software Foundation, Inc.
+ * Written by Simon Josefsson.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Get getdomainname() declaration.  */
+#include <unistd.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (getdomainname, int, (char *, size_t));
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#define YPMAXDOMAIN 64
+
+#define NODOMAINNAME "magic-gnulib-test-string"
+
+int
+main (int argc, char *argv[] _GL_UNUSED)
+{
+  char buf[YPMAXDOMAIN];
+  int rc;
+
+  if (strlen (NODOMAINNAME) >= YPMAXDOMAIN)
+    {
+      printf ("YPMAXDOMAIN impossibly small?! %d\n", YPMAXDOMAIN);
+      return 2;
+    }
+
+  strcpy (buf, NODOMAINNAME);
+
+  rc = getdomainname (buf, sizeof (buf));
+
+  if (rc != 0)
+    {
+      printf ("getdomainname failed, rc %d errno %d\n", rc, errno);
+      return 1;
+    }
+
+  if (strcmp (buf, NODOMAINNAME) == 0)
+    {
+      printf ("getdomainname left buffer untouched.\n");
+      return 1;
+    }
+
+  if (argc > 1)
+    printf ("domainname: %s\n", buf);
+
+  return 0;
+}
--- a/tests/test-getopt.h
+++ b/tests/test-getopt.h
@@ -21,7 +21,7 @@
 /* The glibc/gnulib implementation of getopt supports setting optind =
    0, but not all other implementations do.  This matters for getopt.
    But for getopt_long, we require GNU compatibility.  */
-#if defined __GETOPT_PREFIX || (__GLIBC__ >= 2)
+#if defined __GETOPT_PREFIX || (__GLIBC__ >= 2 && !defined __UCLIBC__)
 # define OPTIND_MIN 0
 #elif HAVE_DECL_OPTRESET
 # define OPTIND_MIN (optreset = 1)
@@ -1187,7 +1187,7 @@
       ASSERT (q_value == NULL);
       ASSERT (non_options_count == 0);
       ASSERT (unrecognized == 0);
-      ASSERT (optind = 1);
+      ASSERT (optind == 1);
       ASSERT (!output);
     }
 #endif /* GNULIB_TEST_GETOPT_GNU */
--- a/tests/test-getopt_long.h
+++ b/tests/test-getopt_long.h
@@ -1747,7 +1747,7 @@
       ASSERT (q_value == NULL);
       ASSERT (non_options_count == 0);
       ASSERT (unrecognized == 0);
-      ASSERT (optind = 1);
+      ASSERT (optind == 1);
     }
 
   /* Check that the '+' flag has to come first.  */
--- a/tests/test-iconv-h-c++.cc
+++ b/tests/test-iconv-h-c++.cc
@@ -22,20 +22,22 @@
 #if HAVE_ICONV
 # include <iconv.h>
 
-# ifndef ICONV_CONST
-#  define ICONV_CONST /* empty */
-# endif
-
 # include "signature.h"
 
 
+#if GNULIB_TEST_ICONV
 SIGNATURE_CHECK (GNULIB_NAMESPACE::iconv_open, iconv_t,
                  (const char *, const char *));
+#endif
 
+#if GNULIB_TEST_ICONV
 SIGNATURE_CHECK (GNULIB_NAMESPACE::iconv, size_t,
                  (iconv_t, ICONV_CONST char **, size_t *, char **, size_t *));
+#endif
 
+#if GNULIB_TEST_ICONV
 SIGNATURE_CHECK (GNULIB_NAMESPACE::iconv_close, int, (iconv_t));
+#endif
 
 #endif
 
--- a/tests/test-iconv-h.c
+++ b/tests/test-iconv-h.c
@@ -18,10 +18,6 @@
 
 #if HAVE_ICONV
 # include <iconv.h>
-
-# ifndef ICONV_CONST
-#  define ICONV_CONST /* empty */
-# endif
 #endif
 
 int
--- a/tests/test-inttostr.c
+++ b/tests/test-inttostr.c
@@ -65,13 +65,15 @@
 int
 main (void)
 {
-  char buf[2];
+  size_t b_size = 2;
+  char *b = malloc (b_size);
+  ASSERT (b);
 
   /* Ideally we would rely on the snprintf-posix module, in which case
      this guard would not be required, but due to limitations in gnulib's
      implementation (see modules/snprintf-posix), we cannot.  */
-  if (snprintf (buf, sizeof buf, "%ju", (uintmax_t) 3) == 1
-      && buf[0] == '3' && buf[1] == '\0')
+  if (snprintf (b, b_size, "%ju", (uintmax_t) 3) == 1
+      && b[0] == '3' && b[1] == '\0')
     {
       CK (int,          inttostr);
       CK (unsigned int, uinttostr);
--- a/tests/test-isnan.c
+++ b/tests/test-isnan.c
@@ -29,33 +29,10 @@
 #include <float.h>
 #include <limits.h>
 
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zerof = 0.0f;
-
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zerod = 0.0;
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 static void
 test_float (void)
 {
@@ -67,7 +44,7 @@
   ASSERT (!isnan (-2.718e30f));
   ASSERT (!isnan (-2.718e-30f));
   ASSERT (!isnan (0.0f));
-  ASSERT (!isnan (-zerof));
+  ASSERT (!isnan (minus_zerof));
   /* Infinite values.  */
   ASSERT (!isnan (1.0f / 0.0f));
   ASSERT (!isnan (-1.0f / 0.0f));
@@ -107,7 +84,7 @@
   ASSERT (!isnan (-2.718e30));
   ASSERT (!isnan (-2.718e-30));
   ASSERT (!isnan (0.0));
-  ASSERT (!isnan (-zerod));
+  ASSERT (!isnan (minus_zerod));
   /* Infinite values.  */
   ASSERT (!isnan (1.0 / 0.0));
   ASSERT (!isnan (-1.0 / 0.0));
--- a/tests/test-isnand.h
+++ b/tests/test-isnand.h
@@ -18,13 +18,10 @@
 
 #include <limits.h>
 
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zero = 0.0;
-
 int
 main ()
 {
@@ -36,7 +33,7 @@
   ASSERT (!isnand (-2.718e30));
   ASSERT (!isnand (-2.718e-30));
   ASSERT (!isnand (0.0));
-  ASSERT (!isnand (-zero));
+  ASSERT (!isnand (minus_zerod));
   /* Infinite values.  */
   ASSERT (!isnand (1.0 / 0.0));
   ASSERT (!isnand (-1.0 / 0.0));
--- a/tests/test-isnanf.h
+++ b/tests/test-isnanf.h
@@ -18,13 +18,10 @@
 
 #include <limits.h>
 
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zero = 0.0f;
-
 int
 main ()
 {
@@ -36,7 +33,7 @@
   ASSERT (!isnanf (-2.718e30f));
   ASSERT (!isnanf (-2.718e-30f));
   ASSERT (!isnanf (0.0f));
-  ASSERT (!isnanf (-zero));
+  ASSERT (!isnanf (minus_zerof));
   /* Infinite values.  */
   ASSERT (!isnanf (1.0f / 0.0f));
   ASSERT (!isnanf (-1.0f / 0.0f));
--- a/tests/test-isnanl.h
+++ b/tests/test-isnanl.h
@@ -19,25 +19,10 @@
 #include <float.h>
 #include <limits.h>
 
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -54,7 +39,7 @@
   ASSERT (!isnanl (-2.718e30L));
   ASSERT (!isnanl (-2.718e-30L));
   ASSERT (!isnanl (0.0L));
-  ASSERT (!isnanl (minus_zero));
+  ASSERT (!isnanl (minus_zerol));
   /* Infinite values.  */
   ASSERT (!isnanl (1.0L / 0.0L));
   ASSERT (!isnanl (-1.0L / 0.0L));
--- a/tests/test-ldexpl.c
+++ b/tests/test-ldexpl.c
@@ -27,25 +27,10 @@
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -85,7 +70,7 @@
   }
 
   { /* Negative zero.  */
-    x = minus_zero;
+    x = minus_zerol;
     y = ldexpl (x, 0); ASSERT (y == x); ASSERT (signbit (x));
     y = ldexpl (x, 5); ASSERT (y == x); ASSERT (signbit (x));
     y = ldexpl (x, -5); ASSERT (y == x); ASSERT (signbit (x));
--- a/tests/test-nl_langinfo.c
+++ b/tests/test-nl_langinfo.c
@@ -1,5 +1,5 @@
 /* Test of nl_langinfo replacement.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -30,6 +30,13 @@
 #include "c-strcase.h"
 #include "macros.h"
 
+/* For GCC >= 4.2, silence the warnings
+     "comparison of unsigned expression >= 0 is always true"
+   in this file.  */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+# pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
+
 int
 main (int argc, char *argv[])
 {
@@ -105,7 +112,11 @@
   /* nl_langinfo items of the LC_MONETARY category */
   {
     const char *currency = nl_langinfo (CRNCYSTR);
-    ASSERT (strlen (currency) >= (pass > 0 ? 1 : 0));
+    ASSERT (strlen (currency) >= 0);
+#if !defined __NetBSD__
+    if (pass > 0)
+      ASSERT (strlen (currency) >= 1);
+#endif
   }
   /* nl_langinfo items of the LC_MESSAGES category */
   ASSERT (strlen (nl_langinfo (YESEXPR)) > 0);
--- a/tests/test-pipe.c
+++ b/tests/test-pipe.c
@@ -1,5 +1,5 @@
-/* Test of create_pipe_bidi/wait_subprocess.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+/* Test of pipe.
+   Copyright (C) 2009-2010 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -17,188 +17,87 @@
 
 #include <config.h>
 
-#include "pipe.h"
-#include "wait-process.h"
-
-#include <errno.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
 #include <unistd.h>
 
-/* Depending on arguments, this test intentionally closes stderr or
-   starts life with stderr closed.  So, we arrange to have fd 10
-   (outside the range of interesting fd's during the test) set up to
-   duplicate the original stderr.  */
+#include "signature.h"
+SIGNATURE_CHECK (pipe, int, (int[2]));
+
+#include <fcntl.h>
+#include <stdbool.h>
 
-#define BACKUP_STDERR_FILENO 10
-#define ASSERT_STREAM myerr
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the Win32 API functions.  */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#include "binary-io.h"
 #include "macros.h"
 
-static FILE *myerr;
-
-/* Code executed by the child process.  argv[1] = "child".  */
-static int
-child_main (int argc, char *argv[])
+/* Return true if FD is open.  */
+static bool
+is_open (int fd)
 {
-  char buffer[2] = { 's', 't' };
-  int fd;
-  int ret;
-
-  ASSERT (argc == 3);
-
-  /* Read one byte from fd 0, and write its value plus one to fd 1.
-     fd 2 should be closed iff the argument is 1.  Check that no other file
-     descriptors leaked.  */
-
-  ASSERT (read (STDIN_FILENO, buffer, 2) == 1);
-
-  buffer[0]++;
-  ASSERT (write (STDOUT_FILENO, buffer, 1) == 1);
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* On Win32, the initial state of unassigned standard file
+     descriptors is that they are open but point to an
+     INVALID_HANDLE_VALUE, and there is no fcntl.  */
+  return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
+#else
+# ifndef F_GETFL
+#  error Please port fcntl to your platform
+# endif
+  return 0 <= fcntl (fd, F_GETFL);
+#endif
+}
 
-  errno = 0;
-  ret = dup2 (STDERR_FILENO, STDERR_FILENO);
-  switch (atoi (argv[2]))
-    {
-    case 0:
-      /* Expect fd 2 is open.  */
-      ASSERT (ret == STDERR_FILENO);
-      break;
-    case 1:
-      /* Expect fd 2 is closed.  */
-      ASSERT (ret == -1);
-      ASSERT (errno == EBADF);
-      break;
-    default:
-      ASSERT (false);
-    }
+/* Return true if FD is not inherited to child processes.  */
+static bool
+is_cloexec (int fd)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  HANDLE h = (HANDLE) _get_osfhandle (fd);
+  DWORD flags;
+  ASSERT (GetHandleInformation (h, &flags));
+  return (flags & HANDLE_FLAG_INHERIT) == 0;
+#else
+  int flags;
+  ASSERT ((flags = fcntl (fd, F_GETFD)) >= 0);
+  return (flags & FD_CLOEXEC) != 0;
+#endif
+}
 
-  for (fd = 3; fd < 7; fd++)
-    {
-      errno = 0;
-      ASSERT (close (fd) == -1);
-      ASSERT (errno == EBADF);
-    }
+/* Return true if FD is in non-blocking mode.  */
+static bool
+is_nonblocking (int fd)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* We don't use the non-blocking mode for sockets here.  */
+  return 0;
+#else
+  int flags;
+  ASSERT ((flags = fcntl (fd, F_GETFL)) >= 0);
+  return (flags & O_NONBLOCK) != 0;
+#endif
+}
+
+int
+main ()
+{
+  int fd[2];
+
+  fd[0] = -1;
+  fd[1] = -1;
+  ASSERT (pipe (fd) >= 0);
+  ASSERT (fd[0] >= 0);
+  ASSERT (fd[1] >= 0);
+  ASSERT (fd[0] != fd[1]);
+  ASSERT (is_open (fd[0]));
+  ASSERT (is_open (fd[1]));
+  ASSERT (!is_cloexec (fd[0]));
+  ASSERT (!is_cloexec (fd[1]));
+  ASSERT (!is_nonblocking (fd[0]));
+  ASSERT (!is_nonblocking (fd[1]));
 
   return 0;
 }
-
-/* Create a bi-directional pipe to a test child, and validate that the
-   child program returns the expected output.  The child is the same
-   program as the parent ARGV0, but with different arguments.
-   STDERR_CLOSED is true if we have already closed fd 2.  */
-static void
-test_pipe (const char *argv0, bool stderr_closed)
-{
-  int fd[2];
-  char *argv[4];
-  pid_t pid;
-  char buffer[2] = { 'a', 't' };
-
-  /* Set up child.  */
-  argv[0] = (char *) argv0;
-  argv[1] = (char *) "child";
-  argv[2] = (char *) (stderr_closed ? "1" : "0");
-  argv[3] = NULL;
-  pid = create_pipe_bidi (argv0, argv0, argv, false, true, true, fd);
-  ASSERT (0 <= pid);
-  ASSERT (STDERR_FILENO < fd[0]);
-  ASSERT (STDERR_FILENO < fd[1]);
-
-  /* Push child's input.  */
-  ASSERT (write (fd[1], buffer, 1) == 1);
-  ASSERT (close (fd[1]) == 0);
-
-  /* Get child's output.  */
-  ASSERT (read (fd[0], buffer, 2) == 1);
-
-  /* Wait for child.  */
-  ASSERT (wait_subprocess (pid, argv0, true, false, true, true, NULL) == 0);
-  ASSERT (close (fd[0]) == 0);
-
-  /* Check the result.  */
-  ASSERT (buffer[0] == 'b');
-  ASSERT (buffer[1] == 't');
-}
-
-/* Code executed by the parent process.  */
-static int
-parent_main (int argc, char *argv[])
-{
-  int test;
-  int fd;
-
-  ASSERT (argc == 2);
-
-  /* Selectively close various standard fds, to verify the child process is
-     not impacted by this.  */
-  test = atoi (argv[1]);
-  switch (test)
-    {
-    case 0:
-      break;
-    case 1:
-      close (0);
-      break;
-    case 2:
-      close (1);
-      break;
-    case 3:
-      close (0);
-      close (1);
-      break;
-    case 4:
-      close (2);
-      break;
-    case 5:
-      close (0);
-      close (2);
-      break;
-    case 6:
-      close (1);
-      close (2);
-      break;
-    case 7:
-      close (0);
-      close (1);
-      close (2);
-      break;
-    default:
-      ASSERT (false);
-    }
-
-  /* Plug any file descriptor leaks inherited from outside world before
-     starting, so that child has a clean slate (at least for the fds that we
-     might be manipulating).  */
-  for (fd = 3; fd < 7; fd++)
-    close (fd);
-
-  test_pipe (argv[0], test >= 4);
-
-  return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
-  if (argc < 2)
-    {
-      fprintf (stderr, "%s: need arguments\n", argv[0]);
-      return 2;
-    }
-  if (strcmp (argv[1], "child") == 0)
-    {
-      /* fd 2 might be closed, but fd BACKUP_STDERR_FILENO is the original
-         stderr.  */
-      myerr = fdopen (BACKUP_STDERR_FILENO, "w");
-      if (!myerr)
-        return 2;
-      return child_main (argc, argv);
-    }
-  /* We might close fd 2 later, so save it in fd 10.  */
-  if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO
-      || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL)
-    return 2;
-  return parent_main (argc, argv);
-}
deleted file mode 100755
--- a/tests/test-pipe.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-st=0
-for i in 0 1 2 3 4 5 6 7 ; do
-  ./test-pipe${EXEEXT} $i \
-    || { echo test-pipe.sh: iteration $i failed >&2; st=1; }
-done
-exit $st
--- a/tests/test-pipe2.c
+++ b/tests/test-pipe2.c
@@ -117,8 +117,8 @@
         ASSERT (fd[0] >= 0);
         ASSERT (fd[1] >= 0);
         ASSERT (fd[0] != fd[1]);
-        ASSERT (is_open (fd[0]) >= 0);
-        ASSERT (is_open (fd[1]) >= 0);
+        ASSERT (is_open (fd[0]));
+        ASSERT (is_open (fd[1]));
         if (use_cloexec)
           {
             ASSERT (is_cloexec (fd[0]));
--- a/tests/test-quotearg-simple.c
+++ b/tests/test-quotearg-simple.c
@@ -244,7 +244,7 @@
   ASSERT (!isprint ('\033'));
   for (i = literal_quoting_style; i <= clocale_quoting_style; i++)
     {
-      set_quoting_style (NULL, i);
+      set_quoting_style (NULL, (enum quoting_style) i);
       compare_strings (use_quotearg_buffer, &results_g[i].group1, ascii_only);
       compare_strings (use_quotearg, &results_g[i].group2, ascii_only);
       if (i == c_quoting_style)
--- a/tests/test-rename.c
+++ b/tests/test-rename.c
@@ -21,6 +21,7 @@
 #include "signature.h"
 SIGNATURE_CHECK (rename, int, (char const *, char const *));
 
+#include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <stdbool.h>
--- a/tests/test-rename.h
+++ b/tests/test-rename.h
@@ -20,6 +20,49 @@
    appropriate headers are already included.  If PRINT, warn before
    skipping symlink tests with status 77.  */
 
+/* Tests whether a file, given by a file name without slashes, exists in
+   the current directory, by scanning the directory entries.  */
+static bool
+dentry_exists (const char *filename)
+{
+  bool exists = false;
+  DIR *dir = opendir (".");
+
+  ASSERT (dir != NULL);
+  for (;;)
+    {
+      struct dirent *d = readdir (dir);
+      if (d == NULL)
+        break;
+      if (strcmp (d->d_name, filename) == 0)
+        {
+          exists = true;
+          break;
+        }
+    }
+  ASSERT (closedir (dir) == 0);
+  return exists;
+}
+
+/* Asserts that a specific file, given by a file name without slashes, does
+   not exist in the current directory.  */
+static void
+assert_nonexistent (const char *filename)
+{
+  struct stat st;
+
+  /* The usual way to test the presence of a file is via stat() or lstat().  */
+  errno = 0;
+  if (stat (filename, &st) == -1)
+    ASSERT (errno == ENOENT);
+  else
+    /* But after renaming a directory over an empty directory on an NFS-mounted
+       file system, on Linux 2.6.18, for a period of 30 seconds the old
+       directory name is "present" according to stat() but "nonexistent"
+       according to dentry_exists().  */
+    ASSERT (!dentry_exists (filename));
+}
+
 static int
 test_rename (int (*func) (char const *, char const *), bool print)
 {
@@ -31,168 +74,400 @@
   ASSERT (close (fd) == 0);
   ASSERT (mkdir (BASE "dir", 0700) == 0);
 
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
+
   /* Obvious errors.  */
 
-  errno = 0; /* Missing source.  */
-  ASSERT (func (BASE "missing", BASE "missing") == -1);
-  ASSERT (errno == ENOENT);
-  errno = 0;
-  ASSERT (func (BASE "missing/", BASE "missing") == -1);
-  ASSERT (errno == ENOENT);
-  errno = 0;
-  ASSERT (func (BASE "missing", BASE "missing/") == -1);
-  ASSERT (errno == ENOENT);
-  errno = 0; /* Empty operand.  */
-  ASSERT (func ("", BASE "missing") == -1);
-  ASSERT (errno == ENOENT);
-  errno = 0;
-  ASSERT (func (BASE "file", "") == -1);
-  ASSERT (errno == ENOENT);
-  errno = 0;
-  ASSERT (func (BASE "", "") == -1);
-  ASSERT (errno == ENOENT);
+  { /* Missing source.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "missing", BASE "missing") == -1);
+      ASSERT (errno == ENOENT);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "missing/", BASE "missing") == -1);
+      ASSERT (errno == ENOENT);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "missing", BASE "missing/") == -1);
+      ASSERT (errno == ENOENT);
+    }
+  }
+  { /* Empty operand.  */
+    {
+      errno = 0;
+      ASSERT (func ("", BASE "missing") == -1);
+      ASSERT (errno == ENOENT);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "file", "") == -1);
+      ASSERT (errno == ENOENT);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "", "") == -1);
+      ASSERT (errno == ENOENT);
+    }
+  }
 
   /* Files.  */
-  errno = 0; /* Trailing slash.  */
-  ASSERT (func (BASE "file", BASE "file2/") == -1);
-  ASSERT (errno == ENOENT || errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "file/", BASE "file2") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (stat (BASE "file2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (func (BASE "file", BASE "file2") == 0); /* Simple rename.  */
-  errno = 0;
-  ASSERT (stat (BASE "file", &st) == -1);
-  ASSERT (errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (stat (BASE "file2", &st) == 0);
-  ASSERT (st.st_size == 2);
-  ASSERT (close (creat (BASE "file", 0600)) == 0); /* Overwrite.  */
-  errno = 0;
-  ASSERT (func (BASE "file2", BASE "file/") == -1);
-  ASSERT (errno == ENOTDIR);
-  ASSERT (func (BASE "file2", BASE "file") == 0);
-  memset (&st, 0, sizeof st);
-  ASSERT (stat (BASE "file", &st) == 0);
-  ASSERT (st.st_size == 2);
-  errno = 0;
-  ASSERT (stat (BASE "file2", &st) == -1);
-  ASSERT (errno == ENOENT);
+
+  { /* Trailing slash.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "file", BASE "file2/") == -1);
+      ASSERT (errno == ENOENT || errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "file/", BASE "file2") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (stat (BASE "file2", &st) == -1);
+      ASSERT (errno == ENOENT);
+    }
+  }
+  { /* Simple rename.  */
+    ASSERT (func (BASE "file", BASE "file2") == 0);
+    errno = 0;
+    ASSERT (stat (BASE "file", &st) == -1);
+    ASSERT (errno == ENOENT);
+    memset (&st, 0, sizeof st);
+    ASSERT (stat (BASE "file2", &st) == 0);
+    ASSERT (st.st_size == 2);
+  }
+  /* Files present here:
+       {BASE}file2
+       {BASE}dir/
+   */
+  { /* Overwrite.  */
+    ASSERT (close (creat (BASE "file", 0600)) == 0);
+    errno = 0;
+    ASSERT (func (BASE "file2", BASE "file/") == -1);
+    ASSERT (errno == ENOTDIR);
+    ASSERT (func (BASE "file2", BASE "file") == 0);
+    memset (&st, 0, sizeof st);
+    ASSERT (stat (BASE "file", &st) == 0);
+    ASSERT (st.st_size == 2);
+    errno = 0;
+    ASSERT (stat (BASE "file2", &st) == -1);
+    ASSERT (errno == ENOENT);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
 
   /* Directories.  */
-  ASSERT (func (BASE "dir", BASE "dir2/") == 0); /* Simple rename.  */
-  errno = 0;
-  ASSERT (stat (BASE "dir", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (stat (BASE "dir2", &st) == 0);
-  ASSERT (func (BASE "dir2/", BASE "dir") == 0);
-  ASSERT (stat (BASE "dir", &st) == 0);
-  errno = 0;
-  ASSERT (stat (BASE "dir2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (func (BASE "dir", BASE "dir2") == 0);
-  errno = 0;
-  ASSERT (stat (BASE "dir", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (stat (BASE "dir2", &st) == 0);
-  ASSERT (mkdir (BASE "dir", 0700) == 0); /* Empty onto empty.  */
-  ASSERT (func (BASE "dir2", BASE "dir") == 0);
-  ASSERT (mkdir (BASE "dir2", 0700) == 0);
-  ASSERT (func (BASE "dir2", BASE "dir/") == 0);
-  ASSERT (mkdir (BASE "dir2", 0700) == 0);
-  ASSERT (func (BASE "dir2/", BASE "dir") == 0);
-  ASSERT (mkdir (BASE "dir2", 0700) == 0);
-  ASSERT (close (creat (BASE "dir/file", 0600)) == 0); /* Empty onto full.  */
-  errno = 0;
-  ASSERT (func (BASE "dir2", BASE "dir") == -1);
-  ASSERT (errno == EEXIST || errno == ENOTEMPTY);
-  errno = 0;
-  ASSERT (func (BASE "dir2/", BASE "dir") == -1);
-  ASSERT (errno == EEXIST || errno == ENOTEMPTY);
-  errno = 0;
-  ASSERT (func (BASE "dir2", BASE "dir/") == -1);
-  ASSERT (errno == EEXIST || errno == ENOTEMPTY);
-  ASSERT (func (BASE "dir", BASE "dir2") == 0); /* Full onto empty.  */
-  errno = 0;
-  ASSERT (stat (BASE "dir", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (stat (BASE "dir2/file", &st) == 0);
-  ASSERT (mkdir (BASE "dir", 0700) == 0);
-  ASSERT (func (BASE "dir2/", BASE "dir") == 0);
-  ASSERT (stat (BASE "dir/file", &st) == 0);
-  errno = 0;
-  ASSERT (stat (BASE "dir2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (mkdir (BASE "dir2", 0700) == 0);
-  ASSERT (func (BASE "dir", BASE "dir2/") == 0);
-  errno = 0;
-  ASSERT (stat (BASE "dir", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (stat (BASE "dir2/file", &st) == 0);
-  ASSERT (unlink (BASE "dir2/file") == 0);
-  errno = 0; /* Reject trailing dot.  */
-  ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
-  ASSERT (errno == EINVAL || errno == ENOENT);
-  ASSERT (mkdir (BASE "dir", 0700) == 0);
-  errno = 0;
-  ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
-  ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
-          || errno == ENOTEMPTY);
-  errno = 0;
-  ASSERT (func (BASE "dir2/.", BASE "dir") == -1);
-  ASSERT (errno == EINVAL || errno == EBUSY);
-  ASSERT (rmdir (BASE "dir") == 0);
-  errno = 0;
-  ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
-  ASSERT (errno == EINVAL || errno == ENOENT);
-  ASSERT (mkdir (BASE "dir", 0700) == 0);
-  errno = 0;
-  ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
-  ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
-          || errno == ENOTEMPTY);
-  errno = 0;
-  ASSERT (func (BASE "dir2/.//", BASE "dir") == -1);
-  ASSERT (errno == EINVAL || errno == EBUSY);
-  ASSERT (rmdir (BASE "dir2") == 0);
-  errno = 0; /* Move into subdir.  */
-  ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
-  ASSERT (errno == EINVAL || errno == EACCES);
-  errno = 0;
-  ASSERT (stat (BASE "dir/sub", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (mkdir (BASE "dir/sub", 0700) == 0);
-  errno = 0;
-  ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
-  ASSERT (errno == EINVAL);
-  ASSERT (stat (BASE "dir/sub", &st) == 0);
-  ASSERT (rmdir (BASE "dir/sub") == 0);
+
+  { /* Simple rename.  */
+    {
+      ASSERT (func (BASE "dir", BASE "dir2/") == 0);
+      errno = 0;
+      ASSERT (stat (BASE "dir", &st) == -1);
+      ASSERT (errno == ENOENT);
+      ASSERT (stat (BASE "dir2", &st) == 0);
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}dir2/
+     */
+    {
+      ASSERT (func (BASE "dir2/", BASE "dir") == 0);
+      ASSERT (stat (BASE "dir", &st) == 0);
+      errno = 0;
+      ASSERT (stat (BASE "dir2", &st) == -1);
+      ASSERT (errno == ENOENT);
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}dir/
+     */
+    {
+      ASSERT (func (BASE "dir", BASE "dir2") == 0);
+      errno = 0;
+      ASSERT (stat (BASE "dir", &st) == -1);
+      ASSERT (errno == ENOENT);
+      ASSERT (stat (BASE "dir2", &st) == 0);
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}dir2/
+     */
+    { /* Empty onto empty.  */
+      ASSERT (mkdir (BASE "dir", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir2/
+       */
+      ASSERT (func (BASE "dir2", BASE "dir") == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+       */
+      ASSERT (mkdir (BASE "dir2", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir2/
+       */
+      ASSERT (func (BASE "dir2", BASE "dir/") == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+       */
+      ASSERT (mkdir (BASE "dir2", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir2/
+       */
+      ASSERT (func (BASE "dir2/", BASE "dir") == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+       */
+      ASSERT (mkdir (BASE "dir2", 0700) == 0);
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}dir/
+         {BASE}dir2/
+     */
+    { /* Empty onto full.  */
+      ASSERT (close (creat (BASE "dir/file", 0600)) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir/file
+           {BASE}dir2/
+       */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2", BASE "dir") == -1);
+        ASSERT (errno == EEXIST || errno == ENOTEMPTY);
+      }
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2/", BASE "dir") == -1);
+        ASSERT (errno == EEXIST || errno == ENOTEMPTY);
+      }
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2", BASE "dir/") == -1);
+        ASSERT (errno == EEXIST || errno == ENOTEMPTY);
+      }
+    }
+    { /* Full onto empty.  */
+      ASSERT (func (BASE "dir", BASE "dir2") == 0);
+      assert_nonexistent (BASE "dir");
+      ASSERT (stat (BASE "dir2/file", &st) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir2/
+           {BASE}dir2/file
+       */
+      ASSERT (mkdir (BASE "dir", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir2/
+           {BASE}dir2/file
+       */
+      {
+        ASSERT (func (BASE "dir2/", BASE "dir") == 0);
+        ASSERT (stat (BASE "dir/file", &st) == 0);
+        errno = 0;
+        ASSERT (stat (BASE "dir2", &st) == -1);
+        ASSERT (errno == ENOENT);
+      }
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir/file
+       */
+      ASSERT (mkdir (BASE "dir2", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir/file
+           {BASE}dir2/
+       */
+      {
+        ASSERT (func (BASE "dir", BASE "dir2/") == 0);
+        assert_nonexistent (BASE "dir");
+        ASSERT (stat (BASE "dir2/file", &st) == 0);
+      }
+      /* Files present here:
+           {BASE}file
+           {BASE}dir2/
+           {BASE}dir2/file
+       */
+      ASSERT (unlink (BASE "dir2/file") == 0);
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}dir2/
+     */
+    { /* Reject trailing dot.  */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
+        ASSERT (errno == EINVAL || errno == ENOENT);
+      }
+      ASSERT (mkdir (BASE "dir", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir2/
+       */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2", BASE "dir/.") == -1);
+        ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
+                || errno == ENOTEMPTY);
+      }
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2/.", BASE "dir") == -1);
+        ASSERT (errno == EINVAL || errno == EBUSY);
+      }
+      ASSERT (rmdir (BASE "dir") == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir2/
+       */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
+        ASSERT (errno == EINVAL || errno == ENOENT);
+      }
+      ASSERT (mkdir (BASE "dir", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir2/
+       */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2", BASE "dir/.//") == -1);
+        ASSERT (errno == EINVAL || errno == EBUSY || errno == EISDIR
+                || errno == ENOTEMPTY);
+      }
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir2/.//", BASE "dir") == -1);
+        ASSERT (errno == EINVAL || errno == EBUSY);
+      }
+      ASSERT (rmdir (BASE "dir2") == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+       */
+    }
+    { /* Move into subdir.  */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
+        ASSERT (errno == EINVAL || errno == EACCES);
+      }
+      {
+        errno = 0;
+        ASSERT (stat (BASE "dir/sub", &st) == -1);
+        ASSERT (errno == ENOENT);
+      }
+      ASSERT (mkdir (BASE "dir/sub", 0700) == 0);
+      /* Files present here:
+           {BASE}file
+           {BASE}dir/
+           {BASE}dir/sub/
+       */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir", BASE "dir/sub") == -1);
+        ASSERT (errno == EINVAL);
+        ASSERT (stat (BASE "dir/sub", &st) == 0);
+      }
+      ASSERT (rmdir (BASE "dir/sub") == 0);
+    }
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
 
   /* Mixing file and directory.  */
-  errno = 0; /* File onto dir.  */
-  ASSERT (func (BASE "file", BASE "dir") == -1);
-  ASSERT (errno == EISDIR || errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "file", BASE "dir/") == -1);
-  ASSERT (errno == EISDIR || errno == ENOTDIR);
-  errno = 0; /* Dir onto file.  */
-  ASSERT (func (BASE "dir", BASE "file") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "dir/", BASE "file") == -1);
-  ASSERT (errno == ENOTDIR);
+
+  {
+    { /* File onto dir.  */
+      {
+        errno = 0;
+        ASSERT (func (BASE "file", BASE "dir") == -1);
+        ASSERT (errno == EISDIR || errno == ENOTDIR);
+      }
+      {
+        errno = 0;
+        ASSERT (func (BASE "file", BASE "dir/") == -1);
+        ASSERT (errno == EISDIR || errno == ENOTDIR);
+      }
+    }
+    { /* Dir onto file.  */
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir", BASE "file") == -1);
+        ASSERT (errno == ENOTDIR);
+      }
+      {
+        errno = 0;
+        ASSERT (func (BASE "dir/", BASE "file") == -1);
+        ASSERT (errno == ENOTDIR);
+      }
+    }
+  }
 
   /* Hard links.  */
-  ASSERT (func (BASE "file", BASE "file") == 0); /* File onto self.  */
-  memset (&st, 0, sizeof st);
-  ASSERT (stat (BASE "file", &st) == 0);
-  ASSERT (st.st_size == 2);
-  ASSERT (func (BASE "dir", BASE "dir") == 0); /* Empty dir onto self.  */
-  ASSERT (stat (BASE "dir", &st) == 0);
+
+  { /* File onto self.  */
+    ASSERT (func (BASE "file", BASE "file") == 0);
+    memset (&st, 0, sizeof st);
+    ASSERT (stat (BASE "file", &st) == 0);
+    ASSERT (st.st_size == 2);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
+  { /* Empty dir onto self.  */
+    ASSERT (func (BASE "dir", BASE "dir") == 0);
+    ASSERT (stat (BASE "dir", &st) == 0);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
   ASSERT (close (creat (BASE "dir/file", 0600)) == 0);
-  ASSERT (func (BASE "dir", BASE "dir") == 0); /* Full dir onto self.  */
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+       {BASE}dir/file
+   */
+  { /* Full dir onto self.  */
+    ASSERT (func (BASE "dir", BASE "dir") == 0);
+  }
   ASSERT (unlink (BASE "dir/file") == 0);
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
   {
     /*  Not all file systems support link.  Mingw doesn't have
         reliable st_nlink on hard links, but our implementation does
@@ -234,16 +509,33 @@
       }
     ASSERT (ret == 0);
   }
-  ASSERT (func (BASE "file", BASE "file2") == 0); /* File onto hard link.  */
-  memset (&st, 0, sizeof st);
-  ASSERT (stat (BASE "file", &st) == 0);
-  ASSERT (st.st_size == 2);
-  memset (&st, 0, sizeof st);
-  ASSERT (stat (BASE "file2", &st) == 0);
-  ASSERT (st.st_size == 2);
+  /* Files present here:
+       {BASE}file
+       {BASE}file2       (hard link to file)
+       {BASE}dir/
+   */
+  { /* File onto hard link.  */
+    ASSERT (func (BASE "file", BASE "file2") == 0);
+    memset (&st, 0, sizeof st);
+    ASSERT (stat (BASE "file", &st) == 0);
+    ASSERT (st.st_size == 2);
+    memset (&st, 0, sizeof st);
+    ASSERT (stat (BASE "file2", &st) == 0);
+    ASSERT (st.st_size == 2);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}file2
+       {BASE}dir/
+   */
   ASSERT (unlink (BASE "file2") == 0);
+  /* Files present here:
+       {BASE}file
+       {BASE}dir/
+   */
 
   /* Symlinks.  */
+
   if (symlink (BASE "file", BASE "link1"))
     {
       if (print)
@@ -253,118 +545,298 @@
       ASSERT (rmdir (BASE "dir") == 0);
       return 77;
     }
-  ASSERT (func (BASE "link1", BASE "link2") == 0); /* Simple rename.  */
-  ASSERT (stat (BASE "file", &st) == 0);
-  errno = 0;
-  ASSERT (lstat (BASE "link1", &st) == -1);
-  ASSERT (errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "link2", &st) == 0);
-  ASSERT (S_ISLNK (st.st_mode));
-  ASSERT (symlink (BASE "nowhere", BASE "link1") == 0); /* Overwrite.  */
-  ASSERT (func (BASE "link2", BASE "link1") == 0);
-  memset (&st, 0, sizeof st);
-  ASSERT (stat (BASE "link1", &st) == 0);
-  ASSERT (st.st_size == 2);
-  errno = 0;
-  ASSERT (lstat (BASE "link2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  ASSERT (symlink (BASE "link2", BASE "link2") == 0); /* Symlink loop.  */
-  ASSERT (func (BASE "link2", BASE "link2") == 0);
-  errno = 0;
-  ASSERT (func (BASE "link2/", BASE "link2") == -1);
-  ASSERT (errno == ELOOP || errno == ENOTDIR);
-  ASSERT (func (BASE "link2", BASE "link3") == 0);
-  ASSERT (unlink (BASE "link3") == 0);
-  ASSERT (symlink (BASE "nowhere", BASE "link2") == 0); /* Dangling link.  */
-  ASSERT (func (BASE "link2", BASE "link3") == 0);
-  errno = 0;
-  ASSERT (lstat (BASE "link2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "link3", &st) == 0);
-  errno = 0; /* Trailing slash on dangling.  */
-  ASSERT (func (BASE "link3/", BASE "link2") == -1);
-  ASSERT (errno == ENOENT || errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "link3", BASE "link2/") == -1);
-  ASSERT (errno == ENOENT || errno == ENOTDIR);
-  errno = 0;
-  ASSERT (lstat (BASE "link2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "link3", &st) == 0);
-  errno = 0; /* Trailing slash on link to file.  */
-  ASSERT (func (BASE "link1/", BASE "link2") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "link1", BASE "link3/") == -1);
-  ASSERT (errno == ENOENT || errno == ENOTDIR);
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
+  { /* Simple rename.  */
+    ASSERT (func (BASE "link1", BASE "link2") == 0);
+    ASSERT (stat (BASE "file", &st) == 0);
+    errno = 0;
+    ASSERT (lstat (BASE "link1", &st) == -1);
+    ASSERT (errno == ENOENT);
+    memset (&st, 0, sizeof st);
+    ASSERT (lstat (BASE "link2", &st) == 0);
+    ASSERT (S_ISLNK (st.st_mode));
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link2 -> {BASE}file
+       {BASE}dir/
+   */
+  { /* Overwrite.  */
+    ASSERT (symlink (BASE "nowhere", BASE "link1") == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}nowhere
+         {BASE}link2 -> {BASE}file
+         {BASE}dir/
+     */
+    {
+      ASSERT (func (BASE "link2", BASE "link1") == 0);
+      memset (&st, 0, sizeof st);
+      ASSERT (stat (BASE "link1", &st) == 0);
+      ASSERT (st.st_size == 2);
+      errno = 0;
+      ASSERT (lstat (BASE "link2", &st) == -1);
+      ASSERT (errno == ENOENT);
+    }
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
+  { /* Symlink loop.  */
+    ASSERT (symlink (BASE "link2", BASE "link2") == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}file
+         {BASE}link2 -> {BASE}link2
+         {BASE}dir/
+     */
+    {
+      ASSERT (func (BASE "link2", BASE "link2") == 0);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link2/", BASE "link2") == -1);
+      ASSERT (errno == ELOOP || errno == ENOTDIR);
+    }
+    ASSERT (func (BASE "link2", BASE "link3") == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}file
+         {BASE}link3 -> {BASE}link2
+         {BASE}dir/
+     */
+    ASSERT (unlink (BASE "link3") == 0);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
+  { /* Dangling link.  */
+    ASSERT (symlink (BASE "nowhere", BASE "link2") == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}file
+         {BASE}link2 -> {BASE}nowhere
+         {BASE}dir/
+     */
+    {
+      ASSERT (func (BASE "link2", BASE "link3") == 0);
+      errno = 0;
+      ASSERT (lstat (BASE "link2", &st) == -1);
+      ASSERT (errno == ENOENT);
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "link3", &st) == 0);
+    }
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}link3 -> {BASE}nowhere
+       {BASE}dir/
+   */
+  { /* Trailing slash on dangling.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "link3/", BASE "link2") == -1);
+      ASSERT (errno == ENOENT || errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link3", BASE "link2/") == -1);
+      ASSERT (errno == ENOENT || errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (lstat (BASE "link2", &st) == -1);
+      ASSERT (errno == ENOENT);
+    }
+    memset (&st, 0, sizeof st);
+    ASSERT (lstat (BASE "link3", &st) == 0);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}link3 -> {BASE}nowhere
+       {BASE}dir/
+   */
+  { /* Trailing slash on link to file.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1/", BASE "link2") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1", BASE "link3/") == -1);
+      ASSERT (errno == ENOENT || errno == ENOTDIR);
+    }
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}link3 -> {BASE}nowhere
+       {BASE}dir/
+   */
 
   /* Mixing symlink and file.  */
-  ASSERT (close (creat (BASE "file2", 0600)) == 0); /* File onto link.  */
-  ASSERT (func (BASE "file2", BASE "link3") == 0);
-  errno = 0;
-  ASSERT (stat (BASE "file2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "link3", &st) == 0);
-  ASSERT (S_ISREG (st.st_mode));
-  ASSERT (unlink (BASE "link3") == 0);
-  ASSERT (symlink (BASE "nowhere", BASE "link2") == 0); /* Link onto file.  */
-  ASSERT (close (creat (BASE "file2", 0600)) == 0);
-  ASSERT (func (BASE "link2", BASE "file2") == 0);
-  errno = 0;
-  ASSERT (lstat (BASE "link2", &st) == -1);
-  ASSERT (errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "file2", &st) == 0);
-  ASSERT (S_ISLNK (st.st_mode));
-  ASSERT (unlink (BASE "file2") == 0);
-  errno = 0; /* Trailing slash.  */
-  ASSERT (func (BASE "file/", BASE "link1") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "file", BASE "link1/") == -1);
-  ASSERT (errno == ENOTDIR || errno == ENOENT);
-  errno = 0;
-  ASSERT (func (BASE "link1/", BASE "file") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "link1", BASE "file/") == -1);
-  ASSERT (errno == ENOTDIR || errno == ENOENT);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "file", &st) == 0);
-  ASSERT (S_ISREG (st.st_mode));
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "link1", &st) == 0);
-  ASSERT (S_ISLNK (st.st_mode));
+
+  { /* File onto link.  */
+    ASSERT (close (creat (BASE "file2", 0600)) == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}file2
+         {BASE}link1 -> {BASE}file
+         {BASE}link3 -> {BASE}nowhere
+         {BASE}dir/
+     */
+    {
+      ASSERT (func (BASE "file2", BASE "link3") == 0);
+      errno = 0;
+      ASSERT (stat (BASE "file2", &st) == -1);
+      ASSERT (errno == ENOENT);
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "link3", &st) == 0);
+      ASSERT (S_ISREG (st.st_mode));
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}file
+         {BASE}link3
+         {BASE}dir/
+     */
+    ASSERT (unlink (BASE "link3") == 0);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
+  { /* Link onto file.  */
+    ASSERT (symlink (BASE "nowhere", BASE "link2") == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}file
+         {BASE}link2 -> {BASE}nowhere
+         {BASE}dir/
+     */
+    ASSERT (close (creat (BASE "file2", 0600)) == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}file2
+         {BASE}link1 -> {BASE}file
+         {BASE}link2 -> {BASE}nowhere
+         {BASE}dir/
+     */
+    {
+      ASSERT (func (BASE "link2", BASE "file2") == 0);
+      errno = 0;
+      ASSERT (lstat (BASE "link2", &st) == -1);
+      ASSERT (errno == ENOENT);
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "file2", &st) == 0);
+      ASSERT (S_ISLNK (st.st_mode));
+    }
+    /* Files present here:
+         {BASE}file
+         {BASE}file2 -> {BASE}nowhere
+         {BASE}link1 -> {BASE}file
+         {BASE}dir/
+     */
+    ASSERT (unlink (BASE "file2") == 0);
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
+  { /* Trailing slash.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "file/", BASE "link1") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "file", BASE "link1/") == -1);
+      ASSERT (errno == ENOTDIR || errno == ENOENT);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1/", BASE "file") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1", BASE "file/") == -1);
+      ASSERT (errno == ENOTDIR || errno == ENOENT);
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "file", &st) == 0);
+      ASSERT (S_ISREG (st.st_mode));
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "link1", &st) == 0);
+      ASSERT (S_ISLNK (st.st_mode));
+    }
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
 
   /* Mixing symlink and directory.  */
-  errno = 0; /* Directory onto link.  */
-  ASSERT (func (BASE "dir", BASE "link1") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "dir/", BASE "link1") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "dir", BASE "link1/") == -1);
-  ASSERT (errno == ENOTDIR);
-  errno = 0; /* Link onto directory.  */
-  ASSERT (func (BASE "link1", BASE "dir") == -1);
-  ASSERT (errno == EISDIR || errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "link1", BASE "dir/") == -1);
-  ASSERT (errno == EISDIR || errno == ENOTDIR);
-  errno = 0;
-  ASSERT (func (BASE "link1/", BASE "dir") == -1);
-  ASSERT (errno == ENOTDIR);
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "link1", &st) == 0);
-  ASSERT (S_ISLNK (st.st_mode));
-  memset (&st, 0, sizeof st);
-  ASSERT (lstat (BASE "dir", &st) == 0);
-  ASSERT (S_ISDIR (st.st_mode));
+
+  { /* Directory onto link.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "dir", BASE "link1") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "dir/", BASE "link1") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "dir", BASE "link1/") == -1);
+      ASSERT (errno == ENOTDIR);
+    }
+  }
+  { /* Link onto directory.  */
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1", BASE "dir") == -1);
+      ASSERT (errno == EISDIR || errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1", BASE "dir/") == -1);
+      ASSERT (errno == EISDIR || errno == ENOTDIR);
+    }
+    {
+      errno = 0;
+      ASSERT (func (BASE "link1/", BASE "dir") == -1);
+      ASSERT (errno == ENOTDIR);
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "link1", &st) == 0);
+      ASSERT (S_ISLNK (st.st_mode));
+      memset (&st, 0, sizeof st);
+      ASSERT (lstat (BASE "dir", &st) == 0);
+      ASSERT (S_ISDIR (st.st_mode));
+    }
+  }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}dir/
+   */
 
   /* POSIX requires rename("link-to-dir/","other") to rename "dir" and
      leave "link-to-dir" dangling, but GNU rejects this.  POSIX
@@ -376,6 +848,12 @@
   {
     int result;
     ASSERT (symlink (BASE "dir2", BASE "link2") == 0);
+    /* Files present here:
+         {BASE}file
+         {BASE}link1 -> {BASE}file
+         {BASE}link2 -> {BASE}dir2
+         {BASE}dir/
+     */
     errno = 0;
     result = func (BASE "dir", BASE "link2/");
     if (result == 0)
@@ -390,16 +868,24 @@
         memset (&st, 0, sizeof st);
         ASSERT (lstat (BASE "link2", &st) == 0);
         ASSERT (S_ISLNK (st.st_mode));
-        ASSERT (func (BASE "link2/", BASE "dir") == 0);
-        memset (&st, 0, sizeof st);
-        ASSERT (lstat (BASE "dir", &st) == 0);
-        ASSERT (S_ISDIR (st.st_mode));
-        errno = 0;
-        ASSERT (lstat (BASE "dir2", &st) == -1);
-        ASSERT (errno == ENOENT);
-        memset (&st, 0, sizeof st);
-        ASSERT (lstat (BASE "link2", &st) == 0);
-        ASSERT (S_ISLNK (st.st_mode));
+        /* Files present here:
+             {BASE}file
+             {BASE}link1 -> {BASE}file
+             {BASE}link2 -> {BASE}dir2
+             {BASE}dir2/
+         */
+        {
+          ASSERT (func (BASE "link2/", BASE "dir") == 0);
+          memset (&st, 0, sizeof st);
+          ASSERT (lstat (BASE "dir", &st) == 0);
+          ASSERT (S_ISDIR (st.st_mode));
+          errno = 0;
+          ASSERT (lstat (BASE "dir2", &st) == -1);
+          ASSERT (errno == ENOENT);
+          memset (&st, 0, sizeof st);
+          ASSERT (lstat (BASE "link2", &st) == 0);
+          ASSERT (S_ISLNK (st.st_mode));
+        }
       }
     else
       {
@@ -417,6 +903,12 @@
         ASSERT (S_ISLNK (st.st_mode));
         ASSERT (unlink (BASE "link2") == 0);
         ASSERT (symlink (BASE "dir", BASE "link2") == 0);
+        /* Files present here:
+             {BASE}file
+             {BASE}link1 -> {BASE}file
+             {BASE}link2 -> {BASE}dir
+             {BASE}dir/
+         */
         errno = 0; /* OpenBSD notices that link2/ and dir are the same.  */
         result = func (BASE "link2/", BASE "dir");
         if (result) /* GNU/Linux rejects attempts to use link2/.  */
@@ -435,6 +927,12 @@
         ASSERT (S_ISLNK (st.st_mode));
       }
   }
+  /* Files present here:
+       {BASE}file
+       {BASE}link1 -> {BASE}file
+       {BASE}link2 -> {BASE}dir or {BASE}dir2
+       {BASE}dir/
+   */
 
   /* Clean up.  */
   ASSERT (unlink (BASE "file") == 0);
--- a/tests/test-renameat.c
+++ b/tests/test-renameat.c
@@ -23,6 +23,7 @@
 #include "signature.h"
 SIGNATURE_CHECK (renameat, int, (int, char const *, int, char const *));
 
+#include <dirent.h>
 #include <fcntl.h>
 #include <errno.h>
 #include <stdbool.h>
--- a/tests/test-round1.c
+++ b/tests/test-round1.c
@@ -26,19 +26,18 @@
 SIGNATURE_CHECK (round, double, (double));
 
 #include "isnand-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zero = 0.0;
-
 int
 main ()
 {
   /* Zero.  */
   ASSERT (round (0.0) == 0.0);
-  ASSERT (round (-zero) == 0.0);
+  ASSERT (!signbit (round (0.0)));
+  ASSERT (round (minus_zerod) == 0.0);
+  ASSERT (!!signbit (minus_zerod) == !!signbit (round (minus_zerod)));
   /* Positive numbers.  */
   ASSERT (round (0.3) == 0.0);
   ASSERT (round (0.5) == 1.0);
--- a/tests/test-roundf1.c
+++ b/tests/test-roundf1.c
@@ -26,19 +26,18 @@
 SIGNATURE_CHECK (roundf, float, (float));
 
 #include "isnanf-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zero = 0.0f;
-
 int
 main ()
 {
   /* Zero.  */
   ASSERT (roundf (0.0f) == 0.0f);
-  ASSERT (roundf (-zero) == 0.0f);
+  ASSERT (!signbit (roundf (0.0f)));
+  ASSERT (roundf (minus_zerof) == 0.0f);
+  ASSERT (!!signbit (minus_zerof) == !!signbit (roundf (minus_zerof)));
   /* Positive numbers.  */
   ASSERT (roundf (0.3f) == 0.0f);
   ASSERT (roundf (0.5f) == 1.0f);
--- a/tests/test-roundl.c
+++ b/tests/test-roundl.c
@@ -29,25 +29,10 @@
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -57,7 +42,9 @@
 
   /* Zero.  */
   ASSERT (roundl (0.0L) == 0.0L);
-  ASSERT (roundl (minus_zero) == 0.0L);
+  ASSERT (!signbit (roundl (0.0L)));
+  ASSERT (roundl (minus_zerol) == 0.0L);
+  ASSERT (!!signbit (minus_zerol) == !!signbit (roundl (minus_zerol)));
   /* Positive numbers.  */
   ASSERT (roundl (0.3L) == 0.0L);
   ASSERT (roundl (0.5L) == 1.0L);
--- a/tests/test-select-stdin.c
+++ b/tests/test-select-stdin.c
@@ -24,6 +24,8 @@
 #include <sys/time.h>
 #include <unistd.h>
 
+#include "macros.h"
+
 int
 main (void)
 {
@@ -67,14 +69,15 @@
               exit (1);
             }
           /* Timeout */
-          printf ("."); fflush (stdout);
+          printf (".");
+          ASSERT (fflush (stdout) == 0);
         }
       else
         {
           char c;
 
           printf ("Input available! Trying to read 1 byte...\n");
-          read (0, &c, 1);
+          ASSERT (read (0, &c, 1) == 1);
         }
     }
 }
--- a/tests/test-select.c
+++ b/tests/test-select.c
@@ -48,6 +48,8 @@
 #include <sys/ioctl.h>
 #include <errno.h>
 
+#include "macros.h"
+
 enum { SEL_IN = 1, SEL_OUT = 2, SEL_EXC = 4 };
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
@@ -263,9 +265,9 @@
 
   addrlen = sizeof (ia);
   c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
-  close (s);
-  close (c1);
-  close (c2);
+  ASSERT (close (s) == 0);
+  ASSERT (close (c1) == 0);
+  ASSERT (close (c2) == 0);
 }
 
 
@@ -289,26 +291,26 @@
     {
       addrlen = sizeof (ia);
       c = accept (s, (struct sockaddr *) &ia, &addrlen);
-      close (s);
-      write (c, "foo", 3);
-      read (c, buf, 3);
+      ASSERT (close (s) == 0);
+      ASSERT (write (c, "foo", 3) == 3);
+      ASSERT (read (c, buf, 3) == 3);
       shutdown (c, SHUT_RD);
-      close (c);
+      ASSERT (close (c) == 0);
       exit (0);
     }
   else
     {
-      close (s);
+      ASSERT (close (s) == 0);
       c = connect_to_socket (true);
       if (do_select_nowait (c, SEL_OUT) != SEL_OUT)
         failed ("cannot write after blocking connect");
-      write (c, "foo", 3);
+      ASSERT (write (c, "foo", 3) == 3);
       wait (&pid);
       if (do_select_wait (c, SEL_IN) != SEL_IN)
         failed ("cannot read data left in the socket by closed process");
-      read (c, buf, 3);
-      write (c, "foo", 3);
-      close (c);
+      ASSERT (read (c, buf, 3) == 3);
+      ASSERT (write (c, "foo", 3) == 3);
+      ASSERT (close (c) == 0);
     }
 #endif
 }
@@ -325,13 +327,13 @@
   if (do_select_nowait (wd, SEL_IN | SEL_OUT | SEL_EXC) != SEL_OUT)
     failed ("expecting writability before writing");
 
-  write (wd, "foo", 3);
+  ASSERT (write (wd, "foo", 3) == 3);
   if (do_select_wait (rd, SEL_IN) != SEL_IN)
     failed ("expecting readability after writing");
   if (do_select_nowait (rd, SEL_IN) != SEL_IN)
     failed ("expecting readability after writing");
 
-  read (rd, buf, 3);
+  ASSERT (read (rd, buf, 3) == 3);
 }
 
 
@@ -347,12 +349,12 @@
   int c1 = connect_to_socket (false);
   int c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
 
-  close (s);
+  ASSERT (close (s) == 0);
 
   test_pair (c1, c2);
-  close (c1);
-  write (c2, "foo", 3);
-  close (c2);
+  ASSERT (close (c1) == 0);
+  ASSERT (write (c2, "foo", 3) == 3);
+  ASSERT (close (c2) == 0);
 }
 
 
@@ -363,10 +365,10 @@
 {
   int fd[2];
 
-  pipe (fd);
+  ASSERT (pipe (fd) == 0);
   test_pair (fd[0], fd[1]);
-  close (fd[0]);
-  close (fd[1]);
+  ASSERT (close (fd[0]) == 0);
+  ASSERT (close (fd[1]) == 0);
 }
 
 
--- a/tests/test-sigaction.c
+++ b/tests/test-sigaction.c
@@ -71,7 +71,7 @@
       /* This assertion fails on glibc-2.3.6 systems with LinuxThreads,
          when this program is linked with -lpthread, due to the sigaction()
          override in libpthread.so.  */
-#if !defined __GLIBC__
+#if !(defined __GLIBC__ || defined __UCLIBC__)
       ASSERT (sa.sa_handler == SIG_DFL);
 #endif
       break;
@@ -101,7 +101,7 @@
   sa.sa_handler = SIG_DFL;
   ASSERT (sigaction (SIGABRT, &sa, &old_sa) == 0);
   ASSERT ((old_sa.sa_flags & SA_SIGINFO) == 0);
-#if !defined __GLIBC__ /* see above */
+#if !(defined __GLIBC__ || defined __UCLIBC__) /* see above */
   ASSERT (old_sa.sa_handler == SIG_DFL);
 #endif
 
--- a/tests/test-signbit.c
+++ b/tests/test-signbit.c
@@ -28,34 +28,13 @@
 #include <float.h>
 #include <limits.h>
 
+#include "minus-zero.h"
 #include "macros.h"
 
 float zerof = 0.0f;
 double zerod = 0.0;
 long double zerol = 0.0L;
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zerof instead.  */
-
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zerod instead.  */
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 static void
 test_signbitf ()
 {
@@ -68,10 +47,10 @@
   ASSERT (signbit (-2.718e-30f));
   /* Zeros.  */
   ASSERT (!signbit (0.0f));
-  if (1.0f / -zerof < 0)
-    ASSERT (signbit (-zerof));
+  if (1.0f / minus_zerof < 0)
+    ASSERT (signbit (minus_zerof));
   else
-    ASSERT (!signbit (-zerof));
+    ASSERT (!signbit (minus_zerof));
   /* Infinite values.  */
   ASSERT (!signbit (1.0f / 0.0f));
   ASSERT (signbit (-1.0f / 0.0f));
@@ -113,10 +92,10 @@
   ASSERT (signbit (-2.718e-30));
   /* Zeros.  */
   ASSERT (!signbit (0.0));
-  if (1.0 / -zerod < 0)
-    ASSERT (signbit (-zerod));
+  if (1.0 / minus_zerod < 0)
+    ASSERT (signbit (minus_zerod));
   else
-    ASSERT (!signbit (-zerod));
+    ASSERT (!signbit (minus_zerod));
   /* Infinite values.  */
   ASSERT (!signbit (1.0 / 0.0));
   ASSERT (signbit (-1.0 / 0.0));
--- a/tests/test-snprintf-posix.h
+++ b/tests/test-snprintf-posix.h
@@ -16,6 +16,7 @@
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+#include "minus-zero.h"
 #include "nan.h"
 
 /* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0.  */
@@ -23,30 +24,10 @@
 have_minus_zero ()
 {
   static double plus_zero = 0.0;
-  double minus_zero = - plus_zero;
+  double minus_zero = minus_zerod;
   return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0;
 }
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zerod instead.  */
-double zerod = 0.0;
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 #ifdef WORDS_BIGENDIAN
@@ -192,7 +173,7 @@
   { /* Negative zero.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%a %d", -zerod, 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%a %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0x0p+0 33") == 0);
     ASSERT (retval == strlen (result));
@@ -901,7 +882,7 @@
   { /* Negative zero.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%f %d", -zerod, 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%f %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1415,7 +1396,7 @@
   { /* Negative zero.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%F %d", -zerod, 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%F %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1738,7 +1719,7 @@
   { /* Negative zero.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%e %d", -zerod, 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%e %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000e+00 33") == 0
               || strcmp (result, "-0.000000e+000 33") == 0);
@@ -2403,7 +2384,7 @@
   { /* Negative zero.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%g %d", -zerod, 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%g %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0 33") == 0);
     ASSERT (retval == strlen (result));
@@ -3051,6 +3032,19 @@
   }
 
   {
+    char result[5000];
+    int retval =
+      my_snprintf (result, sizeof (result), "%.4000f %d", 1.0, 99);
+    size_t i;
+    ASSERT (result[0] == '1');
+    ASSERT (result[1] == '.');
+    for (i = 0; i < 4000; i++)
+      ASSERT (result[2 + i] == '0');
+    ASSERT (strcmp (result + 2 + 4000, " 99") == 0);
+    ASSERT (retval == strlen (result));
+  }
+
+  {
     char input[5000];
     char result[5000];
     int retval;
new file mode 100644
--- /dev/null
+++ b/tests/test-spawn-pipe.c
@@ -0,0 +1,204 @@
+/* Test of create_pipe_bidi/wait_subprocess.
+   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include "spawn-pipe.h"
+#include "wait-process.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Depending on arguments, this test intentionally closes stderr or
+   starts life with stderr closed.  So, we arrange to have fd 10
+   (outside the range of interesting fd's during the test) set up to
+   duplicate the original stderr.  */
+
+#define BACKUP_STDERR_FILENO 10
+#define ASSERT_STREAM myerr
+#include "macros.h"
+
+static FILE *myerr;
+
+/* Code executed by the child process.  argv[1] = "child".  */
+static int
+child_main (int argc, char *argv[])
+{
+  char buffer[2] = { 's', 't' };
+  int fd;
+  int ret;
+
+  ASSERT (argc == 3);
+
+  /* Read one byte from fd 0, and write its value plus one to fd 1.
+     fd 2 should be closed iff the argument is 1.  Check that no other file
+     descriptors leaked.  */
+
+  ASSERT (read (STDIN_FILENO, buffer, 2) == 1);
+
+  buffer[0]++;
+  ASSERT (write (STDOUT_FILENO, buffer, 1) == 1);
+
+  errno = 0;
+  ret = dup2 (STDERR_FILENO, STDERR_FILENO);
+  switch (atoi (argv[2]))
+    {
+    case 0:
+      /* Expect fd 2 is open.  */
+      ASSERT (ret == STDERR_FILENO);
+      break;
+    case 1:
+      /* Expect fd 2 is closed.  */
+      ASSERT (ret == -1);
+      ASSERT (errno == EBADF);
+      break;
+    default:
+      ASSERT (false);
+    }
+
+  for (fd = 3; fd < 7; fd++)
+    {
+      errno = 0;
+      ASSERT (close (fd) == -1);
+      ASSERT (errno == EBADF);
+    }
+
+  return 0;
+}
+
+/* Create a bi-directional pipe to a test child, and validate that the
+   child program returns the expected output.  The child is the same
+   program as the parent ARGV0, but with different arguments.
+   STDERR_CLOSED is true if we have already closed fd 2.  */
+static void
+test_pipe (const char *argv0, bool stderr_closed)
+{
+  int fd[2];
+  char *argv[4];
+  pid_t pid;
+  char buffer[2] = { 'a', 't' };
+
+  /* Set up child.  */
+  argv[0] = (char *) argv0;
+  argv[1] = (char *) "child";
+  argv[2] = (char *) (stderr_closed ? "1" : "0");
+  argv[3] = NULL;
+  pid = create_pipe_bidi (argv0, argv0, argv, false, true, true, fd);
+  ASSERT (0 <= pid);
+  ASSERT (STDERR_FILENO < fd[0]);
+  ASSERT (STDERR_FILENO < fd[1]);
+
+  /* Push child's input.  */
+  ASSERT (write (fd[1], buffer, 1) == 1);
+  ASSERT (close (fd[1]) == 0);
+
+  /* Get child's output.  */
+  ASSERT (read (fd[0], buffer, 2) == 1);
+
+  /* Wait for child.  */
+  ASSERT (wait_subprocess (pid, argv0, true, false, true, true, NULL) == 0);
+  ASSERT (close (fd[0]) == 0);
+
+  /* Check the result.  */
+  ASSERT (buffer[0] == 'b');
+  ASSERT (buffer[1] == 't');
+}
+
+/* Code executed by the parent process.  */
+static int
+parent_main (int argc, char *argv[])
+{
+  int test;
+  int fd;
+
+  ASSERT (argc == 2);
+
+  /* Selectively close various standard fds, to verify the child process is
+     not impacted by this.  */
+  test = atoi (argv[1]);
+  switch (test)
+    {
+    case 0:
+      break;
+    case 1:
+      close (0);
+      break;
+    case 2:
+      close (1);
+      break;
+    case 3:
+      close (0);
+      close (1);
+      break;
+    case 4:
+      close (2);
+      break;
+    case 5:
+      close (0);
+      close (2);
+      break;
+    case 6:
+      close (1);
+      close (2);
+      break;
+    case 7:
+      close (0);
+      close (1);
+      close (2);
+      break;
+    default:
+      ASSERT (false);
+    }
+
+  /* Plug any file descriptor leaks inherited from outside world before
+     starting, so that child has a clean slate (at least for the fds that we
+     might be manipulating).  */
+  for (fd = 3; fd < 7; fd++)
+    close (fd);
+
+  test_pipe (argv[0], test >= 4);
+
+  return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+  if (argc < 2)
+    {
+      fprintf (stderr, "%s: need arguments\n", argv[0]);
+      return 2;
+    }
+  if (strcmp (argv[1], "child") == 0)
+    {
+      /* fd 2 might be closed, but fd BACKUP_STDERR_FILENO is the original
+         stderr.  */
+      myerr = fdopen (BACKUP_STDERR_FILENO, "w");
+      if (!myerr)
+        return 2;
+      return child_main (argc, argv);
+    }
+  /* We might close fd 2 later, so save it in fd 10.  */
+  if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO
+      || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL)
+    return 2;
+  return parent_main (argc, argv);
+}
new file mode 100755
--- /dev/null
+++ b/tests/test-spawn-pipe.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+st=0
+for i in 0 1 2 3 4 5 6 7 ; do
+  ./test-spawn-pipe${EXEEXT} $i \
+    || { echo test-spawn-pipe.sh: iteration $i failed >&2; st=1; }
+done
+exit $st
--- a/tests/test-sprintf-posix.h
+++ b/tests/test-sprintf-posix.h
@@ -16,6 +16,7 @@
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+#include "minus-zero.h"
 #include "nan.h"
 
 /* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0.  */
@@ -23,30 +24,10 @@
 have_minus_zero ()
 {
   static double plus_zero = 0.0;
-  double minus_zero = - plus_zero;
+  double minus_zero = minus_zerod;
   return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0;
 }
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zerod instead.  */
-double zerod = 0.0;
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 #ifdef WORDS_BIGENDIAN
@@ -178,7 +159,7 @@
   { /* Negative zero.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%a %d", -zerod, 33, 44, 55);
+      my_sprintf (result, "%a %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0x0p+0 33") == 0);
     ASSERT (retval == strlen (result));
@@ -887,7 +868,7 @@
   { /* Negative zero.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%f %d", -zerod, 33, 44, 55);
+      my_sprintf (result, "%f %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1401,7 +1382,7 @@
   { /* Negative zero.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%F %d", -zerod, 33, 44, 55);
+      my_sprintf (result, "%F %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1724,7 +1705,7 @@
   { /* Negative zero.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%e %d", -zerod, 33, 44, 55);
+      my_sprintf (result, "%e %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000e+00 33") == 0
               || strcmp (result, "-0.000000e+000 33") == 0);
@@ -2389,7 +2370,7 @@
   { /* Negative zero.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%g %d", -zerod, 33, 44, 55);
+      my_sprintf (result, "%g %d", minus_zerod, 33, 44, 55);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0 33") == 0);
     ASSERT (retval == strlen (result));
@@ -3037,6 +3018,19 @@
   }
 
   {
+    char result[5000];
+    int retval =
+      my_sprintf (result, "%.4000f %d", 1.0, 99);
+    size_t i;
+    ASSERT (result[0] == '1');
+    ASSERT (result[1] == '.');
+    for (i = 0; i < 4000; i++)
+      ASSERT (result[2 + i] == '0');
+    ASSERT (strcmp (result + 2 + 4000, " 99") == 0);
+    ASSERT (retval == strlen (result));
+  }
+
+  {
     char input[5000];
     char result[5000];
     int retval;
new file mode 100644
--- /dev/null
+++ b/tests/test-strerror_r.c
@@ -0,0 +1,94 @@
+/* Test of strerror_r() function.
+   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (strerror_r, int, (int, char *, size_t));
+
+#include <errno.h>
+
+#include "macros.h"
+
+int
+main (void)
+{
+  char buf[100];
+  int ret;
+
+  /* Test results with valid errnum and enough room.  */
+
+  buf[0] = '\0';
+  ASSERT (strerror_r (EACCES, buf, sizeof (buf)) == 0);
+  ASSERT (buf[0] != '\0');
+
+  buf[0] = '\0';
+  ASSERT (strerror_r (ETIMEDOUT, buf, sizeof (buf)) == 0);
+  ASSERT (buf[0] != '\0');
+
+  buf[0] = '\0';
+  ASSERT (strerror_r (EOVERFLOW, buf, sizeof (buf)) == 0);
+  ASSERT (buf[0] != '\0');
+
+  /* Test results with out-of-range errnum and enough room.  */
+
+  buf[0] = '^';
+  ret = strerror_r (0, buf, sizeof (buf));
+  ASSERT (ret == 0 || ret == EINVAL);
+  if (ret == 0)
+    ASSERT (buf[0] != '^');
+
+  buf[0] = '^';
+  ret = strerror_r (-3, buf, sizeof (buf));
+  ASSERT (ret == 0 || ret == EINVAL);
+  if (ret == 0)
+    ASSERT (buf[0] != '^');
+
+  /* Test results with a too small buffer.  */
+
+  ASSERT (strerror_r (EACCES, buf, sizeof (buf)) == 0);
+  {
+    size_t len = strlen (buf);
+    size_t i;
+
+    for (i = 0; i <= len; i++)
+      {
+        strcpy (buf, "BADFACE");
+        ret = strerror_r (EACCES, buf, i);
+        if (ret == 0)
+          {
+            /* Truncated result.  POSIX allows this, and it actually
+               happens on AIX 6.1.  */
+            ASSERT (strcmp (buf, "BADFACE") != 0);
+          }
+        else
+          {
+            /* Failure.  */
+            ASSERT (ret == ERANGE);
+            /* buf is clobbered nevertheless, on FreeBSD and MacOS X.  */
+          }
+      }
+
+    strcpy (buf, "BADFACE");
+    ret = strerror_r (EACCES, buf, len + 1);
+    ASSERT (ret == 0);
+  }
+
+  return 0;
+}
--- a/tests/test-striconveha.c
+++ b/tests/test-striconveha.c
@@ -401,7 +401,7 @@
     }
 # endif
 
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) && !defined __UCLIBC__) || _LIBICONV_VERSION >= 0x0105
   /* Test conversion from UTF-8 to ISO-8859-1 with transliteration.  */
   for (h = 0; h < SIZEOF (handlers); h++)
     {
@@ -577,7 +577,7 @@
     }
 # endif
 
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) && !defined __UCLIBC__) || _LIBICONV_VERSION >= 0x0105
   /* Test conversion from UTF-8 to ISO-8859-1 with transliteration.  */
   for (h = 0; h < SIZEOF (handlers); h++)
     {
--- a/tests/test-string-c++.cc
+++ b/tests/test-string-c++.cc
@@ -126,6 +126,10 @@
 SIGNATURE_CHECK (GNULIB_NAMESPACE::strerror, char *, (int));
 #endif
 
+#if GNULIB_TEST_STRERROR_R
+SIGNATURE_CHECK (GNULIB_NAMESPACE::strerror_r, int, (int, char *, size_t));
+#endif
+
 #if GNULIB_TEST_STRSIGNAL
 SIGNATURE_CHECK (GNULIB_NAMESPACE::strsignal, char *, (int));
 #endif
--- a/tests/test-strstr.c
+++ b/tests/test-strstr.c
@@ -93,18 +93,18 @@
 
   /* Check that a long periodic needle does not cause false positives.  */
   {
-    const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
-                          "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
-                          "_C3_A7_20_EF_BF_BD");
+    const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_A7_20_EF_BF_BD";
     const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
     const char *result = strstr (input, need);
     ASSERT (result == NULL);
   }
   {
-    const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
-                          "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
-                          "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20"
-                          "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD");
+    const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20"
+                         "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
     const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
     const char *result = strstr (input, need);
     ASSERT (result == input + 115);
--- a/tests/test-strtod.c
+++ b/tests/test-strtod.c
@@ -28,15 +28,12 @@
 #include <string.h>
 
 #include "isnand-nolibm.h"
+#include "minus-zero.h"
 #include "macros.h"
 
 /* Avoid requiring -lm just for fabs.  */
 #define FABS(d) ((d) < 0.0 ? -(d) : (d))
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zero = 0.0;
-
 int
 main (void)
 {
@@ -312,7 +309,7 @@
     errno = 0;
     result = strtod (input, &ptr);
     ASSERT (result == 0.0);
-    ASSERT (!!signbit (result) == !!signbit (-zero)); /* IRIX 6.5, OSF/1 4.0 */
+    ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* IRIX 6.5, OSF/1 4.0 */
     ASSERT (ptr == input + 2);
     ASSERT (errno == 0);
   }
@@ -407,7 +404,7 @@
     errno = 0;
     result = strtod (input, &ptr);
     ASSERT (result == 0.0);
-    ASSERT (!!signbit (result) == !!signbit (-zero)); /* MacOS X 10.3, FreeBSD 6.2, IRIX 6.5, OSF/1 4.0 */
+    ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* MacOS X 10.3, FreeBSD 6.2, IRIX 6.5, OSF/1 4.0 */
     ASSERT (ptr == input + 2);          /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, AIX 7.1 */
     ASSERT (errno == 0);
   }
@@ -553,7 +550,7 @@
        0 on negative underflow, even though quality of implementation
        demands preserving the sign.  Disable this test until fixed
        glibc is more prevalent.  */
-    ASSERT (!!signbit (result) == !!signbit (-zero)); /* glibc-2.3.6, mingw */
+    ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* glibc-2.3.6, mingw */
 #endif
     ASSERT (ptr == input + 10);
     ASSERT (errno == ERANGE);
@@ -972,7 +969,7 @@
         errno = 0;
         result = strtod (input, &ptr);
         ASSERT (result == 0.0);
-        ASSERT (!!signbit (result) == !!signbit (-zero)); /* IRIX 6.5, OSF/1 4.0 */
+        ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* IRIX 6.5, OSF/1 4.0 */
         ASSERT (ptr == input + m);
         ASSERT (errno == 0);
       }
--- a/tests/test-symlinkat.c
+++ b/tests/test-symlinkat.c
@@ -53,7 +53,6 @@
 int
 main (void)
 {
-  char buf[80];
   int result;
 
   /* Remove any leftovers from a previous partial run.  */
--- a/tests/test-trunc1.c
+++ b/tests/test-trunc1.c
@@ -24,19 +24,18 @@
 SIGNATURE_CHECK (trunc, double, (double));
 
 #include "isnand-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zero = 0.0;
-
 int
 main ()
 {
   /* Zero.  */
   ASSERT (trunc (0.0) == 0.0);
-  ASSERT (trunc (-zero) == 0.0);
+  ASSERT (!signbit (trunc (0.0)));
+  ASSERT (trunc (minus_zerod) == 0.0);
+  ASSERT (!!signbit (minus_zerod) == !!signbit (trunc (minus_zerod)));
   /* Positive numbers.  */
   ASSERT (trunc (0.3) == 0.0);
   ASSERT (trunc (0.7) == 0.0);
--- a/tests/test-truncf1.c
+++ b/tests/test-truncf1.c
@@ -24,19 +24,18 @@
 SIGNATURE_CHECK (truncf, float, (float));
 
 #include "isnanf-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zero = 0.0f;
-
 int
 main ()
 {
   /* Zero.  */
   ASSERT (truncf (0.0f) == 0.0f);
-  ASSERT (truncf (-zero) == 0.0f);
+  ASSERT (!signbit (truncf (0.0f)));
+  ASSERT (truncf (minus_zerof) == 0.0f);
+  ASSERT (!!signbit (minus_zerof) == !!signbit (truncf (minus_zerof)));
   /* Positive numbers.  */
   ASSERT (truncf (0.3f) == 0.0f);
   ASSERT (truncf (0.7f) == 0.0f);
--- a/tests/test-truncl.c
+++ b/tests/test-truncl.c
@@ -27,25 +27,10 @@
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -55,7 +40,9 @@
 
   /* Zero.  */
   ASSERT (truncl (0.0L) == 0.0L);
-  ASSERT (truncl (minus_zero) == 0.0L);
+  ASSERT (!signbit (truncl (0.0L)));
+  ASSERT (truncl (minus_zerol) == 0.0L);
+  ASSERT (!!signbit (minus_zerol) == !!signbit (truncl (minus_zerol)));
   /* Positive numbers.  */
   ASSERT (truncl (0.3L) == 0.0L);
   ASSERT (truncl (0.7L) == 0.0L);
--- a/tests/test-unistd-c++.cc
+++ b/tests/test-unistd-c++.cc
@@ -129,6 +129,10 @@
 SIGNATURE_CHECK (GNULIB_NAMESPACE::lseek, off_t, (int, off_t, int));
 #endif
 
+#if GNULIB_TEST_PIPE
+SIGNATURE_CHECK (GNULIB_NAMESPACE::pipe, int, (int[2]));
+#endif
+
 #if GNULIB_TEST_PIPE2
 SIGNATURE_CHECK (GNULIB_NAMESPACE::pipe2, int, (int[2], int));
 #endif
--- a/tests/test-update-copyright.sh
+++ b/tests/test-update-copyright.sh
@@ -25,6 +25,7 @@
 
 # Ensure the update-copyright program gets found.
 PATH=$abs_aux_dir:$PATH
+export PATH
 
 TMP_BASE=update-copyright.test
 trap 'rm -f $TMP_BASE*' 0 1 2 3 15
--- a/tests/test-vasnprintf-posix.c
+++ b/tests/test-vasnprintf-posix.c
@@ -29,6 +29,7 @@
 #include <string.h>
 
 #include "macros.h"
+#include "minus-zero.h"
 #include "nan.h"
 
 /* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0.  */
@@ -36,30 +37,10 @@
 have_minus_zero ()
 {
   static double plus_zero = 0.0;
-  double minus_zero = - plus_zero;
+  double minus_zero = minus_zerod;
   return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0;
 }
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zerod instead.  */
-double zerod = 0.0;
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 #ifdef WORDS_BIGENDIAN
@@ -225,7 +206,7 @@
   { /* Negative zero.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%a %d", -zerod, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%a %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0x0p+0 33") == 0);
@@ -1052,7 +1033,7 @@
   { /* Negative zero.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%f %d", -zerod, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%f %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
@@ -1662,7 +1643,7 @@
   { /* Negative zero.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%F %d", -zerod, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%F %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
@@ -2039,7 +2020,7 @@
   { /* Negative zero.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%e %d", -zerod, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%e %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000e+00 33") == 0
@@ -2806,7 +2787,7 @@
   { /* Negative zero.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%g %d", -zerod, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%g %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0 33") == 0);
@@ -3572,6 +3553,21 @@
   }
 
   {
+    size_t length;
+    char *result =
+      my_asnprintf (NULL, &length, "%.4000f %d", 1.0, 99);
+    size_t i;
+    ASSERT (result != NULL);
+    ASSERT (result[0] == '1');
+    ASSERT (result[1] == '.');
+    for (i = 0; i < 4000; i++)
+      ASSERT (result[2 + i] == '0');
+    ASSERT (strcmp (result + 2 + 4000, " 99") == 0);
+    ASSERT (length == strlen (result));
+    free (result);
+  }
+
+  {
     char input[5000];
     size_t length;
     char *result;
@@ -3677,6 +3673,19 @@
       free (result);
   }
 #endif
+
+#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
+  /* Test that the 'I' flag is supported.  */
+  {
+    size_t length;
+    char *result =
+      my_asnprintf (NULL, &length, "%Id %d", 1234567, 99);
+    ASSERT (result != NULL);
+    ASSERT (strcmp (result, "1234567 99") == 0);
+    ASSERT (length == strlen (result));
+    free (result);
+  }
+#endif
 }
 
 static char *
new file mode 100644
--- /dev/null
+++ b/tests/test-vasnprintf-posix3.c
@@ -0,0 +1,94 @@
+/* Test of POSIX compatible vasnprintf() and asnprintf() functions.
+   Copyright (C) 2010 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+
+#include <config.h>
+
+#include "vasnprintf.h"
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+static void
+test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
+{
+  /* glibc >= 2.2 supports the 'I' flag, and in glibc >= 2.2.3 the fa_IR
+     locale defines the 'outdigits' to be U+06F0..U+06F9.
+     So we test for glibc >= 2.3.  */
+#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__
+  /* Test that the 'I' flag is supported.  */
+  {
+    size_t length;
+    char *result =
+      my_asnprintf (NULL, &length, "%Id %d", 1234567, 99);
+    static const char expected[] = /* "۱۲۳۴۵۶۷ 99" */
+      "\xDB\xB1\xDB\xB2\xDB\xB3\xDB\xB4\xDB\xB5\xDB\xB6\xDB\xB7 99";
+    ASSERT (result != NULL);
+    ASSERT (strcmp (result, expected) == 0);
+    ASSERT (length == strlen (result));
+    free (result);
+  }
+#endif
+}
+
+static char *
+my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+{
+  va_list args;
+  char *ret;
+
+  va_start (args, format);
+  ret = vasnprintf (resultbuf, lengthp, format, args);
+  va_end (args);
+  return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+  test_function (my_asnprintf);
+}
+
+static void
+test_asnprintf ()
+{
+  test_function (asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__
+  /* Select a locale with Arabic 'outdigits'.  */
+  if (setlocale (LC_ALL, "fa_IR.UTF-8") == NULL)
+    {
+      fprintf (stderr, "Skipping test: no Iranian locale is installed\n");
+      return 77;
+    }
+
+  test_vasnprintf ();
+  test_asnprintf ();
+
+  return 0;
+#else
+  fprintf (stderr, "Skipping test: not a glibc >= 2.3 system\n");
+  return 77;
+#endif
+}
--- a/tests/test-vasprintf-posix.c
+++ b/tests/test-vasprintf-posix.c
@@ -28,6 +28,7 @@
 #include <string.h>
 
 #include "macros.h"
+#include "minus-zero.h"
 #include "nan.h"
 
 /* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0.  */
@@ -35,30 +36,10 @@
 have_minus_zero ()
 {
   static double plus_zero = 0.0;
-  double minus_zero = - plus_zero;
+  double minus_zero = minus_zerod;
   return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0;
 }
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zerod instead.  */
-double zerod = 0.0;
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 #ifdef WORDS_BIGENDIAN
@@ -205,7 +186,7 @@
   { /* Negative zero.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%a %d", -zerod, 33, 44, 55);
+      my_asprintf (&result, "%a %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0x0p+0 33") == 0);
@@ -1032,7 +1013,7 @@
   { /* Negative zero.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%f %d", -zerod, 33, 44, 55);
+      my_asprintf (&result, "%f %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
@@ -1642,7 +1623,7 @@
   { /* Negative zero.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%F %d", -zerod, 33, 44, 55);
+      my_asprintf (&result, "%F %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000 33") == 0);
@@ -2019,7 +2000,7 @@
   { /* Negative zero.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%e %d", -zerod, 33, 44, 55);
+      my_asprintf (&result, "%e %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0.000000e+00 33") == 0
@@ -2786,7 +2767,7 @@
   { /* Negative zero.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%g %d", -zerod, 33, 44, 55);
+      my_asprintf (&result, "%g %d", minus_zerod, 33, 44, 55);
     ASSERT (result != NULL);
     if (have_minus_zero ())
       ASSERT (strcmp (result, "-0 33") == 0);
@@ -3552,6 +3533,21 @@
   }
 
   {
+    char *result;
+    int retval =
+      my_asprintf (&result, "%.4000f %d", 1.0, 99);
+    size_t i;
+    ASSERT (result != NULL);
+    ASSERT (result[0] == '1');
+    ASSERT (result[1] == '.');
+    for (i = 0; i < 4000; i++)
+      ASSERT (result[2 + i] == '0');
+    ASSERT (strcmp (result + 2 + 4000, " 99") == 0);
+    ASSERT (retval == strlen (result));
+    free (result);
+  }
+
+  {
     char input[5000];
     char *result;
     int retval;
--- a/tests/unistr/test-u8-mbsnlen.c
+++ b/tests/unistr/test-u8-mbsnlen.c
@@ -57,5 +57,64 @@
       }
   }
 
+  /* Test behaviour required by ISO 10646-1, sections R.7 and 2.3c, namely,
+     that a "malformed sequence" is interpreted in the same way as
+     "a character that is outside the adopted subset".
+     Reference:
+       Markus Kuhn: UTF-8 decoder capability and stress test
+       <http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>
+       <http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html>
+   */
+  /* 3.1. Test that each unexpected continuation byte is signalled as a
+     malformed sequence of its own.  */
+  {
+    static const uint8_t input[] = { '"', 0x80, 0xBF, 0x80, 0xBF, '"' };
+    ASSERT (u8_mbsnlen (input, 6) == 6);
+  }
+  /* 3.2. Lonely start characters.  */
+  {
+    ucs4_t c;
+    uint8_t input[2];
+
+    for (c = 0xC0; c <= 0xFF; c++)
+      {
+        input[0] = c;
+        input[1] = ' ';
+
+        ASSERT (u8_mbsnlen (input, 2) == 2);
+      }
+  }
+  /* 3.3. Sequences with last continuation byte missing.  */
+  /* 3.3.1. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xC0, '"' };
+    ASSERT (u8_mbsnlen (input, 3) == 3);
+  }
+  /* 3.3.6. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xDF, '"' };
+    ASSERT (u8_mbsnlen (input, 3) == 3);
+  }
+  /* 3.3.2. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+    ASSERT (u8_mbsnlen (input, 4) == 3);
+  }
+  /* 3.3.7. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xEF, 0xBF, '"' };
+    ASSERT (u8_mbsnlen (input, 4) == 3);
+  }
+  /* 3.3.3. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+    ASSERT (u8_mbsnlen (input, 5) == 3);
+  }
+  /* 3.3.8. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+    ASSERT (u8_mbsnlen (input, 5) == 3);
+  }
+
   return 0;
 }
--- a/tests/unistr/test-u8-mbtouc.c
+++ b/tests/unistr/test-u8-mbtouc.c
@@ -24,10 +24,169 @@
 
 #include "test-u8-mbtouc.h"
 
+static void
+test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
+{
+  ucs4_t uc;
+  int ret;
+
+  /* Test behaviour required by ISO 10646-1, sections R.7 and 2.3c, namely,
+     that a "malformed sequence" is interpreted in the same way as
+     "a character that is outside the adopted subset".
+     Reference:
+       Markus Kuhn: UTF-8 decoder capability and stress test
+       <http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>
+       <http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html>
+   */
+  /* 3.1. Test that each unexpected continuation byte is signalled as a
+     malformed sequence of its own.  */
+  {
+    static const uint8_t input[] = { '"', 0x80, 0xBF, 0x80, 0xBF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 6);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 5);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 2, 4);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 3, 3);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 4, 2);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 5, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.2. Lonely start characters.  */
+  {
+    ucs4_t c;
+    uint8_t input[2];
+
+    for (c = 0xC0; c <= 0xFF; c++)
+      {
+        input[0] = c;
+        input[1] = ' ';
+
+        uc = 0xBADFACE;
+        ret = my_u8_mbtouc (&uc, input, 2);
+        ASSERT (ret == 1);
+        ASSERT (uc == 0xFFFD);
+      }
+  }
+  /* 3.3. Sequences with last continuation byte missing.  */
+  /* 3.3.1. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xC0, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 3);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 2);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 2, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.6. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xDF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 3);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 2);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 2, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.2. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 4);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 3);
+    ASSERT (ret == 2);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 3, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.7. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xEF, 0xBF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 4);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 3);
+    ASSERT (ret == 2);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 3, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.3. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 5);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 4);
+    ASSERT (ret == 3);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 4, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.8. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 5);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 4);
+    ASSERT (ret == 3);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 4, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+}
+
 int
 main ()
 {
   test_function (u8_mbtouc);
+  test_safe_function (u8_mbtouc);
 
   return 0;
 }
--- a/tests/unistr/test-u8-mbtouc.h
+++ b/tests/unistr/test-u8-mbtouc.h
@@ -166,14 +166,14 @@
     static const uint8_t input[] = { 0xF3, 0xD0, 0xBF };
     uc = 0xBADFACE;
     ret = my_u8_mbtouc (&uc, input, 3);
-    ASSERT (ret == 1 || ret == 3);
+    ASSERT (ret == 1);
     ASSERT (uc == 0xFFFD);
   }
   {
     static const uint8_t input[] = { 0xF3, 0x8F, 0xD0 };
     uc = 0xBADFACE;
     ret = my_u8_mbtouc (&uc, input, 3);
-    ASSERT (ret == 1 || ret == 3);
+    ASSERT (ret == 2);
     ASSERT (uc == 0xFFFD);
   }
 }
--- a/top/GNUmakefile
+++ b/top/GNUmakefile
@@ -57,7 +57,7 @@
   $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
 ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
   _is-dist-target ?= $(filter-out %clean, \
-    $(filter maintainer-% dist% alpha beta major,$(MAKECMDGOALS)))
+    $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS)))
   _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS)))
   ifneq (,$(_is-dist-target)$(_is-install-target))
     _curr-ver := $(shell cd $(srcdir)				\
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -590,10 +590,19 @@
 sc_program_name:
 	@require='set_program_name *\(m?argv\[0\]\);'			\
 	in_vc_files='\.c$$'						\
-	containing='^main *('						\
+	containing='\<main *('						\
 	halt='the above files do not call set_program_name'		\
 	  $(_sc_search_regexp)
 
+# Ensure that each .c file containing a "main" function also
+# calls bindtextdomain.
+sc_bindtextdomain:
+	@require='bindtextdomain *\('					\
+	in_vc_files='\.c$$'						\
+	containing='\<main *('						\
+	halt='the above files do not call bindtextdomain'		\
+	  $(_sc_search_regexp)
+
 # Require that the final line of each test-lib.sh-using test be this one:
 # Exit $fail
 # Note: this test requires GNU grep's --label= option.
@@ -732,7 +741,8 @@
 	halt='GFDL vN, N!=3'						\
 	  $(_sc_search_regexp)
 
-# Don't use Texinfo @acronym{} as it is not a good idea.
+# Don't use Texinfo's @acronym{}.
+# http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html
 texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$
 sc_texinfo_acronym:
 	@prohibit='@acronym\{'						\
@@ -808,6 +818,13 @@
 	halt='$(_ptm1); $(_ptm2)'					\
 	  $(_sc_search_regexp)
 
+# Avoid a test bashism.
+sc_prohibit_test_double_equal:
+	@prohibit='(\<test| \[+) .+ == '				\
+	containing='#! */bin/[a-z]*sh'					\
+	halt='use "test x = x", not "test x =''= x"'			\
+	  $(_sc_search_regexp)
+
 # Each program that uses proper_name_utf8 must link with one of the
 # ICONV libraries.  Otherwise, some ICONV library must appear in LDADD.
 # The perl -0777 invocation below extracts the possibly-multi-line
@@ -1081,7 +1098,6 @@
 	@echo =====================================
 	@echo =====================================
 
-noteworthy = * Noteworthy changes in release ?.? (????-??-??) [?]
 define emit-commit-log
   printf '%s\n' 'post-release administrivia' '' \
     '* NEWS: Add header line for next release.' \
@@ -1119,6 +1135,7 @@
 # Override this in cfg.mk if you follow different procedures.
 release-prep-hook ?= release-prep
 
+gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?]
 .PHONY: release-prep
 release-prep:
 	case $$RELEASE_TYPE in alpha|beta|stable) ;; \
@@ -1130,7 +1147,7 @@
 	fi
 	echo $(VERSION) > $(prev_version_file)
 	$(MAKE) update-NEWS-hash
-	perl -pi -e '$$. == 3 and print "$(noteworthy)\n\n\n"' NEWS
+	perl -pi -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' NEWS
 	$(emit-commit-log) > .ci-msg
 	$(VC) commit -F .ci-msg -a
 	rm .ci-msg