about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2012-03-08 01:57:38 -0500
committerUlrich Drepper <drepper@gmail.com>2012-03-08 01:57:38 -0500
commit67c6a3d919b492c68664c4b95e84efd2174309e7 (patch)
treeacf9d76b0bd219e0b4c941254478dd15efbcf78f
parenteac8c307c32367c7712dd73a28677024686b6ab7 (diff)
parent6291c00386e7bddf7e2db428174b2aca26ef717b (diff)
downloadglibc-67c6a3d919b492c68664c4b95e84efd2174309e7.tar.gz
glibc-67c6a3d919b492c68664c4b95e84efd2174309e7.tar.xz
glibc-67c6a3d919b492c68664c4b95e84efd2174309e7.zip
Merge branch 'master' of ssh://sourceware.org/git/glibc
-rw-r--r--ChangeLog70
-rw-r--r--INSTALL13
-rw-r--r--NEWS10
-rw-r--r--aclocal.m414
-rwxr-xr-xconfigure41
-rw-r--r--configure.in25
-rw-r--r--manual/charset.texi8
-rw-r--r--manual/conf.texi4
-rw-r--r--manual/errno.texi35
-rw-r--r--manual/filesys.texi29
-rw-r--r--manual/install.texi13
-rw-r--r--manual/intro.texi2
-rw-r--r--manual/io.texi18
-rw-r--r--manual/job.texi2
-rw-r--r--manual/llio.texi42
-rw-r--r--manual/macros.texi30
-rw-r--r--manual/maint.texi2
-rw-r--r--manual/memory.texi6
-rw-r--r--manual/pattern.texi2
-rw-r--r--manual/pipe.texi4
-rw-r--r--manual/process.texi8
-rw-r--r--manual/resource.texi3
-rw-r--r--manual/setjmp.texi2
-rw-r--r--manual/signal.texi20
-rw-r--r--manual/startup.texi4
-rw-r--r--manual/stdio.texi18
-rw-r--r--manual/terminal.texi51
-rw-r--r--manual/time.texi12
-rw-r--r--manual/users.texi26
-rw-r--r--math/libm-test.inc104
-rw-r--r--math/s_cacosh.c12
-rw-r--r--math/s_cacoshf.c14
-rw-r--r--math/s_cacoshl.c14
-rw-r--r--math/s_casinh.c7
-rw-r--r--math/s_casinhf.c7
-rw-r--r--math/s_casinhl.c7
-rw-r--r--nptl/ChangeLog9
-rw-r--r--nptl/sysdeps/pthread/configure40
-rw-r--r--nptl/sysdeps/pthread/configure.in8
-rw-r--r--sysdeps/gnu/errlist.c20
-rw-r--r--sysdeps/i386/configure480
-rw-r--r--sysdeps/i386/configure.in5
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps286
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps298
44 files changed, 1091 insertions, 734 deletions
diff --git a/ChangeLog b/ChangeLog
index 4f00552a4d..43f23dd316 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+2012-03-08  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #6911]
+	* manual/macros.texi (gnusystems): New macro.
+	(nongnusystems): Likewise.
+	(gnulinuxhurdsystems): Likewise.
+	(gnuhurdsystems): Likewise..
+	(gnulinuxsystems): Likewise.
+	* manual/charset.texi: Use new macros or @theglibc{} to refer to
+	variants of the GNU system, not "GNU system".
+	* manual/conf.texi: Likewise.
+	* manual/errno.texi: Likewise.  Update example of errno macro
+	expansion.
+	* manual/filesys.texi: Likewise.
+	(getumask): Document as specific to GNU/Hurd.
+	* manual/install.texi: Likewise.  Reword some references to
+	GNU/Linux.
+	* manual/intro.texi: Likewise.
+	* manual/io.texi: Likewise.
+	(File Name Portability): Detail which constraints are inapplicable
+	to all GNU systems and which are only inapplicable to GNU/Hurd.
+	* manual/job.texi: Likewise.
+	* manual/llio.texi: Likewise.
+	(O_NOCTTY): Document as present on GNU/Linux.
+	* manual/maint.texi: Likewise.
+	* manual/memory.texi: Likewise.
+	* manual/pattern.texi: Likewise.
+	* manual/pipe.texi: Likewise.
+	* manual/process.texi: Likewise.
+	* manual/resource.texi: Likewise.
+	(RUSAGE_CHILDREN): Remove statement about specifying a particular
+	child on GNU/Hurd.
+	* manual/setjmp.texi: Likewise.
+	* manual/signal.texi: Likewise.
+	* manual/startup.texi: Likewise.
+	* manual/stdio.texi: Likewise.
+	* manual/terminal.texi: Likewise.
+	(ONLCR): Document as POSIX.
+	(OXTABS): Document availability on GNU/Linux as XTABS.
+	(ONOEOT): Document availability separately from other bits.
+	(VLNEXT, VDISCARD, VSTATUS): Document availability individually.
+	* manual/time.texi: Likewise.
+	* manual/users.texi: Likewise.
+	* INSTALL: Regenerated.
+	* sysdeps/gnu/errlist.c: Regenerated.
+
+	* aclocal.m4 (LIBC_TRY_LINK_STATIC): New macro.
+	* configure.in (libc_cv_preinit_array): Use LIBC_TRY_LINK_STATIC.
+	(libc_cv_ctors_header): Likewise.  Use asm ("") instead of calling
+	puts.
+	* configure: Regenerated.
+
+2012-03-07  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/i386/configure.in (cpuid.h): Use AC_CHECK_HEADER with no
+	default includes instead of AC_HEADER_CHECK.
+	* sysdeps/i386/configure: Regenerated.
+
+	[BZ #10716]
+	* math/s_cacosh.c (__cacosh): Convert negative log results to 0.
+	* math/s_cacoshf.c (__cacoshf): Likewise.
+	* math/s_cacoshl.c (__cacoshl): Likewise.
+	* math/s_casinh.c (__casinh): Set signs of result from argument.
+	* math/s_casinhf.c (__casinhf): Likewise.
+	* math/s_casinhl.c (__casinhl): Likewise.
+	* math/libm-test.inc (cacos_test, cacosh_test, casin_test)
+	(casinh_test): Add more tests.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
 2012-03-07  Ulrich Drepper  <drepper@gmail.com>
 
 	* po/zh_TW.po: Update from translation team.
diff --git a/INSTALL b/INSTALL
index 737a44d462..e0433d459b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -339,7 +339,7 @@ patches, although we try to avoid this.
 Specific advice for GNU/Linux systems
 =====================================
 
-If you are installing the GNU C Library on a GNU/Linux system, you need
+If you are installing the GNU C Library on GNU/Linux systems, you need
 to have the header files from a 2.6.19.1 or newer kernel around for
 reference.  These headers must be installed using `make
 headers_install'; the headers present in the kernel source directory
@@ -370,11 +370,12 @@ required if not compiling programs using those interfaces.  You do not
 need to copy kernel headers if you did not specify an alternate kernel
 header source using `--with-headers'.
 
-   GNU/Linux expects some components of the GNU C Library installation
-to be in `/lib' and some in `/usr/lib'.  This is handled automatically
-if you configure the GNU C Library with `--prefix=/usr'.  If you set
-some other prefix or allow it to default to `/usr/local', then all the
-components are installed there.
+   The Filesystem Hierarchy Standard for GNU/Linux systems expects some
+components of the GNU C Library installation to be in `/lib' and some
+in `/usr/lib'.  This is handled automatically if you configure the GNU
+C Library with `--prefix=/usr'.  If you set some other prefix or allow
+it to default to `/usr/local', then all the components are installed
+there.
 
    You cannot use `nscd' with 2.0 kernels, due to bugs in the
 kernel-side thread support.  `nscd' happens to hit these bugs
diff --git a/NEWS b/NEWS
index 61cc1dca1e..5021304441 100644
--- a/NEWS
+++ b/NEWS
@@ -10,11 +10,11 @@ Version 2.16
 * The following bugs are resolved with this release:
 
   174, 350, 411, 2541, 2547, 2548, 3335, 3976, 3992, 4026, 4108, 4596, 4822,
-  5077, 5461, 5805, 5993, 6884, 6907, 9739, 9902, 10110, 10135, 10140,
-  10210, 11174, 11322, 11365, 11494, 12047, 13058, 13525, 13526, 13527,
-  13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552, 13553,
-  13555, 13559, 13583, 13618, 13637, 13656, 13695, 13704, 13706, 13726,
-  13738, 13786, 13792
+  5077, 5461, 5805, 5993, 6884, 6907, 6911, 9739, 9902, 10110, 10135, 10140,
+  10210, 10545, 10716, 11174, 11322, 11365, 11494, 12047, 13058, 13525,
+  13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551,
+  13552, 13553, 13555, 13559, 13583, 13618, 13637, 13656, 13695, 13704,
+  13706, 13726, 13738, 13786, 13792
 
 * ISO C11 support:
 
diff --git a/aclocal.m4 b/aclocal.m4
index dafa97244d..02ff9bc359 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -113,3 +113,17 @@ AC_CACHE_CHECK(whether $LD is GNU ld, libc_cv_prog_ld_gnu,
 [LIBC_PROG_FOO_GNU($LD, libc_cv_prog_ld_gnu=yes, libc_cv_prog_ld_gnu=no)])
 gnu_ld=$libc_cv_prog_ld_gnu
 ])
+
+dnl Run a static link test with -nostdlib -nostartfiles.
+dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false])
+AC_DEFUN([LIBC_TRY_LINK_STATIC],
+[cat > conftest.c <<EOF
+int _start (void) { return 0; }
+int __start (void) { return 0; }
+$1
+EOF
+AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
+		       conftest.c -static -nostartfiles -nostdlib
+		       1>&AS_MESSAGE_LOG_FD])],
+      [$2], [$3])
+rm -f conftest*])
diff --git a/configure b/configure
index 7c5acce6bc..f415389a34 100755
--- a/configure
+++ b/configure
@@ -5999,17 +5999,19 @@ else
   cat > conftest.c <<EOF
 int _start (void) { return 0; }
 int __start (void) { return 0; }
+
 int foo (void) { return 1; }
 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
+
 EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
-		   -static -nostartfiles -nostdlib 1>&5'
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
+		       conftest.c -static -nostartfiles -nostdlib
+		       1>&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
+  test $ac_status = 0; }; }; then :
   if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
     libc_cv_initfini_array=yes
   else
@@ -6019,6 +6021,7 @@ else
   libc_cv_initfini_array=no
 fi
 rm -f conftest*
+
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5
 $as_echo "$libc_cv_initfini_array" >&6; }
@@ -6032,21 +6035,22 @@ if ${libc_cv_ctors_header+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     libc_cv_ctors_header=yes
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
+  cat > conftest.c <<EOF
+int _start (void) { return 0; }
+int __start (void) { return 0; }
 
-__attribute__ ((constructor)) void ctor (void) { puts("ctor"); }
-__attribute__ ((destructor))  void dtor (void) { puts("dtor"); }
+__attribute__ ((constructor)) void ctor (void) { asm (""); }
+__attribute__ ((destructor))  void dtor (void) { asm (""); }
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
+		       conftest.c -static -nostartfiles -nostdlib
+		       1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
         if $READELF -WS conftest$ac_exeext | $AWK '
 	{ gsub(/\[ */, "[") }
 	$2 == ".ctors" || $2 == ".dtors" {
@@ -6068,8 +6072,7 @@ else
         as_fn_error $? "missing __attribute__ ((constructor)) support??" "$LINENO" 5
 
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f conftest*
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ctors_header" >&5
diff --git a/configure.in b/configure.in
index 7ebeba4df8..ee9e3d8eb4 100644
--- a/configure.in
+++ b/configure.in
@@ -1349,24 +1349,17 @@ fi
 
 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
 	       libc_cv_initfini_array, [dnl
-cat > conftest.c <<EOF
-int _start (void) { return 0; }
-int __start (void) { return 0; }
+LIBC_TRY_LINK_STATIC([
 int foo (void) { return 1; }
 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
-EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
-		   -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
-then
-  if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
+],
+  [if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
     libc_cv_initfini_array=yes
   else
     libc_cv_initfini_array=no
-  fi
-else
-  libc_cv_initfini_array=no
-fi
-rm -f conftest*])
+  fi],
+  [libc_cv_initfini_array=no])
+])
 if test $libc_cv_initfini_array != yes; then
   AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
 fi
@@ -1374,9 +1367,9 @@ fi
 AC_CACHE_CHECK(whether to use .ctors/.dtors header and trailer,
 	       libc_cv_ctors_header, [dnl
   libc_cv_ctors_header=yes
-  AC_TRY_LINK([], [
-__attribute__ ((constructor)) void ctor (void) { puts("ctor"); }
-__attribute__ ((destructor))  void dtor (void) { puts("dtor"); }
+  LIBC_TRY_LINK_STATIC([
+__attribute__ ((constructor)) void ctor (void) { asm (""); }
+__attribute__ ((destructor))  void dtor (void) { asm (""); }
 ],
 	      [dnl
       AS_IF([$READELF -WS conftest$ac_exeext | $AWK '
diff --git a/manual/charset.texi b/manual/charset.texi
index 610db90858..97fb2bed2d 100644
--- a/manual/charset.texi
+++ b/manual/charset.texi
@@ -112,7 +112,7 @@ this type is capable of storing all elements of the basic character set.
 Therefore it would be legitimate to define @code{wchar_t} as @code{char},
 which might make sense for embedded systems.
 
-But for GNU systems @code{wchar_t} is always 32 bits wide and, therefore,
+But in @theglibc{} @code{wchar_t} is always 32 bits wide and, therefore,
 capable of representing all UCS-4 values and, therefore, covering all of
 @w{ISO 10646}.  Some Unix systems define @code{wchar_t} as a 16-bit type
 and thereby follow Unicode very strictly.  This definition is perfectly
@@ -393,7 +393,7 @@ We already said above that the currently selected locale for the
 by the functions we are about to describe.  Each locale uses its own
 character set (given as an argument to @code{localedef}) and this is the
 one assumed as the external multibyte encoding.  The wide character
-set is always UCS-4, at least on GNU systems.
+set is always UCS-4 in @theglibc{}.
 
 A characteristic of each multibyte character set is the maximum number
 of bytes that can be necessary to represent one character.  This
@@ -537,8 +537,8 @@ Code using @code{mbsinit} often looks similar to this:
 
 The code to emit the escape sequence to get back to the initial state is
 interesting.  The @code{wcsrtombs} function can be used to determine the
-necessary output code (@pxref{Converting Strings}).  Please note that on
-GNU systems it is not necessary to perform this extra action for the
+necessary output code (@pxref{Converting Strings}).  Please note that with
+@theglibc{} it is not necessary to perform this extra action for the
 conversion from multibyte text to wide character text since the wide
 character encoding is not stateful.  But there is nothing mentioned in
 any standard that prohibits making @code{wchar_t} using a stateful
diff --git a/manual/conf.texi b/manual/conf.texi
index bc5b9282a7..2cd41f6c73 100644
--- a/manual/conf.texi
+++ b/manual/conf.texi
@@ -1185,7 +1185,7 @@ represents the maximum length of a file name string.  It is defined in
 
 Unlike @code{PATH_MAX}, this macro is defined even if there is no actual
 limit imposed.  In such a case, its value is typically a very large
-number.  @strong{This is always the case on the GNU system.}
+number.  @strong{This is always the case on @gnuhurdsystems{}.}
 
 @strong{Usage Note:} Don't use @code{FILENAME_MAX} as the size of an
 array in which to store a file name!  You can't possibly make an array
@@ -1252,7 +1252,7 @@ particular file, call @code{pathconf} or @code{fpathconf}.
 Here are the names for the POSIX minimum upper bounds for some of the
 above parameters.  The significance of these values is that you can
 safely push to these limits without checking whether the particular
-system you are using can go that far.  In most cases GNU systems do not
+system you are using can go that far.  In most cases @gnusystems{} do not
 have these strict limitations.  The actual limit should be requested if
 necessary.
 
diff --git a/manual/errno.texi b/manual/errno.texi
index f155db749f..fa88b1e8a1 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -66,8 +66,9 @@ function returns an error.
 @strong{Portability Note:} @w{ISO C} specifies @code{errno} as a
 ``modifiable lvalue'' rather than as a variable, permitting it to be
 implemented as a macro.  For example, its expansion might involve a
-function call, like @w{@code{*_errno ()}}.  In fact, that is what it is
-on the GNU system itself.  @Theglibc{}, on non-GNU systems, does
+function call, like @w{@code{*__errno_location ()}}.  In fact, that is
+what it is
+on @gnulinuxhurdsystems{}.  @Theglibc{}, on each system, does
 whatever is right for the particular system.
 
 There are a few library functions, like @code{sqrt} and @code{atan},
@@ -96,10 +97,10 @@ codes of their own for other situations.  The only values that are
 guaranteed to be meaningful for a particular library function are the
 ones that this manual lists for that function.
 
-On non-GNU systems, almost any system call can return @code{EFAULT} if
+Except on @gnuhurdsystems{}, almost any system call can return @code{EFAULT} if
 it is given an invalid pointer as an argument.  Since this could only
 happen as a result of a bug in your program, and since it will not
-happen on the GNU system, we have saved space by not mentioning
+happen on @gnuhurdsystems{}, we have saved space by not mentioning
 @code{EFAULT} in the descriptions of individual functions.
 
 In some Unix systems, many system calls can also return @code{EFAULT} if
@@ -114,7 +115,7 @@ allocated memory instead of stack memory on that system.
 @pindex errno.h
 The error code macros are defined in the header file @file{errno.h}.
 All of them expand into integer constant values.  Some of these error
-codes can't occur on the GNU system, but they can occur using @theglibc{}
+codes can't occur on @gnusystems{}, but they can occur using @theglibc{}
 on other systems.
 
 @comment errno.h
@@ -178,8 +179,8 @@ computer.
 @comment errno 7 @c DO NOT REMOVE
 Argument list too long; used when the arguments passed to a new program
 being executed with one of the @code{exec} functions (@pxref{Executing a
-File}) occupy too much memory space.  This condition never arises in the
-GNU system.
+File}) occupy too much memory space.  This condition never arises on
+@gnuhurdsystems{}.
 @end deftypevr
 
 @comment errno.h
@@ -238,7 +239,7 @@ Permission denied; the file permissions do not allow the attempted operation.
 @deftypevr Macro int EFAULT
 @comment errno 14 @c DO NOT REMOVE
 Bad address; an invalid pointer was detected.
-In the GNU system, this error never happens; you get a signal instead.
+On @gnuhurdsystems{}, this error never happens; you get a signal instead.
 @end deftypevr
 
 @comment errno.h
@@ -326,7 +327,7 @@ want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
 @comment errno 23 @c DO NOT REMOVE
 There are too many distinct file openings in the entire system.  Note
 that any number of linked channels count as just one file opening; see
-@ref{Linked Channels}.  This error never occurs in the GNU system.
+@ref{Linked Channels}.  This error never occurs on @gnuhurdsystems{}.
 @end deftypevr
 
 @comment errno.h
@@ -345,7 +346,7 @@ An attempt to execute a file that is currently open for writing, or
 write to a file that is currently being executed.  Often using a
 debugger to run a program is considered having it open for writing and
 will cause this error.  (The name stands for ``text file busy''.)  This
-is not an error in the GNU system; the text is copied as necessary.
+is not an error on @gnuhurdsystems{}; the text is copied as necessary.
 @end deftypevr
 
 @comment errno.h
@@ -533,7 +534,7 @@ The socket type is not supported.
 @comment errno 45 @c DO NOT REMOVE
 The operation you requested is not supported.  Some socket functions
 don't make sense for all types of sockets, and others may not be
-implemented for all communications protocols.  In the GNU system, this
+implemented for all communications protocols.  On @gnuhurdsystems{}, this
 error can happen for many calls when the object does not support the
 particular operation; it is a generic indication that the server knows
 nothing to do for that call.
@@ -754,7 +755,7 @@ the NFS file system on the local host.
 An attempt was made to NFS-mount a remote file system with a file name that
 already specifies an NFS-mounted file.
 (This is an error on some operating systems, but we expect it to work
-properly on the GNU system, making this error code impossible.)
+properly on @gnuhurdsystems{}, making this error code impossible.)
 @end deftypevr
 
 @comment errno.h
@@ -797,7 +798,7 @@ properly on the GNU system, making this error code impossible.)
 @deftypevr Macro int ENOLCK
 @comment errno 77 @c DO NOT REMOVE
 No locks available.  This is used by the file locking facilities; see
-@ref{File Locks}.  This error is never generated by the GNU system, but
+@ref{File Locks}.  This error is never generated by @gnuhurdsystems{}, but
 it can result from an operation to an NFS server running another
 operating system.
 @end deftypevr
@@ -868,7 +869,7 @@ or an incomplete sequence of bytes or the given wide character is invalid.
 @comment GNU: Inappropriate operation for background process
 @deftypevr Macro int EBACKGROUND
 @comment errno 100 @c DO NOT REMOVE
-In the GNU system, servers supporting the @code{term} protocol return
+On @gnuhurdsystems{}, servers supporting the @code{term} protocol return
 this error for certain operations when the caller is not in the
 foreground process group of the terminal.  Users do not usually see this
 error because functions such as @code{read} and @code{write} translate
@@ -880,7 +881,7 @@ for information on process groups and these signals.
 @comment GNU: Translator died
 @deftypevr Macro int EDIED
 @comment errno 101 @c DO NOT REMOVE
-In the GNU system, opening a file returns this error when the file is
+On @gnuhurdsystems{}, opening a file returns this error when the file is
 translated by a program and the translator program dies while starting
 up, before it has connected to the file.
 @end deftypevr
@@ -1346,8 +1347,8 @@ The function @code{perror} is declared in @file{stdio.h}.
 @end deftypefun
 
 @code{strerror} and @code{perror} produce the exact same message for any
-given error code; the precise text varies from system to system.  On the
-GNU system, the messages are fairly short; there are no multi-line
+given error code; the precise text varies from system to system.  With
+@theglibc{}, the messages are fairly short; there are no multi-line
 messages or embedded newlines.  Each error message begins with a capital
 letter and does not include any terminating punctuation.
 
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 872e3710a0..dc570df181 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -121,8 +121,8 @@ the buffer.  @Theglibc{} provides @code{getwd} only
 for backwards compatibility with BSD.
 
 The @var{buffer} argument should be a pointer to an array at least
-@code{PATH_MAX} bytes long (@pxref{Limits for Files}).  In the GNU
-system there is no limit to the size of a file name, so this is not
+@code{PATH_MAX} bytes long (@pxref{Limits for Files}).  On @gnuhurdsystems{}
+there is no limit to the size of a file name, so this is not
 necessarily enough space to contain the directory name.  That is why
 this function is deprecated.
 @end deftypefn
@@ -242,7 +242,7 @@ field you can count on in all POSIX systems.
 
 @item ino_t d_fileno
 This is the file serial number.  For BSD compatibility, you can also
-refer to this member as @code{d_ino}.  In the GNU system and most POSIX
+refer to this member as @code{d_ino}.  On @gnulinuxhurdsystems{} and most POSIX
 systems, for most files this the same as the @code{st_ino} member that
 @code{stat} will return for the file.  @xref{File Attributes}.
 
@@ -354,7 +354,7 @@ The process has too many files open.
 @item ENFILE
 The entire system, or perhaps the file system which contains the
 directory, cannot support any additional open files at the moment.
-(This problem cannot happen on the GNU system.)
+(This problem cannot happen on @gnuhurdsystems{}.)
 
 @item ENOMEM
 Not enough memory available.
@@ -1075,7 +1075,8 @@ The directory or file system that would contain the new link is full
 and cannot be extended.
 
 @item EPERM
-In the GNU system and some others, you cannot make links to directories.
+On @gnulinuxhurdsystems{} and some others, you cannot make links to
+directories.
 Many systems allow only privileged users to do so.  This error
 is used to report the problem.
 
@@ -1099,7 +1100,7 @@ A hardware error occurred while trying to read or write the to filesystem.
 @cindex symbolic link
 @cindex link, symbolic
 
-The GNU system supports @dfn{soft links} or @dfn{symbolic links}.  This
+@gnusystems{} support @dfn{soft links} or @dfn{symbolic links}.  This
 is a kind of ``file'' that is essentially a pointer to another file
 name.  Unlike hard links, symbolic links can be made to directories or
 across file systems with no restrictions.  You can also make a symbolic
@@ -1352,8 +1353,8 @@ The file name to be deleted doesn't exist.
 @item EPERM
 On some systems @code{unlink} cannot be used to delete the name of a
 directory, or at least can only be used this way by a privileged user.
-To avoid such problems, use @code{rmdir} to delete directories.  (In the
-GNU system @code{unlink} can never delete the name of a directory.)
+To avoid such problems, use @code{rmdir} to delete directories.  (On
+@gnulinuxhurdsystems{} @code{unlink} can never delete the name of a directory.)
 
 @item EROFS
 The directory containing the file name to be deleted is on a read-only
@@ -1381,7 +1382,7 @@ The directory to be deleted is not empty.
 @end table
 
 These two error codes are synonymous; some systems use one, and some use
-the other.  The GNU system always uses @code{ENOTEMPTY}.
+the other.  @gnulinuxhurdsystems{} always use @code{ENOTEMPTY}.
 
 The prototype for this function is declared in the header file
 @file{unistd.h}.
@@ -1458,7 +1459,7 @@ that are the current working directories of processes.
 
 @item ENOTEMPTY
 @itemx EEXIST
-The directory @var{newname} isn't empty.  The GNU system always returns
+The directory @var{newname} isn't empty.  @gnulinuxhurdsystems{} always return
 @code{ENOTEMPTY} for this, but some other systems return @code{EEXIST}.
 
 @item EINVAL
@@ -2480,16 +2481,16 @@ read_umask (void)
 @end smallexample
 
 @noindent
-However, it is better to use @code{getumask} if you just want to read
-the mask value, because it is reentrant (at least if you use the GNU
-operating system).
+However, on @gnuhurdsystems{} it is better to use @code{getumask} if
+you just want to read the mask value, because it is reentrant.
 @end deftypefun
 
 @comment sys/stat.h
 @comment GNU
 @deftypefun mode_t getumask (void)
 Return the current value of the file creation mask for the current
-process.  This function is a GNU extension.
+process.  This function is a GNU extension and is only available on
+@gnuhurdsystems{}.
 @end deftypefun
 
 @comment sys/stat.h
diff --git a/manual/install.texi b/manual/install.texi
index 03cab71845..00db2b8478 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -58,8 +58,8 @@ directory, especially some files in the manual subdirectory.
 mandatory is @samp{--prefix}.  This option tells @code{configure}
 where you want @theglibc{} installed.  This defaults to @file{/usr/local},
 but the normal setting to install as the standard system library is
-@samp{--prefix=/usr} for GNU/Linux systems and @samp{--prefix=} (an
-empty prefix) for GNU/Hurd systems.
+@samp{--prefix=/usr} for @gnulinuxsystems{} and @samp{--prefix=} (an
+empty prefix) for @gnuhurdsystems{}.
 
 It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
 the environment when running @code{configure}.  @var{CC} selects the C
@@ -104,7 +104,7 @@ relative to the build directory (that is, the current working directory).
 For example, @samp{--enable-add-ons=nptl,../glibc-libidn-@var{version}}.
 
 @item --enable-kernel=@var{version}
-This option is currently only useful on GNU/Linux systems.  The
+This option is currently only useful on @gnulinuxsystems{}.  The
 @var{version} parameter should have the form X.Y.Z and describes the
 smallest version of the Linux kernel the generated library is expected
 to support.  The higher the @var{version} number is, the less
@@ -386,10 +386,10 @@ You may also need these packages if you upgrade your source tree using
 patches, although we try to avoid this.
 
 @node Linux
-@appendixsec Specific advice for GNU/Linux systems
+@appendixsec Specific advice for @gnulinuxsystems{}
 @cindex kernel header files
 
-If you are installing @theglibc{} on a GNU/Linux system, you need to have
+If you are installing @theglibc{} on @gnulinuxsystems{}, you need to have
 the header files from a 2.6.19.1 or newer kernel around for reference.
 These headers must be installed using @samp{make headers_install}; the
 headers present in the kernel source directory are not suitable for
@@ -421,7 +421,8 @@ are not required if not compiling programs using those interfaces.
 You do not need to copy kernel headers if you did not specify an
 alternate kernel header source using @samp{--with-headers}.
 
-GNU/Linux expects some components of the @glibcadj{} installation to be in
+The Filesystem Hierarchy Standard for @gnulinuxsystems{} expects some
+components of the @glibcadj{} installation to be in
 @file{/lib} and some in @file{/usr/lib}.  This is handled automatically
 if you configure @theglibc{} with @samp{--prefix=/usr}.  If you set some other
 prefix or allow it to default to @file{/usr/local}, then all the
diff --git a/manual/intro.texi b/manual/intro.texi
index bfe30d76e0..4a709edf72 100644
--- a/manual/intro.texi
+++ b/manual/intro.texi
@@ -12,7 +12,7 @@ programs.
 @Theglibc{}, described in this document, defines all of the
 library functions that are specified by the @w{ISO C} standard, as well as
 additional features specific to POSIX and other derivatives of the Unix
-operating system, and extensions specific to the GNU system.
+operating system, and extensions specific to @gnusystems{}.
 
 The purpose of this manual is to tell you how to use the facilities
 of @theglibc{}.  We have mentioned which features belong to which
diff --git a/manual/io.texi b/manual/io.texi
index 0286fa4bf9..bd82f76ee8 100644
--- a/manual/io.texi
+++ b/manual/io.texi
@@ -121,7 +121,7 @@ and formatted output functions (@pxref{Formatted Output}).
 If you are concerned about portability of your programs to systems other
 than GNU, you should also be aware that file descriptors are not as
 portable as streams.  You can expect any system running @w{ISO C} to
-support streams, but non-GNU systems may not support file descriptors at
+support streams, but @nongnusystems{} may not support file descriptors at
 all, or may only implement a subset of the GNU functions that operate on
 file descriptors.  Most of the file descriptor functions in @theglibc{}
 are included in the POSIX.1 standard, however.
@@ -131,7 +131,7 @@ are included in the POSIX.1 standard, however.
 
 One of the attributes of an open file is its @dfn{file position} that
 keeps track of where in the file the next character is to be read or
-written.  In the GNU system, and all POSIX.1 systems, the file position
+written.  On @gnusystems{}, and all POSIX.1 systems, the file position
 is simply an integer representing the number of bytes from the beginning
 of the file.
 
@@ -304,7 +304,7 @@ but the empty string is not a meaningful file name.  If you want to
 refer to the current working directory, use a file name of @file{.} or
 @file{./}.
 
-Unlike some other operating systems, the GNU system doesn't have any
+Unlike some other operating systems, @gnusystems{} don't have any
 built-in support for file types (or extensions) or file versions as part
 of its file name syntax.  Many programs and utilities use conventions
 for file names---for example, files containing C source code usually
@@ -332,7 +332,7 @@ This error is used when either the total length of a file name is
 greater than @code{PATH_MAX}, or when an individual file name component
 has a length greater than @code{NAME_MAX}.  @xref{Limits for Files}.
 
-In the GNU system, there is no imposed limit on overall file name
+On @gnuhurdsystems{}, there is no imposed limit on overall file name
 length, but some file systems may place limits on the length of a
 component.
 
@@ -357,7 +357,7 @@ way to detect loops.  @xref{Symbolic Links}.
 @subsection Portability of File Names
 
 The rules for the syntax of file names discussed in @ref{File Names},
-are the rules normally used by the GNU system and by other POSIX
+are the rules normally used by @gnusystems{} and by other POSIX
 systems.  However, other operating systems may use other conventions.
 
 There are two reasons why it can be important for you to be aware of
@@ -389,7 +389,7 @@ some operating systems and not by others.
 The POSIX.1 standard allows implementations to put additional
 restrictions on file name syntax, concerning what characters are
 permitted in file names and on the length of file name and file name
-component strings.  However, in the GNU system, you do not need to worry
-about these restrictions; any character except the null character is
-permitted in a file name string, and there are no limits on the length
-of file name strings.
+component strings.  However, on @gnusystems{}, any character except
+the null character is permitted in a file name string, and
+on @gnuhurdsystems{} there are no limits on the length of file name
+strings.
diff --git a/manual/job.texi b/manual/job.texi
index cd16c6c74e..4efeed3451 100644
--- a/manual/job.texi
+++ b/manual/job.texi
@@ -106,7 +106,7 @@ controlling terminal,
 @section Job Control is Optional
 @cindex job control is optional
 
-Not all operating systems support job control.  The GNU system does
+Not all operating systems support job control.  @gnusystems{} do
 support job control, but if you are using @theglibc{} on some other
 system, that system may not support job control itself.
 
diff --git a/manual/llio.texi b/manual/llio.texi
index f3ed542724..d75fe71502 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -120,7 +120,7 @@ The maximum number of file descriptors is controlled by the
 @item ENFILE
 The entire system, or perhaps the file system which contains the
 directory, cannot support any additional open files at the moment.
-(This problem cannot happen on the GNU system.)
+(This problem cannot happen on @gnuhurdsystems{}.)
 
 @item ENOENT
 The named file does not exist, and @code{O_CREAT} is not specified.
@@ -341,8 +341,8 @@ file can also fail with @code{EAGAIN} if the kernel cannot find enough
 physical memory to lock down the user's pages.  This is limited to
 devices that transfer with direct memory access into the user's memory,
 which means it does not include terminals, since they always use
-separate buffers inside the kernel.  This problem never happens in the
-GNU system.
+separate buffers inside the kernel.  This problem never happens on
+@gnuhurdsystems{}.
 
 Any condition that could result in @code{EAGAIN} can instead result in a
 successful @code{read} which returns fewer bytes than requested.
@@ -492,8 +492,8 @@ file can also fail with @code{EAGAIN} if the kernel cannot find enough
 physical memory to lock down the user's pages.  This is limited to
 devices that transfer with direct memory access into the user's memory,
 which means it does not include terminals, since they always use
-separate buffers inside the kernel.  This problem does not arise in the
-GNU system.
+separate buffers inside the kernel.  This problem does not arise on
+@gnuhurdsystems{}.
 
 @item EBADF
 The @var{filedes} argument is not a valid file descriptor,
@@ -687,7 +687,7 @@ file offset is not valid.  A file offset is invalid.
 @item ESPIPE
 The @var{filedes} corresponds to an object that cannot be positioned,
 such as a pipe, FIFO or terminal device.  (POSIX.1 specifies this error
-only for pipes and FIFOs, but in the GNU system, you always get
+only for pipes and FIFOs, but on @gnusystems{}, you always get
 @code{ESPIPE} if the object is not seekable.)
 @end table
 
@@ -830,7 +830,7 @@ The @code{fdopen} function returns a new stream for the file descriptor
 
 The @var{opentype} argument is interpreted in the same way as for the
 @code{fopen} function (@pxref{Opening Streams}), except that
-the @samp{b} option is not permitted; this is because GNU makes no
+the @samp{b} option is not permitted; this is because @gnusystems{} make no
 distinction between text and binary files.  Also, @code{"w"} and
 @code{"w+"} do not cause truncation of the file; these have an effect only
 when opening a file, and in this case the file has already been opened.
@@ -2154,7 +2154,7 @@ the moment.  The error status for each element of @var{list} must be
 checked to determine which request failed.
 
 Another reason could be that the system wide limit of AIO requests is
-exceeded.  This cannot be the case for the implementation on GNU systems
+exceeded.  This cannot be the case for the implementation on @gnusystems{}
 since no arbitrary limits exist.
 @item EINVAL
 The @var{mode} parameter is invalid or @var{nent} is larger than
@@ -2895,7 +2895,7 @@ The symbols in this section are defined in the header file
 @subsection File Access Modes
 
 The file access modes allow a file descriptor to be used for reading,
-writing, or both.  (In the GNU system, they can also allow none of these,
+writing, or both.  (On @gnuhurdsystems{}, they can also allow none of these,
 and allow execution of the file as a program.)  The access modes are chosen
 when the file is opened, and never change.
 
@@ -2917,13 +2917,13 @@ Open the file for write access.
 Open the file for both reading and writing.
 @end deftypevr
 
-In the GNU system (and not in other systems), @code{O_RDONLY} and
+On @gnuhurdsystems{} (and not on other systems), @code{O_RDONLY} and
 @code{O_WRONLY} are independent bits that can be bitwise-ORed together,
 and it is valid for either bit to be set or clear.  This means that
 @code{O_RDWR} is the same as @code{O_RDONLY|O_WRONLY}.  A file access
 mode of zero is permissible; it allows no operations that do input or
 output to the file, but does allow other operations such as
-@code{fchmod}.  On the GNU system, since ``read-only'' or ``write-only''
+@code{fchmod}.  On @gnuhurdsystems{}, since ``read-only'' or ``write-only''
 is a misnomer, @file{fcntl.h} defines additional names for the file
 access modes.  These names are preferred when writing GNU-specific code.
 But most programs will want to be portable to other POSIX.1 systems and
@@ -2948,8 +2948,9 @@ Open the file for executing.  Only defined on GNU.
 @end deftypevr
 
 To determine the file access mode with @code{fcntl}, you must extract
-the access mode bits from the retrieved file status flags.  In the GNU
-system, you can just test the @code{O_READ} and @code{O_WRITE} bits in
+the access mode bits from the retrieved file status flags.  On
+@gnuhurdsystems{},
+you can just test the @code{O_READ} and @code{O_WRITE} bits in
 the flags word.  But in other POSIX.1 systems, reading and writing
 access modes are not stored as distinct bit flags.  The portable way to
 extract the file access mode bits is with @code{O_ACCMODE}.
@@ -2960,7 +2961,7 @@ extract the file access mode bits is with @code{O_ACCMODE}.
 This macro stands for a mask that can be bitwise-ANDed with the file
 status flag value to produce a value representing the file access mode.
 The mode will be @code{O_RDONLY}, @code{O_WRONLY}, or @code{O_RDWR}.
-(In the GNU system it could also be zero, and it never includes the
+(On @gnuhurdsystems{} it could also be zero, and it never includes the
 @code{O_EXEC} bit.)
 @end deftypevr
 
@@ -3033,15 +3034,16 @@ If the named file is a terminal device, don't make it the controlling
 terminal for the process.  @xref{Job Control}, for information about
 what it means to be the controlling terminal.
 
-In the GNU system and 4.4 BSD, opening a file never makes it the
-controlling terminal and @code{O_NOCTTY} is zero.  However, other
-systems may use a nonzero value for @code{O_NOCTTY} and set the
+On @gnuhurdsystems{} and 4.4 BSD, opening a file never makes it the
+controlling terminal and @code{O_NOCTTY} is zero.  However, @gnulinuxsystems{}
+and some other systems use a nonzero value for @code{O_NOCTTY} and set the
 controlling terminal when you open a file that is a terminal device; so
 to be portable, use @code{O_NOCTTY} when it is important to avoid this.
 @cindex controlling terminal, setting
 @end deftypevr
 
-The following three file name translation flags exist only in the GNU system.
+The following three file name translation flags exist only on
+@gnuhurdsystems{}.
 
 @comment fcntl.h
 @comment GNU
@@ -3417,7 +3419,7 @@ function:
 The lock cannot be set because it is blocked by an existing lock on the
 file.  Some systems use @code{EAGAIN} in this case, and other systems
 use @code{EACCES}; your program should treat them alike, after
-@code{F_SETLK}.  (The GNU system always uses @code{EAGAIN}.)
+@code{F_SETLK}.  (@gnulinuxhurdsystems{} always use @code{EAGAIN}.)
 
 @item EBADF
 Either: the @var{filedes} argument is invalid; you requested a read lock
@@ -3594,7 +3596,7 @@ There is no process or process group corresponding to @var{pid}.
 @cindex generic i/o control operations
 @cindex IOCTLs
 
-The GNU system can handle most input/output operations on many different
+@gnusystems{} can handle most input/output operations on many different
 devices and objects in terms of a few file primitives - @code{read},
 @code{write} and @code{lseek}.  However, most devices also have a few
 peculiar operations which do not fit into this model. Such as:
diff --git a/manual/macros.texi b/manual/macros.texi
index c9b73d3c56..daaf1c0aad 100644
--- a/manual/macros.texi
+++ b/manual/macros.texi
@@ -17,4 +17,34 @@ the GNU C Library
 GNU C Library
 @end macro
 
+@c Description applying to all GNU systems; that is, used in
+@c describing a property of a system such that no system without that
+@c property would be considered a variant of the GNU system.
+@macro gnusystems
+GNU systems
+@end macro
+
+@c Systems that are not GNU systems.
+@macro nongnusystems
+non-GNU systems
+@end macro
+
+@c Description applying to GNU/Linux and GNU/Hurd systems, but not
+@c necessarily to other variants of the GNU system.
+@macro gnulinuxhurdsystems
+GNU/Linux and GNU/Hurd systems
+@end macro
+
+@c Descrption applying to GNU/Hurd systems; that is, systems using the
+@c GNU Hurd with the GNU C Library.
+@macro gnuhurdsystems
+GNU/Hurd systems
+@end macro
+
+@c Descrption applying to GNU/Linux systems; that is, systems using
+@c the Linux kernel with the GNU C Library.
+@macro gnulinuxsystems
+GNU/Linux systems
+@end macro
+
 @end ifclear
diff --git a/manual/maint.texi b/manual/maint.texi
index 0c2ed5923e..e1fdbdbd2c 100644
--- a/manual/maint.texi
+++ b/manual/maint.texi
@@ -399,7 +399,7 @@ This directory is for @code{socket} and related functions on Unix systems.
 
 @item mach
 This is the directory for things based on the Mach microkernel from CMU
-(including the GNU operating system).  Other basic operating systems
+(including @gnuhurdsystems{}).  Other basic operating systems
 (VMS, for example) would have their own directories at the top level of
 the @file{sysdeps} hierarchy, parallel to @file{unix} and @file{mach}.
 @end table
diff --git a/manual/memory.texi b/manual/memory.texi
index ce32af066b..35fed23c7f 100644
--- a/manual/memory.texi
+++ b/manual/memory.texi
@@ -379,7 +379,7 @@ savestring (const char *ptr, size_t len)
 @end smallexample
 
 The block that @code{malloc} gives you is guaranteed to be aligned so
-that it can hold any type of data.  In the GNU system, the address is
+that it can hold any type of data.  On @gnusystems{}, the address is
 always a multiple of eight on most systems, and a multiple of 16 on
 64-bit systems.  Only rarely is any higher boundary (such as a page
 boundary) necessary; for those cases, use @code{memalign},
@@ -614,7 +614,7 @@ after calling @code{free} wastes memory.  The size threshold for
 @cindex alignment (with @code{malloc})
 @pindex stdlib.h
 The address of a block returned by @code{malloc} or @code{realloc} in
-the GNU system is always a multiple of eight (or sixteen on 64-bit
+@gnusystems{} is always a multiple of eight (or sixteen on 64-bit
 systems).  If you need a block whose address is a multiple of a higher
 power of two than that, use @code{memalign}, @code{posix_memalign}, or
 @code{valloc}.  @code{memalign} is declared in @file{malloc.h} and
@@ -2295,7 +2295,7 @@ the one you would get from an infinite recursion; probably a
 segmentation violation (@pxref{Program Error Signals}).
 
 @item
-Some non-GNU systems fail to support @code{alloca}, so it is less
+Some @nongnusystems{} fail to support @code{alloca}, so it is less
 portable.  However, a slower emulation of @code{alloca} written in C
 is available for use on systems with this deficiency.
 @end itemize
diff --git a/manual/pattern.texi b/manual/pattern.texi
index 48eba75cd4..28b1d74b9f 100644
--- a/manual/pattern.texi
+++ b/manual/pattern.texi
@@ -670,7 +670,7 @@ type @code{glob64_t} which were allocated by @code{glob64}.
 
 @Theglibc{} supports two interfaces for matching regular
 expressions.  One is the standard POSIX.2 interface, and the other is
-what the GNU system has had for many years.
+what @theglibc{} has had for many years.
 
 Both interfaces are declared in the header file @file{regex.h}.
 If you define @w{@code{_POSIX_C_SOURCE}}, then only the POSIX.2
diff --git a/manual/pipe.texi b/manual/pipe.texi
index 67e446f2d1..21a8a34978 100644
--- a/manual/pipe.texi
+++ b/manual/pipe.texi
@@ -74,8 +74,8 @@ The process has too many files open.
 
 @item ENFILE
 There are too many open files in the entire system.  @xref{Error Codes},
-for more information about @code{ENFILE}.  This error never occurs in
-the GNU system.
+for more information about @code{ENFILE}.  This error never occurs on
+@gnuhurdsystems{}.
 @end table
 @end deftypefun
 
diff --git a/manual/process.texi b/manual/process.texi
index 45d3ed45b9..e962941503 100644
--- a/manual/process.texi
+++ b/manual/process.texi
@@ -350,8 +350,8 @@ file name searching as the @code{execvp} function.
 @end deftypefun
 
 The size of the argument list and environment list taken together must
-not be greater than @code{ARG_MAX} bytes.  @xref{General Limits}.  In
-the GNU system, the size (which compares against @code{ARG_MAX})
+not be greater than @code{ARG_MAX} bytes.  @xref{General Limits}.  On
+@gnuhurdsystems{}, the size (which compares against @code{ARG_MAX})
 includes, for each string, the number of characters in the string, plus
 the size of a @code{char *}, plus one, rounded up to a multiple of the
 size of a @code{char *}.  Other systems may have somewhat different
@@ -366,7 +366,7 @@ usual file name errors (@pxref{File Name Errors}), the following
 @table @code
 @item E2BIG
 The combined size of the new program's argument list and environment
-list is larger than @code{ARG_MAX} bytes.  The GNU system has no
+list is larger than @code{ARG_MAX} bytes.  @gnuhurdsystems{} have no
 specific limit on the argument list size, so this error code cannot
 result, but you may get @code{ENOMEM} instead if the arguments are too
 big for available memory.
@@ -406,7 +406,7 @@ Pending alarms.  @xref{Setting an Alarm}.
 
 @item
 Current working directory and root directory.  @xref{Working
-Directory}.  In the GNU system, the root directory is not copied when
+Directory}.  On @gnuhurdsystems{}, the root directory is not copied when
 executing a setuid program; instead the system default root directory
 is used for the new program.
 
diff --git a/manual/resource.texi b/manual/resource.texi
index 1e2fcaf958..cb25d2440c 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -42,9 +42,6 @@ Just the current process.
 All child processes (direct and indirect) that have already terminated.
 @end table
 
-In the GNU system, you can also inquire about a particular child process
-by specifying its process ID.
-
 The return value of @code{getrusage} is zero for success, and @code{-1}
 for failure.
 
diff --git a/manual/setjmp.texi b/manual/setjmp.texi
index cc76352553..b0cd91ad1d 100644
--- a/manual/setjmp.texi
+++ b/manual/setjmp.texi
@@ -182,7 +182,7 @@ behavior.
 
 The behavior of @code{setjmp} and @code{longjmp} in @theglibc{} is
 controlled by feature test macros; see @ref{Feature Test Macros}.  The
-default in the GNU system is the POSIX.1 behavior rather than the BSD
+default in @theglibc{} is the POSIX.1 behavior rather than the BSD
 behavior.
 
 The facilities in this section are declared in the header file
diff --git a/manual/signal.texi b/manual/signal.texi
index 9d5e26ce3d..18db3d2266 100644
--- a/manual/signal.texi
+++ b/manual/signal.texi
@@ -274,7 +274,7 @@ When one of these program error signals terminates a process, it also
 writes a @dfn{core dump file} which records the state of the process at
 the time of termination.  The core dump file is named @file{core} and is
 written in whichever directory is current in the process at the time.
-(On the GNU system, you can specify the file name for core dumps with
+(On @gnuhurdsystems{}, you can specify the file name for core dumps with
 the environment variable @code{COREFILE}.)  The purpose of core dump
 files is so that you can examine them with a debugger to investigate
 what caused the error.
@@ -309,7 +309,7 @@ this argument, you must define the handler to accept two arguments,
 which means you must cast it to a one-argument function type in order to
 establish the handler.  @Theglibc{} does provide this extra
 argument, but the value is meaningful only on operating systems that
-provide the information (BSD systems and GNU systems).
+provide the information (BSD systems and @gnusystems{}).
 
 @table @code
 @comment signal.h
@@ -625,7 +625,7 @@ On most operating systems, terminals and sockets are the only kinds of
 files that can generate @code{SIGIO}; other kinds, including ordinary
 files, never generate @code{SIGIO} even if you ask them to.
 
-In the GNU system @code{SIGIO} will always be generated properly
+On @gnusystems{} @code{SIGIO} will always be generated properly
 if you successfully set asynchronous mode with @code{fcntl}.
 @end deftypevr
 
@@ -759,14 +759,14 @@ process would probably not be very useful, since there is no shell
 program that will notice it stop and allow the user to continue it.
 What happens instead depends on the operating system you are using.
 Some systems may do nothing; others may deliver another signal instead,
-such as @code{SIGKILL} or @code{SIGHUP}.  In the GNU system, the process
+such as @code{SIGKILL} or @code{SIGHUP}.  On @gnuhurdsystems{}, the process
 dies with @code{SIGKILL}; this avoids the problem of many stopped,
 orphaned processes lying around the system.
 
 @ignore
-On the GNU system, it is possible to reattach to the orphaned process
+On @gnuhurdsystems{}, it is possible to reattach to the orphaned process
 group and continue it, so stop signals do stop the process as usual on
-a GNU system unless you have requested POSIX compatibility ``till it
+@gnuhurdsystems{} unless you have requested POSIX compatibility ``till it
 hurts.''
 @end ignore
 
@@ -805,7 +805,7 @@ that isn't connected.  @xref{Sending Data}.
 Resource lost.  This signal is generated when you have an advisory lock
 on an NFS file, and the NFS server reboots and forgets about your lock.
 
-In the GNU system, @code{SIGLOST} is generated when any server program
+On @gnuhurdsystems{}, @code{SIGLOST} is generated when any server program
 dies unexpectedly.  It is usually fine to ignore the signal; whatever
 call was made to the server that died just returns an error.
 @end deftypevr
@@ -864,7 +864,7 @@ reformat its display accordingly.
 @comment signal.h
 @comment BSD
 @deftypevr Macro int SIGINFO
-Information request.  In 4.4 BSD and the GNU system, this signal is sent
+Information request.  On 4.4 BSD and @gnuhurdsystems{}, this signal is sent
 to all the processes in the foreground process group of the controlling
 terminal when the user types the STATUS character in canonical mode;
 @pxref{Signal Characters}.
@@ -1223,7 +1223,7 @@ examine it with @code{sigaction}, the handler address that you get may
 not be the same as what you specified with @code{signal}.  It may not
 even be suitable for use as an action argument with @code{signal}.  But
 you can rely on using it as an argument to @code{sigaction}.  This
-problem never happens on the GNU system.
+problem never happens on @gnusystems{}.
 
 So, you're better off using one or the other of the mechanisms
 consistently within a single program.
@@ -1894,7 +1894,7 @@ could ``lose'' one of the objects.
 
 @ignore
 !!! not true
-On the GNU system, @code{malloc} and @code{free} are safe to use in
+In @theglibc{}, @code{malloc} and @code{free} are safe to use in
 signal handlers because they block signals.  As a result, the library
 functions that allocate space for a result are also safe in signal
 handlers.  The obstack allocation functions are safe as long as you
diff --git a/manual/startup.texi b/manual/startup.texi
index caf8156a95..93dca303ca 100644
--- a/manual/startup.texi
+++ b/manual/startup.texi
@@ -169,7 +169,7 @@ To specify an argument for a long option, write
 @samp{--@var{name}=@var{value}}.  This syntax enables a long option to
 accept an argument that is itself optional.
 
-Eventually, the GNU system will provide completion for long option names
+Eventually, @gnusystems{} will provide completion for long option names
 in the shell.
 
 @node Parsing Program Arguments, , Argument Syntax, Program Arguments
@@ -423,7 +423,7 @@ If you just want to get the value of an environment variable, use
 @code{getenv}.
 @end deftypevar
 
-Unix systems, and the GNU system, pass the initial value of
+Unix systems, and @gnusystems{}, pass the initial value of
 @code{environ} as the third argument to @code{main}.
 @xref{Program Arguments}.
 
diff --git a/manual/stdio.texi b/manual/stdio.texi
index dd4d064c4b..0d23daae2c 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -110,7 +110,7 @@ diagnostics issued by the program.
 @end deftypevar
 @cindex standard error stream
 
-In the GNU system, you can specify what files or processes correspond to
+On @gnusystems{}, you can specify what files or processes correspond to
 these streams using the pipe and redirection facilities provided by the
 shell.  (The primitives shells use to implement these facilities are
 described in @ref{File System Interface}.)  Most other operating systems
@@ -206,7 +206,7 @@ Closing Files}).
 
 The character @samp{b} in @var{opentype} has a standard meaning; it
 requests a binary stream rather than a text stream.  But this makes no
-difference in POSIX systems (including the GNU system).  If both
+difference in POSIX systems (including @gnusystems{}).  If both
 @samp{+} and @samp{b} are specified, they can appear in either order.
 @xref{Binary Streams}.
 
@@ -2174,7 +2174,7 @@ The @samp{%p} conversion prints a pointer value.  The corresponding
 argument must be of type @code{void *}.  In practice, you can use any
 type of pointer.
 
-In the GNU system, non-null pointers are printed as unsigned integers,
+In @theglibc{}, non-null pointers are printed as unsigned integers,
 as if a @samp{%#x} conversion were used.  Null pointers print as
 @samp{(nil)}.  (Pointers might print differently in other systems.)
 
@@ -4045,7 +4045,7 @@ descriptor is not usually advisable.
 @node Binary Streams
 @section Text and Binary Streams
 
-The GNU system and other POSIX-compatible operating systems organize all
+@gnusystems{} and other POSIX-compatible operating systems organize all
 files as uniform sequences of characters.  However, some other systems
 make a distinction between files containing text and files containing
 binary data, and the input and output facilities of @w{ISO C} provide for
@@ -4108,7 +4108,7 @@ restrictions that text streams sometimes have.
 
 The @dfn{file position} of a stream describes where in the file the
 stream is currently reading or writing.  I/O on the stream advances the
-file position through the file.  In the GNU system, the file position is
+file position through the file.  On @gnusystems{}, the file position is
 represented as an integer, which counts the number of bytes from the
 beginning of the file.  @xref{File Position}.
 
@@ -4301,7 +4301,7 @@ An alias for @code{SEEK_END}.
 @node Portable Positioning
 @section Portable File-Position Functions
 
-On the GNU system, the file position is truly a character count.  You
+On @gnusystems{}, the file position is truly a character count.  You
 can specify any character count value as an argument to @code{fseek} or
 @code{fseeko} and get reliable results for any random access file.
 However, some @w{ISO C} systems do not represent file positions in this
@@ -4361,7 +4361,7 @@ This is the type of an object that can encode information about the
 file position of a stream, for use by the functions @code{fgetpos} and
 @code{fsetpos}.
 
-In the GNU system, @code{fpos_t} is an opaque data structure that
+In @theglibc{}, @code{fpos_t} is an opaque data structure that
 contains internal data to represent file offset and conversion state
 information.  In other systems, it might have a different internal
 representation.
@@ -4378,7 +4378,7 @@ This is the type of an object that can encode information about the
 file position of a stream, for use by the functions @code{fgetpos64} and
 @code{fsetpos64}.
 
-In the GNU system, @code{fpos64_t} is an opaque data structure that
+In @theglibc{}, @code{fpos64_t} is an opaque data structure that
 contains internal data to represent file offset and conversion state
 information.  In other systems, it might have a different internal
 representation.
@@ -4578,7 +4578,7 @@ This function is declared in the @file{stdio_ext.h} header.
 been known to be so thoroughly fixated on line-oriented input and output
 that flushing a line buffered stream causes a newline to be written!
 Fortunately, this ``feature'' seems to be becoming less common.  You do
-not need to worry about this in the GNU system.
+not need to worry about this with @theglibc{}.
 
 In some situations it might be useful to not flush the output pending
 for a stream but instead simply forget it.  If transmission is costly
diff --git a/manual/terminal.texi b/manual/terminal.texi
index c93082dfe1..8321237f60 100644
--- a/manual/terminal.texi
+++ b/manual/terminal.texi
@@ -319,7 +319,7 @@ This is like @code{TCSADRAIN}, but also discards any queued input.
 This is a flag bit that you can add to any of the above alternatives.
 Its meaning is to inhibit alteration of the state of the terminal
 hardware.  It is a BSD extension; it is only supported on BSD systems
-and the GNU system.
+and @gnuhurdsystems{}.
 
 Using @code{TCSASOFT} is exactly the same as setting the @code{CIGNORE}
 bit in the @code{c_cflag} member of the structure @var{termios-p} points
@@ -574,7 +574,8 @@ If this bit is set, any input character restarts output when output has
 been suspended with the STOP character.  Otherwise, only the START
 character restarts output.
 
-This is a BSD extension; it exists only on BSD systems and the GNU system.
+This is a BSD extension; it exists only on BSD systems and
+@gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -611,12 +612,10 @@ carriage return and linefeed pairs.
 If this bit isn't set, the characters are transmitted as-is.
 @end deftypevr
 
-The following three bits are BSD features, and they exist only BSD
-systems and the GNU system.  They are effective only if @code{OPOST} is
-set.
+The following three bits are effective only if @code{OPOST} is set.
 
 @comment termios.h
-@comment BSD
+@comment POSIX.1
 @deftypevr Macro tcflag_t ONLCR
 If this bit is set, convert the newline character on output into a pair
 of characters, carriage return followed by linefeed.
@@ -626,7 +625,9 @@ of characters, carriage return followed by linefeed.
 @comment BSD
 @deftypevr Macro tcflag_t OXTABS
 If this bit is set, convert tab characters on output into the appropriate
-number of spaces to emulate a tab stop every eight columns.
+number of spaces to emulate a tab stop every eight columns.  This bit
+exists only on BSD systems and @gnuhurdsystems{}; on
+@gnulinuxsystems{} it is available as @code{XTABS}.
 @end deftypevr
 
 @comment termios.h
@@ -634,6 +635,7 @@ number of spaces to emulate a tab stop every eight columns.
 @deftypevr Macro tcflag_t ONOEOT
 If this bit is set, discard @kbd{C-d} characters (code @code{004}) on
 output.  These characters cause many dial-up terminals to disconnect.
+This bit exists only on BSD systems and @gnuhurdsystems{}.
 @end deftypevr
 
 @node Control Modes
@@ -747,8 +749,8 @@ This specifies seven bits per byte.
 This specifies eight bits per byte.
 @end deftypevr
 
-The following four bits are BSD extensions; this exist only on BSD
-systems and the GNU system.
+The following four bits are BSD extensions; these exist only on BSD
+systems and @gnuhurdsystems{}.
 
 @comment termios.h
 @comment BSD
@@ -839,8 +841,8 @@ character erased.  Typing the ERASE character again just prints the next
 character erased.  Then, the next time you type a normal character, a
 @samp{/} character is printed before the character echoes.
 
-This is a BSD extension, and exists only in BSD systems and the
-GNU system.
+This is a BSD extension, and exists only in BSD systems and
+@gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -865,8 +867,8 @@ input, without which @code{ECHOK} is simply irrelevant.
 @deftypevr Macro tcflag_t ECHOKE
 This bit is similar to @code{ECHOK}.  It enables special display of the
 KILL character by erasing on the screen the entire line that has been
-killed.  This is a BSD extension, and exists only in BSD systems and the
-GNU system.
+killed.  This is a BSD extension, and exists only in BSD systems and
+@gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -886,8 +888,8 @@ Thus, control-A echoes as @samp{^A}.  This is usually the preferred mode
 for interactive input, because echoing a control character back to the
 terminal could have some undesired effect on the terminal.
 
-This is a BSD extension, and exists only in BSD systems and the
-GNU system.
+This is a BSD extension, and exists only in BSD systems and
+@gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -914,7 +916,8 @@ signals associated with these characters, or to escape from the program.
 POSIX.1 gives @code{IEXTEN} implementation-defined meaning,
 so you cannot rely on this interpretation on all systems.
 
-On BSD systems and the GNU system, it enables the LNEXT and DISCARD characters.
+On BSD systems and @gnulinuxhurdsystems{}, it enables the LNEXT and
+DISCARD characters.
 @xref{Other Special}.
 @end deftypevr
 
@@ -934,8 +937,8 @@ If this bit is set and the system supports job control, then
 attempt to write to the terminal.  @xref{Access to the Terminal}.
 @end deftypevr
 
-The following bits are BSD extensions; they exist only in BSD systems
-and the GNU system.
+The following bits are BSD extensions; they exist only on BSD systems
+and @gnuhurdsystems{}.
 
 @comment termios.h
 @comment BSD
@@ -1245,7 +1248,7 @@ terminate an input line, by setting EOL to one of them and EOL2 to the
 other.
 
 The EOL2 character is a BSD extension; it exists only on BSD systems
-and the GNU system.
+and @gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -1404,7 +1407,7 @@ The DSUSP (suspend) character is recognized only if the implementation
 supports job control (@pxref{Job Control}).  It sends a @code{SIGTSTP}
 signal, like the SUSP character, but not right away---only when the
 program tries to read it as input.  Not all systems with job control
-support DSUSP; only BSD-compatible systems (including the GNU system).
+support DSUSP; only BSD-compatible systems (including @gnuhurdsystems{}).
 
 @xref{Signal Handling}, for more information about signals.
 
@@ -1461,8 +1464,6 @@ regardless of what you specify.
 @node Other Special
 @subsubsection Other Special Characters
 
-These special characters exist only in BSD systems and the GNU system.
-
 @comment termios.h
 @comment BSD
 @deftypevr Macro int VLNEXT
@@ -1479,6 +1480,8 @@ signal, it is read as a plain character.  This is the analogue of the
 @kbd{C-q} command in Emacs.  ``LNEXT'' stands for ``literal next.''
 
 The LNEXT character is usually @kbd{C-v}.
+
+This character is available on BSD systems and @gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -1494,6 +1497,8 @@ in both canonical and noncanonical mode.  Its effect is to toggle the
 discard-output flag.  When this flag is set, all program output is
 discarded.  Setting the flag also discards all output currently in the
 output buffer.  Typing any other character resets the flag.
+
+This character is available on BSD systems and @gnulinuxhurdsystems{}.
 @end deftypevr
 
 @comment termios.h
@@ -1509,6 +1514,8 @@ the current process is running.
 
 The STATUS character is recognized only in canonical mode, and only if
 @code{NOKERNINFO} is not set.
+
+This character is available only on BSD systems and @gnuhurdsystems{}.
 @end deftypevr
 
 @node Noncanonical Input
diff --git a/manual/time.texi b/manual/time.texi
index a2e11a1a9d..a410def3eb 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -84,7 +84,7 @@ time between calendar time @var{time1} and calendar time @var{time0}, as
 a value of type @code{double}.  The difference ignores leap seconds
 unless leap second support is enabled.
 
-In the GNU system, you can simply subtract @code{time_t} values.  But on
+In @theglibc{}, you can simply subtract @code{time_t} values.  But on
 other systems, the @code{time_t} data type might use some other encoding
 where subtraction doesn't work directly.
 @end deftypefun
@@ -163,7 +163,7 @@ you can get the information with the functions in this section.
 CPU time (@pxref{Time Basics}) is represented by the data type
 @code{clock_t}, which is a number of @dfn{clock ticks}.  It gives the
 total amount of time a process has actively used a CPU since some
-arbitrary event.  On the GNU system, that event is the creation of the
+arbitrary event.  On @gnusystems{}, that event is the creation of the
 process.  While arbitrary in general, the event is always the same event
 for any particular process, so you can always measure how much time on
 the CPU a particular computation takes by examining the process' CPU
@@ -172,7 +172,7 @@ time before and after the computation.
 @cindex clock ticks
 @cindex ticks, clock
 
-In the GNU system, @code{clock_t} is equivalent to @code{long int} and
+On @gnulinuxhurdsystems{}, @code{clock_t} is equivalent to @code{long int} and
 @code{CLOCKS_PER_SEC} is an integer value.  But in other systems, both
 @code{clock_t} and the macro @code{CLOCKS_PER_SEC} can be either integer
 or floating-point types.  Casting CPU time values to @code{double}, as
@@ -319,7 +319,7 @@ indicate failure.
 
 @strong{Portability Note:} The @code{clock} function described in
 @ref{CPU Time} is specified by the @w{ISO C} standard.  The
-@code{times} function is a feature of POSIX.1.  In the GNU system, the
+@code{times} function is a feature of POSIX.1.  On @gnusystems{}, the
 CPU time is defined to be equivalent to the sum of the @code{tms_utime}
 and @code{tms_stime} fields returned by @code{times}.
 
@@ -487,7 +487,7 @@ following @code{errno} error condition is defined for this function:
 @table @code
 @item ENOSYS
 The operating system does not support getting time zone information, and
-@var{tzp} is not a null pointer.  The GNU operating system does not
+@var{tzp} is not a null pointer.  @gnusystems{} do not
 support using @w{@code{struct timezone}} to represent time zone
 information; that is an obsolete feature of 4.3 BSD.
 Instead, use the facilities described in @ref{Time Zone Functions}.
@@ -2462,7 +2462,7 @@ handler.  And, if @code{sleep} is interrupted by delivery of a signal
 whose handler requests an alarm or alters the handling of @code{SIGALRM},
 this handler and @code{sleep} will interfere.
 
-On the GNU system, it is safe to use @code{sleep} and @code{SIGALRM} in
+On @gnusystems{}, it is safe to use @code{sleep} and @code{SIGALRM} in
 the same program, because @code{sleep} does not work by means of
 @code{SIGALRM}.
 
diff --git a/manual/users.texi b/manual/users.texi
index 819d35fcc4..1ee5a0b178 100644
--- a/manual/users.texi
+++ b/manual/users.texi
@@ -884,7 +884,7 @@ The exit status of the process.
 
 @deftp {Data Type} {struct utmp}
 The @code{utmp} data structure is used to hold information about entries
-in the user accounting database.  On the GNU system it has the following
+in the user accounting database.  On @gnusystems{} it has the following
 members:
 
 @table @code
@@ -1217,7 +1217,7 @@ database specified by @var{wtmp_file}.  For possible values for the
 subset of these functions, they are not standardized.  There are often
 subtle differences in the return types, and there are considerable
 differences between the various definitions of @code{struct utmp}.  When
-programming for the GNU system, it is probably best to stick
+programming for @theglibc{}, it is probably best to stick
 with the functions described in this section.  If however, you want your
 program to be portable, consider using the XPG functions described in
 @ref{XPG Functions}, or take a look at the BSD compatible functions in
@@ -1257,14 +1257,14 @@ Time the entry was made.  For entries of type @code{OLD_TIME} this is
 the time when the system clock changed, and for entries of type
 @code{NEW_TIME} this is the time the system clock was set to.
 @end table
-On the GNU system, @code{struct utmpx} is identical to @code{struct
+In @theglibc{}, @code{struct utmpx} is identical to @code{struct
 utmp} except for the fact that including @file{utmpx.h} does not make
 visible the declaration of @code{struct exit_status}.
 @end deftp
 
 The following macros are defined for use as values for the
 @code{ut_type} member of the @code{utmpx} structure.  The values are
-integer constants and are, on the GNU system, identical to the
+integer constants and are, in @theglibc{}, identical to the
 definitions in @file{utmp.h}.
 
 @table @code
@@ -1330,7 +1330,7 @@ can be found using the @code{sizeof} operator.
 @comment utmpx.h
 @comment XPG4.2
 @deftypefun void setutxent (void)
-This function is similar to @code{setutent}.  On the GNU system it is
+This function is similar to @code{setutent}.  In @theglibc{} it is
 simply an alias for @code{setutent}.
 @end deftypefun
 
@@ -1338,14 +1338,14 @@ simply an alias for @code{setutent}.
 @comment XPG4.2
 @deftypefun {struct utmpx *} getutxent (void)
 The @code{getutxent} function is similar to @code{getutent}, but returns
-a pointer to a @code{struct utmpx} instead of @code{struct utmp}.  On
-the GNU system it simply is an alias for @code{getutent}.
+a pointer to a @code{struct utmpx} instead of @code{struct utmp}.  In
+@theglibc{} it simply is an alias for @code{getutent}.
 @end deftypefun
 
 @comment utmpx.h
 @comment XPG4.2
 @deftypefun void endutxent (void)
-This function is similar to @code{endutent}.  On the GNU system it is
+This function is similar to @code{endutent}.  In @theglibc{} it is
 simply an alias for @code{endutent}.
 @end deftypefun
 
@@ -1353,7 +1353,7 @@ simply an alias for @code{endutent}.
 @comment XPG4.2
 @deftypefun {struct utmpx *} getutxid (const struct utmpx *@var{id})
 This function is similar to @code{getutid}, but uses @code{struct utmpx}
-instead of @code{struct utmp}.  On the GNU system it is simply an alias
+instead of @code{struct utmp}.  In @theglibc{} it is simply an alias
 for @code{getutid}.
 @end deftypefun
 
@@ -1361,7 +1361,7 @@ for @code{getutid}.
 @comment XPG4.2
 @deftypefun {struct utmpx *} getutxline (const struct utmpx *@var{line})
 This function is similar to @code{getutid}, but uses @code{struct utmpx}
-instead of @code{struct utmp}.  On the GNU system it is simply an alias
+instead of @code{struct utmp}.  In @theglibc{} it is simply an alias
 for @code{getutline}.
 @end deftypefun
 
@@ -1370,7 +1370,7 @@ for @code{getutline}.
 @deftypefun {struct utmpx *} pututxline (const struct utmpx *@var{utmp})
 The @code{pututxline} function is functionally identical to
 @code{pututline}, but uses @code{struct utmpx} instead of @code{struct
-utmp}.  On the GNU system, @code{pututxline} is simply an alias for
+utmp}.  In @theglibc{}, @code{pututxline} is simply an alias for
 @code{pututline}.
 @end deftypefun
 
@@ -1378,12 +1378,12 @@ utmp}.  On the GNU system, @code{pututxline} is simply an alias for
 @comment XPG4.2
 @deftypefun int utmpxname (const char *@var{file})
 The @code{utmpxname} function is functionally identical to
-@code{utmpname}.  On the GNU system, @code{utmpxname} is simply an
+@code{utmpname}.  In @theglibc{}, @code{utmpxname} is simply an
 alias for @code{utmpname}.
 @end deftypefun
 
 You can translate between a traditional @code{struct utmp} and an XPG
-@code{struct utmpx} with the following functions.  On the GNU system,
+@code{struct utmpx} with the following functions.  In @theglibc{},
 these functions are merely copies, since the two structures are
 identical.
 
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 9bdbc4cb98..39cda6663c 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -1065,6 +1065,32 @@ cacos_test (void)
 
   TEST_c_c (cacos, nan_value, nan_value, nan_value, nan_value);
 
+  TEST_c_c (cacos, plus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
+  TEST_c_c (cacos, minus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
+  TEST_c_c (cacos, plus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L);
+  TEST_c_c (cacos, minus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L);
+  TEST_c_c (cacos, plus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L);
+  TEST_c_c (cacos, minus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L);
+  TEST_c_c (cacos, plus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L);
+  TEST_c_c (cacos, minus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L);
+  TEST_c_c (cacos, plus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L);
+  TEST_c_c (cacos, minus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L);
+  TEST_c_c (cacos, plus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L);
+  TEST_c_c (cacos, minus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L);
+
+  TEST_c_c (cacos, -1.5L, plus_zero, M_PIl, -0.9624236501192068949955178268487368462704L);
+  TEST_c_c (cacos, -1.5L, minus_zero, M_PIl, 0.9624236501192068949955178268487368462704L);
+  TEST_c_c (cacos, -1.0L, plus_zero, M_PIl, minus_zero);
+  TEST_c_c (cacos, -1.0L, minus_zero, M_PIl, plus_zero);
+  TEST_c_c (cacos, -0.5L, plus_zero, 2.094395102393195492308428922186335256131L, minus_zero);
+  TEST_c_c (cacos, -0.5L, minus_zero, 2.094395102393195492308428922186335256131L, plus_zero);
+  TEST_c_c (cacos, 0.5L, plus_zero, 1.047197551196597746154214461093167628066L, minus_zero);
+  TEST_c_c (cacos, 0.5L, minus_zero, 1.047197551196597746154214461093167628066L, plus_zero);
+  TEST_c_c (cacos, 1.0L, plus_zero, plus_zero, minus_zero);
+  TEST_c_c (cacos, 1.0L, minus_zero, plus_zero, plus_zero);
+  TEST_c_c (cacos, 1.5L, plus_zero, plus_zero, -0.9624236501192068949955178268487368462704L);
+  TEST_c_c (cacos, 1.5L, minus_zero, plus_zero, 0.9624236501192068949955178268487368462704L);
+
   TEST_c_c (cacos, 0.75L, 1.25L, 1.11752014915610270578240049553777969L, -1.13239363160530819522266333696834467L);
   TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L, 1.9833870299165354323470769028940395L);
 
@@ -1127,6 +1153,32 @@ cacosh_test (void)
 
   TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value);
 
+  TEST_c_c (cacosh, plus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
+  TEST_c_c (cacosh, minus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
+  TEST_c_c (cacosh, plus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l);
+  TEST_c_c (cacosh, minus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l);
+  TEST_c_c (cacosh, plus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l);
+  TEST_c_c (cacosh, minus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l);
+  TEST_c_c (cacosh, plus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l);
+  TEST_c_c (cacosh, minus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l);
+  TEST_c_c (cacosh, plus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l);
+  TEST_c_c (cacosh, minus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l);
+  TEST_c_c (cacosh, plus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l);
+  TEST_c_c (cacosh, minus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l);
+
+  TEST_c_c (cacosh, -1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, M_PIl);
+  TEST_c_c (cacosh, -1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, -M_PIl);
+  TEST_c_c (cacosh, -1.0L, plus_zero, plus_zero, M_PIl);
+  TEST_c_c (cacosh, -1.0L, minus_zero, plus_zero, -M_PIl);
+  TEST_c_c (cacosh, -0.5L, plus_zero, plus_zero, 2.094395102393195492308428922186335256131L);
+  TEST_c_c (cacosh, -0.5L, minus_zero, plus_zero, -2.094395102393195492308428922186335256131L);
+  TEST_c_c (cacosh, 0.5L, plus_zero, plus_zero, 1.047197551196597746154214461093167628066L);
+  TEST_c_c (cacosh, 0.5L, minus_zero, plus_zero, -1.047197551196597746154214461093167628066L);
+  TEST_c_c (cacosh, 1.0L, plus_zero, plus_zero, plus_zero);
+  TEST_c_c (cacosh, 1.0L, minus_zero, plus_zero, minus_zero);
+  TEST_c_c (cacosh, 1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, plus_zero);
+  TEST_c_c (cacosh, 1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, minus_zero);
+
   TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L, 1.11752014915610270578240049553777969L);
   TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L, -2.1414491111159960199416055713254211L);
 
@@ -1258,6 +1310,32 @@ casin_test (void)
 
   TEST_c_c (casin, nan_value, nan_value, nan_value, nan_value);
 
+  TEST_c_c (casin, plus_zero, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L);
+  TEST_c_c (casin, minus_zero, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L);
+  TEST_c_c (casin, plus_zero, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L);
+  TEST_c_c (casin, minus_zero, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L);
+  TEST_c_c (casin, plus_zero, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L);
+  TEST_c_c (casin, minus_zero, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L);
+  TEST_c_c (casin, plus_zero, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L);
+  TEST_c_c (casin, minus_zero, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L);
+  TEST_c_c (casin, plus_zero, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L);
+  TEST_c_c (casin, minus_zero, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L);
+  TEST_c_c (casin, plus_zero, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L);
+  TEST_c_c (casin, minus_zero, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L);
+
+  TEST_c_c (casin, -1.5L, plus_zero, -M_PI_2l, 0.9624236501192068949955178268487368462704L);
+  TEST_c_c (casin, -1.5L, minus_zero, -M_PI_2l, -0.9624236501192068949955178268487368462704L);
+  TEST_c_c (casin, -1.0L, plus_zero, -M_PI_2l, plus_zero);
+  TEST_c_c (casin, -1.0L, minus_zero, -M_PI_2l, minus_zero);
+  TEST_c_c (casin, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L, plus_zero);
+  TEST_c_c (casin, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L, minus_zero);
+  TEST_c_c (casin, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L, plus_zero);
+  TEST_c_c (casin, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L, minus_zero);
+  TEST_c_c (casin, 1.0L, plus_zero, M_PI_2l, plus_zero);
+  TEST_c_c (casin, 1.0L, minus_zero, M_PI_2l, minus_zero);
+  TEST_c_c (casin, 1.5L, plus_zero, M_PI_2l, 0.9624236501192068949955178268487368462704L);
+  TEST_c_c (casin, 1.5L, minus_zero, M_PI_2l, -0.9624236501192068949955178268487368462704L);
+
   TEST_c_c (casin, 0.75L, 1.25L, 0.453276177638793913448921196101971749L, 1.13239363160530819522266333696834467L);
   TEST_c_c (casin, -2, -3, -0.57065278432109940071028387968566963L, -1.9833870299165354323470769028940395L);
 
@@ -1322,6 +1400,32 @@ casinh_test (void)
 
   TEST_c_c (casinh, nan_value, nan_value, nan_value, nan_value);
 
+  TEST_c_c (casinh, plus_zero, -1.5L, 0.9624236501192068949955178268487368462704L, -M_PI_2l);
+  TEST_c_c (casinh, minus_zero, -1.5L, -0.9624236501192068949955178268487368462704L, -M_PI_2l);
+  TEST_c_c (casinh, plus_zero, -1.0L, plus_zero, -M_PI_2l);
+  TEST_c_c (casinh, minus_zero, -1.0L, minus_zero, -M_PI_2l);
+  TEST_c_c (casinh, plus_zero, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L);
+  TEST_c_c (casinh, minus_zero, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L);
+  TEST_c_c (casinh, plus_zero, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L);
+  TEST_c_c (casinh, minus_zero, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L);
+  TEST_c_c (casinh, plus_zero, 1.0L, plus_zero, M_PI_2l);
+  TEST_c_c (casinh, minus_zero, 1.0L, minus_zero, M_PI_2l);
+  TEST_c_c (casinh, plus_zero, 1.5L, 0.9624236501192068949955178268487368462704L, M_PI_2l);
+  TEST_c_c (casinh, minus_zero, 1.5L, -0.9624236501192068949955178268487368462704L, M_PI_2l);
+
+  TEST_c_c (casinh, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L, plus_zero);
+  TEST_c_c (casinh, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L, minus_zero);
+  TEST_c_c (casinh, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L, plus_zero);
+  TEST_c_c (casinh, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L, minus_zero);
+  TEST_c_c (casinh, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L, plus_zero);
+  TEST_c_c (casinh, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L, minus_zero);
+  TEST_c_c (casinh, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L, plus_zero);
+  TEST_c_c (casinh, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L, minus_zero);
+  TEST_c_c (casinh, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L, plus_zero);
+  TEST_c_c (casinh, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L, minus_zero);
+  TEST_c_c (casinh, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L, plus_zero);
+  TEST_c_c (casinh, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L, minus_zero);
+
   TEST_c_c (casinh, 0.75L, 1.25L, 1.03171853444778027336364058631006594L, 0.911738290968487636358489564316731207L);
   TEST_c_c (casinh, -2, -3, -1.9686379257930962917886650952454982L, -0.96465850440760279204541105949953237L);
 
diff --git a/math/s_cacosh.c b/math/s_cacosh.c
index 95bf005cd3..ef49088c3d 100644
--- a/math/s_cacosh.c
+++ b/math/s_cacosh.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole cosine for double value.
-   Copyright (C) 1997, 2006, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -66,9 +66,13 @@ __cacosh (__complex__ double x)
     }
   /* The factor 16 is just a guess.  */
   else if (16.0 * fabs (__imag__ x) < fabs (__real__ x))
-    /* Kahan's formula which avoid cancellation through subtraction in
-       some cases.  */
-    res = 2.0 * __clog (__csqrt ((x + 1.0) / 2.0) + __csqrt ((x - 1.0) / 2.0));
+    {
+      /* Kahan's formula which avoid cancellation through subtraction in
+	 some cases.  */
+      res = 2.0 * __clog (__csqrt ((x + 1.0) / 2.0) + __csqrt ((x - 1.0) / 2.0));
+      if (signbit (__real__ res))
+	__real__ res = 0.0;
+    }
   else
     {
       __complex__ double y;
diff --git a/math/s_cacoshf.c b/math/s_cacoshf.c
index d634a1b756..fc716ac519 100644
--- a/math/s_cacoshf.c
+++ b/math/s_cacoshf.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole cosine for float value.
-   Copyright (C) 1997, 2006, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -66,10 +66,14 @@ __cacoshf (__complex__ float x)
     }
   /* The factor 16 is just a guess.  */
   else if (16.0 * fabsf (__imag__ x) < fabsf (__real__ x))
-    /* Kahan's formula which avoid cancellation through subtraction in
-       some cases.  */
-    res = 2.0 * __clogf (__csqrtf ((x + 1.0) / 2.0)
-			 + __csqrtf ((x - 1.0) / 2.0));
+    {
+      /* Kahan's formula which avoid cancellation through subtraction in
+	 some cases.  */
+      res = 2.0 * __clogf (__csqrtf ((x + 1.0) / 2.0)
+			   + __csqrtf ((x - 1.0) / 2.0));
+      if (signbit (__real__ res))
+	__real__ res = 0.0f;
+    }
   else
     {
       __complex__ float y;
diff --git a/math/s_cacoshl.c b/math/s_cacoshl.c
index dcdb1d5a64..3bcab1d277 100644
--- a/math/s_cacoshl.c
+++ b/math/s_cacoshl.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole cosine for long double value.
-   Copyright (C) 1997, 1998, 2006, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -66,10 +66,14 @@ __cacoshl (__complex__ long double x)
     }
   /* The factor 16 is just a guess.  */
   else if (16.0L * fabsl (__imag__ x) < fabsl (__real__ x))
-    /* Kahan's formula which avoid cancellation through subtraction in
-       some cases.  */
-    res = 2.0L * __clogl (__csqrtl ((x + 1.0L) / 2.0L)
-			  + __csqrtl ((x - 1.0L) / 2.0L));
+    {
+      /* Kahan's formula which avoid cancellation through subtraction in
+	 some cases.  */
+      res = 2.0L * __clogl (__csqrtl ((x + 1.0L) / 2.0L)
+			    + __csqrtl ((x - 1.0L) / 2.0L));
+      if (signbit (__real__ res))
+	__real__ res = 0.0L;
+    }
   else
     {
       __complex__ long double y;
diff --git a/math/s_casinh.c b/math/s_casinh.c
index e06be1cdc6..24ae676a8f 100644
--- a/math/s_casinh.c
+++ b/math/s_casinh.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole sine for double value.
-   Copyright (C) 1997, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -73,6 +73,11 @@ __casinh (__complex__ double x)
       __imag__ y += __imag__ x;
 
       res = __clog (y);
+
+      /* Ensure zeros have correct sign and results are correct if
+	 very close to branch cuts.  */
+      __real__ res = __copysign (__real__ res, __real__ x);
+      __imag__ res = __copysign (__imag__ res, __imag__ x);
     }
 
   return res;
diff --git a/math/s_casinhf.c b/math/s_casinhf.c
index 37c67401a3..c7098ef309 100644
--- a/math/s_casinhf.c
+++ b/math/s_casinhf.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole sine for float value.
-   Copyright (C) 1997, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -73,6 +73,11 @@ __casinhf (__complex__ float x)
       __imag__ y += __imag__ x;
 
       res = __clogf (y);
+
+      /* Ensure zeros have correct sign and results are correct if
+	 very close to branch cuts.  */
+      __real__ res = __copysignf (__real__ res, __real__ x);
+      __imag__ res = __copysignf (__imag__ res, __imag__ x);
     }
 
   return res;
diff --git a/math/s_casinhl.c b/math/s_casinhl.c
index de41cb8999..80d7bf500d 100644
--- a/math/s_casinhl.c
+++ b/math/s_casinhl.c
@@ -1,5 +1,5 @@
 /* Return arc hyperbole sine for long double value.
-   Copyright (C) 1997, 1998, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -73,6 +73,11 @@ __casinhl (__complex__ long double x)
       __imag__ y += __imag__ x;
 
       res = __clogl (y);
+
+      /* Ensure zeros have correct sign and results are correct if
+	 very close to branch cuts.  */
+      __real__ res = __copysignl (__real__ res, __real__ x);
+      __imag__ res = __copysignl (__imag__ res, __imag__ x);
     }
 
   return res;
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index eb2e38daf9..dd6f334a3d 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,12 @@
+2012-03-07  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #10545]
+	* sysdeps/pthread/configure.in (libc_cv_forced_unwind): Change
+	link test to a compile test.
+	(libc_cv_c_cleanup): Likewise.  Declare puts rather than including
+	<stdio.h>.
+	* sysdeps/pthread/configure: Regenerated.
+
 2012-03-07  Ulrich Drepper  <drepper@gmail.com>
 
 	* Makefile (distribute): Remove variable.
diff --git a/nptl/sysdeps/pthread/configure b/nptl/sysdeps/pthread/configure
index 6b3c79b8f4..221ce9bbb1 100644
--- a/nptl/sysdeps/pthread/configure
+++ b/nptl/sysdeps/pthread/configure
@@ -81,21 +81,21 @@ $as_echo X/"$0" |
 }
 
 
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 $as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
+  (eval "$ac_compile") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
     grep -v '^ *+' conftest.err >conftest.er1
@@ -106,10 +106,7 @@ $as_echo "$ac_try_echo"; } >&5
   test $ac_status = 0; } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
+       } && test -s conftest.$ac_objext; then :
   ac_retval=0
 else
   $as_echo "$as_me: failed program was:" >&5
@@ -117,15 +114,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
 fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
-} # ac_fn_c_try_link
+} # ac_fn_c_try_compile
 # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
 
 if test "x$libc_cv_gcc___thread" != xyes; then
@@ -165,13 +157,12 @@ _Unwind_GetCFA (context)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"; then :
   libc_cv_forced_unwind=yes
 else
   libc_cv_forced_unwind=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_forced_unwind" >&5
 $as_echo "$libc_cv_forced_unwind" >&6; }
@@ -188,25 +179,24 @@ else
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdio.h>
+extern void some_function (void);
 void cl (void *a) { }
 int
 main ()
 {
 
   int a __attribute__ ((cleanup (cl)));
-  puts ("test")
+  some_function ()
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"; then :
   libc_cv_c_cleanup=yes
 else
   libc_cv_c_cleanup=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_c_cleanup" >&5
 $as_echo "$libc_cv_c_cleanup" >&6; }
diff --git a/nptl/sysdeps/pthread/configure.in b/nptl/sysdeps/pthread/configure.in
index 17f18f0fbf..413af96799 100644
--- a/nptl/sysdeps/pthread/configure.in
+++ b/nptl/sysdeps/pthread/configure.in
@@ -23,7 +23,7 @@ dnl Iff <unwind.h> is available, make sure it is the right one and it
 dnl contains struct _Unwind_Exception.
 AC_CACHE_CHECK(dnl
 for forced unwind support, libc_cv_forced_unwind, [dnl
-AC_TRY_LINK([#include <unwind.h>], [
+AC_TRY_COMPILE([#include <unwind.h>], [
 struct _Unwind_Exception exc;
 struct _Unwind_Context *context;
 _Unwind_GetCFA (context)],
@@ -34,11 +34,11 @@ dnl Check for C cleanup handling.
   old_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -Werror -fexceptions"
   AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
-  AC_TRY_LINK([
-#include <stdio.h>
+  AC_TRY_COMPILE([
+extern void some_function (void);
 void cl (void *a) { }], [
   int a __attribute__ ((cleanup (cl)));
-  puts ("test")],
+  some_function ()],
 libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
   CFLAGS="$old_CFLAGS"
   if test $libc_cv_c_cleanup = no; then
diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
index 62613ff891..e3d2faf56e 100644
--- a/sysdeps/gnu/errlist.c
+++ b/sysdeps/gnu/errlist.c
@@ -89,8 +89,8 @@ TRANS computer. */
 /*
 TRANS Argument list too long; used when the arguments passed to a new program
 TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
-TRANS File}) occupy too much memory space.  This condition never arises in the
-TRANS GNU system. */
+TRANS File}) occupy too much memory space.  This condition never arises on
+TRANS @gnuhurdsystems{}. */
     [ERR_REMAP (E2BIG)] = N_("Argument list too long"),
 # if E2BIG > ERR_MAX
 # undef ERR_MAX
@@ -163,7 +163,7 @@ TRANS Permission denied; the file permissions do not allow the attempted operati
 #ifdef EFAULT
 /*
 TRANS Bad address; an invalid pointer was detected.
-TRANS In the GNU system, this error never happens; you get a signal instead. */
+TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead. */
     [ERR_REMAP (EFAULT)] = N_("Bad address"),
 # if EFAULT > ERR_MAX
 # undef ERR_MAX
@@ -271,7 +271,7 @@ TRANS @pxref{Limits on Resources}. */
 /*
 TRANS There are too many distinct file openings in the entire system.  Note
 TRANS that any number of linked channels count as just one file opening; see
-TRANS @ref{Linked Channels}.  This error never occurs in the GNU system. */
+TRANS @ref{Linked Channels}.  This error never occurs on @gnuhurdsystems{}. */
     [ERR_REMAP (ENFILE)] = N_("Too many open files in system"),
 # if ENFILE > ERR_MAX
 # undef ERR_MAX
@@ -294,7 +294,7 @@ TRANS An attempt to execute a file that is currently open for writing, or
 TRANS write to a file that is currently being executed.  Often using a
 TRANS debugger to run a program is considered having it open for writing and
 TRANS will cause this error.  (The name stands for ``text file busy''.)  This
-TRANS is not an error in the GNU system; the text is copied as necessary. */
+TRANS is not an error on @gnuhurdsystems{}; the text is copied as necessary. */
     [ERR_REMAP (ETXTBSY)] = N_("Text file busy"),
 # if ETXTBSY > ERR_MAX
 # undef ERR_MAX
@@ -520,7 +520,7 @@ TRANS The socket type is not supported. */
 /*
 TRANS The operation you requested is not supported.  Some socket functions
 TRANS don't make sense for all types of sockets, and others may not be
-TRANS implemented for all communications protocols.  In the GNU system, this
+TRANS implemented for all communications protocols.  On @gnuhurdsystems{}, this
 TRANS error can happen for many calls when the object does not support the
 TRANS particular operation; it is a generic indication that the server knows
 TRANS nothing to do for that call. */
@@ -795,7 +795,7 @@ TRANS the NFS file system on the local host. */
 TRANS An attempt was made to NFS-mount a remote file system with a file name that
 TRANS already specifies an NFS-mounted file.
 TRANS (This is an error on some operating systems, but we expect it to work
-TRANS properly on the GNU system, making this error code impossible.) */
+TRANS properly on @gnuhurdsystems{}, making this error code impossible.) */
     [ERR_REMAP (EREMOTE)] = N_("Object is remote"),
 # if EREMOTE > ERR_MAX
 # undef ERR_MAX
@@ -850,7 +850,7 @@ TRANS ??? */
 #ifdef ENOLCK
 /*
 TRANS No locks available.  This is used by the file locking facilities; see
-TRANS @ref{File Locks}.  This error is never generated by the GNU system, but
+TRANS @ref{File Locks}.  This error is never generated by @gnuhurdsystems{}, but
 TRANS it can result from an operation to an NFS server running another
 TRANS operating system. */
     [ERR_REMAP (ENOLCK)] = N_("No locks available"),
@@ -935,7 +935,7 @@ TRANS or an incomplete sequence of bytes or the given wide character is invalid.
 #endif
 #ifdef EBACKGROUND
 /*
-TRANS In the GNU system, servers supporting the @code{term} protocol return
+TRANS On @gnuhurdsystems{}, servers supporting the @code{term} protocol return
 TRANS this error for certain operations when the caller is not in the
 TRANS foreground process group of the terminal.  Users do not usually see this
 TRANS error because functions such as @code{read} and @code{write} translate
@@ -949,7 +949,7 @@ TRANS for information on process groups and these signals. */
 #endif
 #ifdef EDIED
 /*
-TRANS In the GNU system, opening a file returns this error when the file is
+TRANS On @gnuhurdsystems{}, opening a file returns this error when the file is
 TRANS translated by a program and the translator program dies while starting
 TRANS up, before it has connected to the file. */
     [ERR_REMAP (EDIED)] = N_("Translator died"),
diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure
index bc7900ee2e..49330e389d 100644
--- a/sysdeps/i386/configure
+++ b/sysdeps/i386/configure
@@ -16,23 +16,6 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -97,42 +80,6 @@ $as_echo X/"$0" |
   exit
 }
 
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
 
 # ac_fn_c_try_compile LINENO
 # --------------------------
@@ -172,172 +119,6 @@ fi
 
 } # ac_fn_c_try_compile
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
 # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists and can be compiled using the include files in
@@ -372,267 +153,8 @@ $as_echo "$ac_res" >&6; }
  # Local configure fragment for sysdeps/i386.
 
 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "/* No default includes.  */
 "
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
 if test "x$ac_cv_header_cpuid_h" = xyes; then :
 
 else
diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in
index 59a4cd6ea1..f769019acf 100644
--- a/sysdeps/i386/configure.in
+++ b/sysdeps/i386/configure.in
@@ -1,8 +1,9 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/i386.
 
-AC_HEADER_CHECK([cpuid.h], ,
-  [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])])
+AC_CHECK_HEADER([cpuid.h], ,
+  [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])],
+  [/* No default includes.  */])
 
 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
 	       libc_cv_cpp_asm_debuginfo, [dnl
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index c5568b9832..977a3abd14 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -28,13 +28,147 @@ ildouble: 2
 ldouble: 1
 
 # cacos
+Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
 float: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
 
 # cacosh
+Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+float: 1
+ifloat: 1
 Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
 double: 1
 float: 9
@@ -52,8 +186,74 @@ ldouble: 1
 Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+float: 1
+ifloat: 1
 
 # casin
+Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+double: 2
+idouble: 2
+Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
 double: 1
 float: 1
@@ -66,8 +266,62 @@ float: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
 
 # casinh
+Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+double: 2
+idouble: 2
+Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+double: 2
+idouble: 2
+Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
 double: 5
 float: 1
@@ -82,6 +336,12 @@ idouble: 3
 ifloat: 6
 ildouble: 5
 ldouble: 5
+Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+float: 1
+ifloat: 1
 Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
 float: 1
 ifloat: 1
@@ -92,6 +352,22 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+double: 1
+idouble: 1
 
 # catan
 Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
@@ -1544,8 +1820,16 @@ Function: "atanh":
 ildouble: 2
 ldouble: 1
 
+Function: Real part of "cacos":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
 Function: Imaginary part of "cacos":
+double: 2
 float: 1
+idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
@@ -1575,7 +1859,9 @@ ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "casin":
+double: 2
 float: 1
+idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 269dca6d03..867e8dd41f 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -41,13 +41,151 @@ ildouble: 1
 ldouble: 1
 
 # cacos
+Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
 float: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
 
 # cacosh
+Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+float: 1
+ifloat: 1
 Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
 double: 1
 float: 7
@@ -65,8 +203,78 @@ ldouble: 1
 Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+float: 1
+ifloat: 1
 
 # casin
+Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
 double: 1
 float: 1
@@ -79,8 +287,66 @@ float: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: casin (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
+ildouble: 1
+ldouble: 1
 
 # casinh
+Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
 double: 5
 float: 1
@@ -95,6 +361,12 @@ idouble: 3
 ifloat: 6
 ildouble: 5
 ldouble: 5
+Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
+float: 1
+ifloat: 1
+Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
+float: 1
+ifloat: 1
 Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
 float: 1
 ifloat: 1
@@ -105,6 +377,22 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
+double: 1
+idouble: 1
+Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
+double: 1
+idouble: 1
 
 # catan
 Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
@@ -1498,8 +1786,16 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: Real part of "cacos":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+
 Function: Imaginary part of "cacos":
+double: 2
 float: 1
+idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
@@ -1529,7 +1825,9 @@ ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "casin":
+double: 2
 float: 1
+idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2