about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-19 03:14:36 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-19 03:14:36 +0000
commit4d3a563f2ef4fce5590561162b5dfb6f18872414 (patch)
treeee10b64d387a3f4c38e3479dd5332d9906ac78b3
parentef5d6645960b1ad8b1af244be5d32b3b0d65201d (diff)
downloadglibc-4d3a563f2ef4fce5590561162b5dfb6f18872414.tar.gz
glibc-4d3a563f2ef4fce5590561162b5dfb6f18872414.tar.xz
glibc-4d3a563f2ef4fce5590561162b5dfb6f18872414.zip
Update.
1999-10-18  Ulrich Drepper  <drepper@cygnus.com>

	* scripts/config.sub: Update from latest autoconf version.
	* scripts/config.guess: Likewise.

1999-10-18  Andreas Jaeger  <aj@suse.de>

	* inet/arpa/inet.h: Remove K&R compatibility.
	* math/fenv.h: Likewise.

1999-10-18  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/kernel_sigaction.h (struct
	kernel_sigaction): Remove K&R compatibility.
	* sysdeps/unix/sysv/linux/net/if.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/acct.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/fsuid.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/io.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/kdaemon.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/klog.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/mount.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/prctl.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/ptrace.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/quota.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/sendfile.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/swap.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/sysctl.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/sysinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/timex.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sys/vm86.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sys/perm.h: Likewise.

1999-10-18  Andreas Jaeger  <aj@suse.de>

	* iconv/iconv_prog.c (process_block): Save errno value from iconv call.
	Patch by Bruno Haible <haible@ilog.fr> [libc/1402].

1999-10-18  Ulrich Drepper  <drepper@cygnus.com>

	* po/gl.po: New file.

1999-10-18  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Correct
	namespace selection.

1999-10-18  Andreas Schwab  <schwab@suse.de>

	* debug/xtrace.sh: Use TERMINAL_PROG instead of TERM to avoid
	clash with the TERM environment variable.

1999-10-18  Andreas Jaeger  <aj@suse.de>

	* sysdeps/generic/s_cproj.c (__cproj): Fix bug: NaN + i NaN
	returns now NaN + i NaN.
	* sysdeps/generic/s_cprojf.c (__cprojf): Likewise
	* sysdeps/generic/s_cprojl.c (__cprojl): Likewise.

1999-10-18  Andreas Jaeger  <aj@suse.de>

	* include/aio.h: Remove K&R compatiblity.
	* include/alloca.h: Likewise.
	* include/db.h: Likewise.
	* include/dirent.h: Likewise.
	* include/fcntl.h: Likewise.
	* include/fpu_control.h: Likewise.
	* include/glob.h: Likewise.
	* include/grp.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.

	* include/execinfo.h: Add __THROW.

1999-10-18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/mips/Implies: Remove wordsize-32 reference.
	* sysdeps/mips/mips3/Implies: Add it here.
-rw-r--r--ChangeLog80
-rwxr-xr-xdebug/xtrace.sh14
-rw-r--r--iconv/iconv_prog.c4
-rw-r--r--include/aio.h2
-rw-r--r--include/alloca.h2
-rw-r--r--include/db.h5
-rw-r--r--include/dirent.h16
-rw-r--r--include/execinfo.h6
-rw-r--r--include/fcntl.h2
-rw-r--r--include/fpu_control.h2
-rw-r--r--include/glob.h2
-rw-r--r--include/grp.h22
-rw-r--r--inet/arpa/inet.h40
-rw-r--r--math/fenv.h24
-rwxr-xr-xscripts/config.guess96
-rwxr-xr-xscripts/config.sub55
-rw-r--r--sysdeps/generic/s_cproj.c6
-rw-r--r--sysdeps/generic/s_cprojf.c6
-rw-r--r--sysdeps/generic/s_cprojl.c6
-rw-r--r--sysdeps/mips/Implies1
-rw-r--r--sysdeps/mips/mips3/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigaction.h18
-rw-r--r--sysdeps/unix/sysv/linux/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sched.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sys/perm.h8
-rw-r--r--sysdeps/unix/sysv/linux/i386/sys/vm86.h4
-rw-r--r--sysdeps/unix/sysv/linux/kernel_sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/net/if.h10
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/fsuid.h6
-rw-r--r--sysdeps/unix/sysv/linux/sys/io.h8
-rw-r--r--sysdeps/unix/sysv/linux/sys/kdaemon.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/klog.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/mount.h12
-rw-r--r--sysdeps/unix/sysv/linux/sys/prctl.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/ptrace.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/quota.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/sendfile.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/swap.h6
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysctl.h6
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysinfo.h10
-rw-r--r--sysdeps/unix/sysv/linux/sys/timex.h8
44 files changed, 342 insertions, 190 deletions
diff --git a/ChangeLog b/ChangeLog
index d2a94e58d1..f77bc5c987 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,83 @@
+1999-10-18  Ulrich Drepper  <drepper@cygnus.com>
+
+	* scripts/config.sub: Update from latest autoconf version.
+	* scripts/config.guess: Likewise.
+
+1999-10-18  Andreas Jaeger  <aj@suse.de>
+
+	* inet/arpa/inet.h: Remove K&R compatibility.
+	* math/fenv.h: Likewise.
+
+1999-10-18  Andreas Jaeger  <aj@suse.de>
+
+	* sysdeps/unix/sysv/linux/kernel_sigaction.h (struct
+	kernel_sigaction): Remove K&R compatibility.
+	* sysdeps/unix/sysv/linux/net/if.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/acct.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/fsuid.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/io.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/kdaemon.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/klog.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/mount.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/prctl.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/ptrace.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/quota.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/sendfile.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/swap.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/sysctl.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/sysinfo.h: Likewise.
+	* sysdeps/unix/sysv/linux/sys/timex.h: Likewise.
+	* sysdeps/unix/sysv/linux/i386/sys/vm86.h: Likewise.
+	* sysdeps/unix/sysv/linux/i386/sys/perm.h: Likewise.
+
+1999-10-18  Andreas Jaeger  <aj@suse.de>
+
+	* iconv/iconv_prog.c (process_block): Save errno value from iconv call.
+	Patch by Bruno Haible <haible@ilog.fr> [libc/1402].
+
+1999-10-18  Ulrich Drepper  <drepper@cygnus.com>
+
+	* po/gl.po: New file.
+
+1999-10-18  Andreas Schwab  <schwab@suse.de>
+
+	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Correct
+	namespace selection.
+
+1999-10-18  Andreas Schwab  <schwab@suse.de>
+
+	* debug/xtrace.sh: Use TERMINAL_PROG instead of TERM to avoid
+	clash with the TERM environment variable.
+
+1999-10-18  Andreas Jaeger  <aj@suse.de>
+
+	* sysdeps/generic/s_cproj.c (__cproj): Fix bug: NaN + i NaN
+	returns now NaN + i NaN.
+	* sysdeps/generic/s_cprojf.c (__cprojf): Likewise
+	* sysdeps/generic/s_cprojl.c (__cprojl): Likewise.
+
+1999-10-18  Andreas Jaeger  <aj@suse.de>
+
+	* include/aio.h: Remove K&R compatiblity.
+	* include/alloca.h: Likewise.
+	* include/db.h: Likewise.
+	* include/dirent.h: Likewise.
+	* include/fcntl.h: Likewise.
+	* include/fpu_control.h: Likewise.
+	* include/glob.h: Likewise.
+	* include/grp.h: Likewise.
+	* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
+	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
+	* sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.
+	* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
+
+	* include/execinfo.h: Add __THROW.
+
+1999-10-18  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/mips/Implies: Remove wordsize-32 reference.
+	* sysdeps/mips/mips3/Implies: Add it here.
+
 1999-10-17  Ulrich Drepper  <drepper@cygnus.com>
 
 	* elf/elf.h: Add various platform and architecture extensions.
diff --git a/debug/xtrace.sh b/debug/xtrace.sh
index 241ebe8954..7faf85b091 100755
--- a/debug/xtrace.sh
+++ b/debug/xtrace.sh
@@ -78,8 +78,8 @@ format_line() {
 # If the variable COLUMNS is not set do this now.
 COLUMNS=${COLUMNS:-80}
 
-# If `TERM' is not set, set it to `xterm'.
-TERM=${TERM:-xterm}
+# If `TERMINAL_PROG' is not set, set it to `xterm'.
+TERMINAL_PROG=${TERMINAL_PROG:-xterm}
 
 # The data file to process, if any.
 data=
@@ -108,6 +108,12 @@ while test $# -gt 0; do
     shift
     break
     ;;
+  --help)
+    do_help
+    ;;
+  --version)
+    do_version
+    ;;
   --*)
     echo >&2 $"memprof: unrecognized option \`$1'"
     do_usage
@@ -130,7 +136,7 @@ fi
 program=$1
 shift
 if test ! -f "$program"; then
-  echo >2& $"\executable \`$program' not found"
+  echo >2& $"executable \`$program' not found"
   do_usage
 fi
 if test ! -x "$program"; then
@@ -155,7 +161,7 @@ else
   fifo=$(mktemp -u ${TMPDIR:-/tmp}/xprof.XXXXXX)
   mkfifo -m 0600 $fifo || exit 1
   # Now start the program and let it write to the FIFO.
-  $TERM -T "xtrace - $program $*" -e /bin/sh -c "LD_PRELOAD=$pcprofileso PCPROFILE_OUTPUT=$fifo $program $*; read $fifo" &
+  $TERMINAL_PROG -T "xtrace - $program $*" -e /bin/sh -c "LD_PRELOAD=$pcprofileso PCPROFILE_OUTPUT=$fifo $program $*; read $fifo" &
   termpid=$!
   $pcprofiledump $fifo |
   sed 's/this = \([^,]*\).*/\1/' |
diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index c91c76f34f..cd00bbfce7 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -320,6 +320,8 @@ process_block (iconv_t cd, const char *addr, size_t len, FILE *output)
       if (outptr != outbuf)
 	{
 	  /* We have something to write out.  */
+	  int errno_save = errno;
+
 	  if (fwrite (outbuf, 1, outptr - outbuf, output) < outptr - outbuf
 	      || ferror (output))
 	    {
@@ -328,6 +330,8 @@ process_block (iconv_t cd, const char *addr, size_t len, FILE *output)
 conversion stopped due to problem in writing the output"));
 	      return -1;
 	    }
+
+	  errno = errno_save;
 	}
 
       if (n != (size_t) -1)
diff --git a/include/aio.h b/include/aio.h
index c441606794..6f66faadb9 100644
--- a/include/aio.h
+++ b/include/aio.h
@@ -2,5 +2,5 @@
 #include <rt/aio.h>
 
 /* Now define the internal interfaces.  */ 
-extern void __aio_init __P ((__const struct aioinit *__init));
+extern void __aio_init (__const struct aioinit *__init) __THROW;
 #endif
diff --git a/include/alloca.h b/include/alloca.h
index 4dcddb6ae1..cb0b1a5587 100644
--- a/include/alloca.h
+++ b/include/alloca.h
@@ -5,7 +5,7 @@
 #undef	__alloca
 
 /* Now define the internal interfaces.  */
-extern __ptr_t __alloca __P ((size_t __size));
+extern void *__alloca (size_t __size) __THROW;
 
 #ifdef	__GNUC__
 # define __alloca(size)	__builtin_alloca (size)
diff --git a/include/db.h b/include/db.h
index 383cef3831..f945233f0f 100644
--- a/include/db.h
+++ b/include/db.h
@@ -6,8 +6,9 @@
 # include <db2/db.h>
 
 /* Internal interface for NSS.  */
-int __nss_db_open __P((const char *,
-		       DBTYPE, u_int32_t, int, DB_ENV *, DB_INFO *, DB **));
+extern int __nss_db_open (const char *,
+			  DBTYPE, u_int32_t, int, DB_ENV *, DB_INFO *, DB **)
+     __THROW;
 #endif
 
 #endif
diff --git a/include/dirent.h b/include/dirent.h
index f6a3ed8741..b3af4bfa46 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -2,14 +2,14 @@
 # include <dirent/dirent.h>
 
 /* Now define the internal interfaces.  */
-extern DIR *__opendir __P ((__const char *__name));
-extern int __closedir __P ((DIR *__dirp));
-extern struct dirent *__readdir __P ((DIR *__dirp));
-extern struct dirent64 *__readdir64 __P ((DIR *__dirp));
-extern int __readdir_r __P ((DIR *__dirp, struct dirent *__entry,
-			     struct dirent **__result));
-extern __ssize_t __getdents __P ((int __fd, char *__buf, size_t __nbytes))
+extern DIR *__opendir (__const char *__name) __THROW;
+extern int __closedir (DIR *__dirp) __THROW;
+extern struct dirent *__readdir (DIR *__dirp) __THROW;
+extern struct dirent64 *__readdir64 (DIR *__dirp) __THROW;
+extern int __readdir_r (DIR *__dirp, struct dirent *__entry,
+			struct dirent **__result) __THROW;
+extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes)
      internal_function;
-extern __ssize_t __getdents64 __P ((int __fd, char *__buf, size_t __nbytes))
+extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes)
      internal_function;
 #endif
diff --git a/include/execinfo.h b/include/execinfo.h
index 143a9cc4ce..f9f8e36451 100644
--- a/include/execinfo.h
+++ b/include/execinfo.h
@@ -1,11 +1,11 @@
 #ifndef _EXECINFO_H
 #include <debug/execinfo.h>
 
-extern int __backtrace (void **__array, int __size);
+extern int __backtrace (void **__array, int __size) __THROW;
 
-extern char **__backtrace_symbols (void *__const *__array, int __size);
+extern char **__backtrace_symbols (void *__const *__array, int __size)  __THROW;
 
 extern void __backtrace_symbols_fd (void *__const *__array, int __size,
-				    int __fd);
+				    int __fd)  __THROW;
 
 #endif
diff --git a/include/fcntl.h b/include/fcntl.h
index 949c6621fd..9c903f88c6 100644
--- a/include/fcntl.h
+++ b/include/fcntl.h
@@ -2,5 +2,5 @@
 #include <io/fcntl.h>
 
 /* Now define the internal interfaces.  */
-extern int __open64 __P ((__const char *__file, int __oflag, ...));
+extern int __open64 (__const char *__file, int __oflag, ...) __THROW;
 #endif
diff --git a/include/fpu_control.h b/include/fpu_control.h
index a0a4febf9e..7063671aca 100644
--- a/include/fpu_control.h
+++ b/include/fpu_control.h
@@ -1,4 +1,4 @@
 #include_next <fpu_control.h>
 
 /* Called at startup.  It can be used to manipulate fpu control register.  */
-extern void __setfpucw __P ((fpu_control_t));
+extern void __setfpucw (fpu_control_t) __THROW;
diff --git a/include/glob.h b/include/glob.h
index 31b727ee4f..f72f65856b 100644
--- a/include/glob.h
+++ b/include/glob.h
@@ -2,6 +2,6 @@
 #include <posix/glob.h>
 
 /* Now define the internal interfaces.  */
-extern int __glob_pattern_p __P ((__const char *__pattern, int __quote));
+extern int __glob_pattern_p (__const char *__pattern, int __quote) __THROW;
 
 #endif
diff --git a/include/grp.h b/include/grp.h
index 87f6a7bec2..5ee66fc9b4 100644
--- a/include/grp.h
+++ b/include/grp.h
@@ -2,19 +2,19 @@
 #include <grp/grp.h>
 
 /* Now define the internal interfaces.  */
-extern int __getgrent_r __P ((struct group *__resultbuf, char *buffer,
-			      size_t __buflen, struct group **__result));
-extern int __fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
-			       char *buffer, size_t __buflen,
-			       struct group **__result));
+extern int __getgrent_r (struct group *__resultbuf, char *buffer,
+			 size_t __buflen, struct group **__result) __THROW;
+extern int __fgetgrent_r (FILE * __stream, struct group *__resultbuf,
+			  char *buffer, size_t __buflen,
+			  struct group **__result) __THROW;
 
 /* Search for an entry with a matching group ID.  */
-extern int __getgrgid_r __P ((__gid_t __gid, struct group *__resultbuf,
-			      char *__buffer, size_t __buflen,
-			      struct group **__result));
+extern int __getgrgid_r (__gid_t __gid, struct group *__resultbuf,
+			 char *__buffer, size_t __buflen,
+			 struct group **__result) __THROW;
 
 /* Search for an entry with a matching group name.  */
-extern int __getgrnam_r __P ((__const char *__name, struct group *__resultbuf,
-			      char *__buffer, size_t __buflen,
-			      struct group **__result));
+extern int __getgrnam_r (__const char *__name, struct group *__resultbuf,
+			 char *__buffer, size_t __buflen,
+			 struct group **__result) __THROW;
 #endif
diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h
index e34c4726ab..7e0a40f73f 100644
--- a/inet/arpa/inet.h
+++ b/inet/arpa/inet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,67 +28,67 @@ __BEGIN_DECLS
 
 /* Convert Internet host address from numbers-and-dots notation in CP
    into binary data in network byte order.  */
-extern u_int32_t inet_addr __P ((__const char *__cp));
+extern u_int32_t inet_addr (__const char *__cp) __THROW;
 
 /* Convert Internet host address from numbers-and-dots notation in CP
    into binary data and store the result in the structure INP.  */
-extern int inet_aton __P ((__const char *__cp, struct in_addr *__inp));
+extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
 
 /* Return the local host address part of the Internet address in IN.  */
-extern u_int32_t inet_lnaof __P ((struct in_addr __in));
+extern u_int32_t inet_lnaof (struct in_addr __in) __THROW;
 
 /* Make Internet host address in network byte order by combining the
    network number NET with the local address HOST.  */
-extern struct in_addr inet_makeaddr __P ((u_int32_t __net, u_int32_t __host));
+extern struct in_addr inet_makeaddr (u_int32_t __net, u_int32_t __host) __THROW;
 
 /* Format a network number NET into presentation format and place result
    in buffer starting at BUF with length of LEN bytes.  */
-extern char *inet_neta __P ((u_int32_t __net, char *__buf, size_t __len));
+extern char *inet_neta (u_int32_t __net, char *__buf, size_t __len) __THROW;
 
 /* Return network number part of the Internet address IN.  */
-extern u_int32_t inet_netof __P ((struct in_addr __in));
+extern u_int32_t inet_netof (struct in_addr __in) __THROW;
 
 /* Extract the network number in network byte order from the address
    in numbers-and-dots natation starting at CP.  */
-extern u_int32_t inet_network __P ((__const char *__cp));
+extern u_int32_t inet_network (__const char *__cp) __THROW;
 
 /* Convert network number for interface type AF in buffer starting at
    CP to presentation format.  The result will specifiy BITS bits of
    the number.  */
-extern char *inet_net_ntop __P ((int __af, __const void *__cp, int __bits,
-				 char *__buf, size_t __len));
+extern char *inet_net_ntop (int __af, __const void *__cp, int __bits,
+			    char *__buf, size_t __len) __THROW;
 
 /* Convert network number for interface type AF from presentation in
    buffer starting at CP to network format and store result int
    buffer starting at BUF of size LEN.  */
-extern int inet_net_pton __P ((int __af, __const char *__cp,
-			       void *__buf, size_t __len));
+extern int inet_net_pton (int __af, __const char *__cp,
+			  void *__buf, size_t __len) __THROW;
 
 /* Convert Internet number in IN to ASCII representation.  The return value
    is a pointer to an internal array containing the string.  */
-extern char *inet_ntoa __P ((struct in_addr __in));
+extern char *inet_ntoa (struct in_addr __in) __THROW;
 
 /* Convert from presentation format of an Internet number in buffer
    starting at CP to the binary network format and store result for
    interface type AF in buffer starting at BUF.  */
-extern int inet_pton __P ((int __af, __const char *__cp, void *__buf));
+extern int inet_pton (int __af, __const char *__cp, void *__buf) __THROW;
 
 /* Convert a Internet address in binary network format for interface
    type AF in buffer starting at CP to presentation form and place
    result in buffer of length LEN astarting at BUF.  */
-extern __const char *inet_ntop __P ((int __af, __const void *__cp,
-				     char *__buf, size_t __len));
+extern __const char *inet_ntop (int __af, __const void *__cp,
+				char *__buf, size_t __len) __THROW;
 
 /* Convert ASCII representation in hexadecimal form of the Internet
    address to binary form and place result in buffer of length LEN
    starting at BUF.  */
-extern unsigned int inet_nsap_addr __P ((__const char *__cp,
-					 unsigned char *__buf, int __len));
+extern unsigned int inet_nsap_addr (__const char *__cp,
+				    unsigned char *__buf, int __len) __THROW;
 
 /* Convert internet address in binary form in LEN bytes starting at CP
    a presentation form and place result in BUF.  */
-extern char *inet_nsap_ntoa __P ((int __len, __const unsigned char *__cp,
-				  char *__buf));
+extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
+			     char *__buf) __THROW;
 
 __END_DECLS
 
diff --git a/math/fenv.h b/math/fenv.h
index aa524b7a16..8e83246a17 100644
--- a/math/fenv.h
+++ b/math/fenv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -62,52 +62,52 @@ __BEGIN_DECLS
 /* Floating-point exception handling.  */
 
 /* Clear the supported exceptions represented by EXCEPTS.  */
-extern void feclearexcept __P ((int __excepts));
+extern void feclearexcept (int __excepts) __THROW;
 
 /* Store implementation-defined representation of the exception flags
    indicated by EXCEPTS in the object pointed to by FLAGP.  */
-extern void fegetexceptflag __P ((fexcept_t *__flagp, int __excepts));
+extern void fegetexceptflag (fexcept_t *__flagp, int __excepts) __THROW;
 
 /* Raise the supported exceptions represented by EXCEPTS.  */
-extern void feraiseexcept __P ((int __excepts));
+extern void feraiseexcept (int __excepts) __THROW;
 
 /* Set complete status for exceptions indicated by EXCEPTS according to
    the representation in the object pointed to by FLAGP.  */
-extern void fesetexceptflag __P ((__const fexcept_t *__flagp, int __excepts));
+extern void fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;
 
 /* Determine which of subset of the exceptions specified by EXCEPTS are
    currently set.  */
-extern int fetestexcept __P ((int __excepts));
+extern int fetestexcept (int __excepts) __THROW;
 
 
 /* Rounding control.  */
 
 /* Get current rounding direction.  */
-extern int fegetround __P ((void));
+extern int fegetround (void) __THROW;
 
 /* Establish the rounding direction represented by ROUND.  */
-extern int fesetround __P ((int __rounding_direction));
+extern int fesetround (int __rounding_direction) __THROW;
 
 
 /* Floating-point environment.  */
 
 /* Store the current floating-point environment in the object pointed
    to by ENVP.  */
-extern void fegetenv __P ((fenv_t *__envp));
+extern void fegetenv (fenv_t *__envp) __THROW;
 
 /* Save the current environment in the object pointed to by ENVP, clear
    exception flags and install a non-stop mode (if available) for all
    exceptions.  */
-extern int feholdexcept __P ((fenv_t *__envp));
+extern int feholdexcept (fenv_t *__envp) __THROW;
 
 /* Establish the floating-point environment represented by the object
    pointed to by ENVP.  */
-extern void fesetenv __P ((__const fenv_t *__envp));
+extern void fesetenv (__const fenv_t *__envp) __THROW;
 
 /* Save current exceptions in temporary storage, install environment
    represented by object pointed to by ENVP and raise exceptions
    according to saved exceptions.  */
-extern void feupdateenv __P ((__const fenv_t *__envp));
+extern void feupdateenv (__const fenv_t *__envp) __THROW;
 
 __END_DECLS
 
diff --git a/scripts/config.guess b/scripts/config.guess
index 655d0649ad..81ce0c2c89 100755
--- a/scripts/config.guess
+++ b/scripts/config.guess
@@ -24,7 +24,7 @@
 
 # Written by Per Bothner <bothner@cygnus.com>.
 # The master version of this file is at the FSF in /home/gd/gnu/lib.
-# Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
+# Please send patches to <autoconf-patches@gnu.org>.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
@@ -156,6 +156,9 @@ EOF
     wgrisc:OpenBSD:*:*)
 	echo mipsel-unknown-openbsd${UNAME_RELEASE}
 	exit 0 ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit 0 ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit 0;;
@@ -328,15 +331,18 @@ EOF
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
-        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
-	if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-	     -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
 		echo m88k-dg-dgux${UNAME_RELEASE}
-	else
+	    else
 		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
 	fi
-        else echo i586-dg-dgux${UNAME_RELEASE}
-        fi
  	exit 0 ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
@@ -453,7 +459,7 @@ EOF
                   exit (0);
               }
 EOF
-	($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+	(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
 	rm -f $dummy.c $dummy
 	esac
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
@@ -550,7 +556,7 @@ EOF
 	echo t90-cray-unicos${UNAME_RELEASE}
 	exit 0 ;;
     CRAY*T3E:*:*:*)
-	echo t3e-cray-unicosmk${UNAME_RELEASE}
+	echo alpha-cray-unicosmk${UNAME_RELEASE}
 	exit 0 ;;
     CRAY-2:*:*:*)
 	echo cray2-cray-unicos
@@ -588,7 +594,7 @@ EOF
 	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 	exit 0 ;;
     *:NetBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
 	exit 0 ;;
     *:OpenBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
@@ -618,12 +624,6 @@ EOF
 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	exit 0 ;;
     *:Linux:*:*)
-	# uname on the ARM produces all sorts of strangeness, and we need to
-	# filter it out.
-	case "$UNAME_MACHINE" in
-	  armv*)		      UNAME_MACHINE=$UNAME_MACHINE ;;
-	  arm* | sa110*)	      UNAME_MACHINE="arm" ;;
-	esac
 
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
@@ -636,12 +636,39 @@ EOF
 				    s/ .*//
 				    p'`
         case "$ld_supported_emulations" in
-	  i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
-	  i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
-	  sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-	  armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-	  m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
-	  elf32ppc | elf32ppclinux)
+	    *ia64)
+		echo "${UNAME_MACHINE}-unknown-linux"
+		exit 0
+		;;
+	  i?86linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit 0
+		;;
+	  i?86coff)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit 0
+		;;
+	  sparclinux)
+		echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+		exit 0
+		;;
+	  armlinux)
+		echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+		exit 0
+		;;
+	  elf32arm*)
+		echo "${UNAME_MACHINE}-unknown-linux-gnu"
+		exit 0
+		;;
+	  armelf_linux*)
+		echo "${UNAME_MACHINE}-unknown-linux-gnu"
+		exit 0
+		;;
+	  m68klinux)
+		echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
+		exit 0
+		;;
+	  elf32ppc)
 		# Determine Lib Version
 		cat >$dummy.c <<EOF
 #include <features.h>
@@ -670,7 +697,9 @@ EOF
 			fi
 		fi	
 		rm -f $dummy.c $dummy
-		echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
+		echo powerpc-unknown-linux-gnu${LIBC}
+		exit 0
+		;;
 	esac
 
 	if test "${UNAME_MACHINE}" = "alpha" ; then
@@ -797,19 +826,21 @@ EOF
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
 	exit 0 ;;
     i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
 	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
 	fi
 	exit 0 ;;
     i?86:*:5:7*)
-	UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-	(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-	(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) && UNAME_MACHINE=i586
-	(/bin/uname -X|egrep '^Machine.*Pent.*II' >/dev/null) && UNAME_MACHINE=i686
-	(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) && UNAME_MACHINE=i585
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
+        # Fixed at (any) Pentium or better
+        UNAME_MACHINE=i586
+        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
+	    echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
+	else
+	    echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+	fi
 	exit 0 ;;
     i?86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
@@ -943,6 +974,9 @@ EOF
     *:Rhapsody:*:*)
 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
 	exit 0 ;;
+    *:QNX:*:4*)
+	echo i386-qnx-qnx${UNAME_VERSION}
+	exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
diff --git a/scripts/config.sub b/scripts/config.sub
index 1f5eb5ef01..28426bb8fa 100755
--- a/scripts/config.sub
+++ b/scripts/config.sub
@@ -105,7 +105,7 @@ case $os in
 	-scout)
 		;;
 	-wrs)
-		os=vxworks
+		os=-vxworks
 		basic_machine=$1
 		;;
 	-hiux*)
@@ -156,27 +156,33 @@ case $os in
 	-psos*)
 		os=-psos
 		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
 esac
 
 # Decode aliases for certain CPU-COMPANY combinations.
 case $basic_machine in
 	# Recognize the basic CPU types without company name.
 	# Some are omitted here because they have special meanings below.
-	tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+	tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
 		| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
 		| 580 | i960 | h8300 \
 		| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
-		| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
+		| alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
 		| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
 		| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
 		| mips64orion | mips64orionel | mipstx39 | mipstx39el \
 		| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
-		| mips64vr5000 | miprs64vr5000el \
-	        | m88110 | m680[012346]0 | m683?2 | m68360 | m5200 | z8k | v70 \
-		| sparc | sparclet | sparclite | sparc64 | sparc86x | sparcv9 \
-		| thumb | v850 | c4x | d10v | h8500 | w65)
+		| mips64vr5000 | miprs64vr5000el | mcore \
+		| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
+		| thumb | d10v | fr30)
 		basic_machine=$basic_machine-unknown
 		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
+		;;
+
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
@@ -189,23 +195,24 @@ case $basic_machine in
 		exit 1
 		;;
 	# Recognize the basic CPU types with company name.
-	vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
+	# FIXME: clean up the formatting here.
+	vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
 	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
 	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
 	      | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
 	      | xmp-* | ymp-* \
 	      | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
-	      | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
+	      | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
 	      | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
 	      | clipper-* | orion-* \
 	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
 	      | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
 	      | mips64el-* | mips64orion-* | mips64orionel-* \
 	      | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
-	      | mipstx39-* | mipstx39el-* \
-	      | f301-* | arm*-* | t3e-* \
+	      | mipstx39-* | mipstx39el-* | mcore-* \
+	      | f301-* | armv*-* | t3e-* \
 	      | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
-	      | thumb-* | v850-* | d30v-* | tic30-* | c30-* )
+	      | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
 		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
@@ -423,7 +430,6 @@ case $basic_machine in
 		;;
 	i370-ibm* | ibm*)
 		basic_machine=i370-ibm
-		os=-mvs
 		;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
 	i[34567]86v32)
@@ -458,6 +464,9 @@ case $basic_machine in
 		basic_machine=i386-unknown
 		os=-mingw32
 		;;
+	i386-qnx | qnx)
+		basic_machine=i386-qnx
+		;;
 	iris | iris4d)
 		basic_machine=mips-sgi
 		case $os in
@@ -486,7 +495,7 @@ case $basic_machine in
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
-	*mint | *MiNT)
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
 		basic_machine=m68k-atari
 		os=-mint
 		;;
@@ -512,6 +521,10 @@ case $basic_machine in
 		basic_machine=i386-unknown
 		os=-msdos
 		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
 	ncr3000)
 		basic_machine=i486-ncr
 		os=-sysv4
@@ -521,7 +534,7 @@ case $basic_machine in
 		os=-netbsd
 		;;
 	netwinder)
-		basic_machine=armv4l-corel
+		basic_machine=armv4l-rebel
 		os=-linux
 		;;
 	news | news700 | news800 | news900)
@@ -905,7 +918,7 @@ case $os in
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -rhapsody* | -openstep* | -oskit*)
+	      | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
@@ -924,6 +937,9 @@ case $os in
 	-sunos6*)
 		os=`echo $os | sed -e 's|sunos6|solaris3|'`
 		;;
+	-opened*)
+		os=-openedition
+		;;
 	-osfrose*)
 		os=-osfrose
 		;;
@@ -961,6 +977,9 @@ case $os in
 	-oss*)
 		os=-sysv3
 		;;
+        -qnx)
+		os=-qnx4
+		;;
 	-svr4)
 		os=-sysv4
 		;;
@@ -1010,7 +1029,7 @@ case $basic_machine in
 	*-acorn)
 		os=-riscix1.2
 		;;
-	arm*-corel)
+	arm*-rebel)
 		os=-linux
 		;;
 	arm*-semi)
@@ -1184,7 +1203,7 @@ case $basic_machine in
 			-genix*)
 				vendor=ns
 				;;
-			-mvs*)
+			-mvs* | -opened*)
 				vendor=ibm
 				;;
 			-ptx*)
diff --git a/sysdeps/generic/s_cproj.c b/sysdeps/generic/s_cproj.c
index fb50bb5a88..f126bbe055 100644
--- a/sysdeps/generic/s_cproj.c
+++ b/sysdeps/generic/s_cproj.c
@@ -1,5 +1,5 @@
 /* Compute projection of complex double value to Riemann sphere.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -27,7 +27,9 @@ __cproj (__complex__ double x)
 {
   __complex__ double res;
 
-  if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+  if (isnan (__real__ x) && isnan (__imag__ x))
+    return x;
+  else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
     {
       __real__ res = INFINITY;
       __imag__ res = __copysign (0.0, __imag__ x);
diff --git a/sysdeps/generic/s_cprojf.c b/sysdeps/generic/s_cprojf.c
index b90590835c..6ec8b66001 100644
--- a/sysdeps/generic/s_cprojf.c
+++ b/sysdeps/generic/s_cprojf.c
@@ -1,5 +1,5 @@
 /* Compute projection of complex float value to Riemann sphere.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -27,7 +27,9 @@ __cprojf (__complex__ float x)
 {
   __complex__ float res;
 
-  if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+  if (isnan (__real__ x) && isnan (__imag__ x))
+    return x;
+  else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
     {
       __real__ res = INFINITY;
       __imag__ res = __copysignf (0.0, __imag__ x);
diff --git a/sysdeps/generic/s_cprojl.c b/sysdeps/generic/s_cprojl.c
index 13da4b417d..cac0407926 100644
--- a/sysdeps/generic/s_cprojl.c
+++ b/sysdeps/generic/s_cprojl.c
@@ -1,5 +1,5 @@
 /* Compute projection of complex long double value to Riemann sphere.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -27,7 +27,9 @@ __cprojl (__complex__ long double x)
 {
   __complex__ long double res;
 
-  if (!isfinite (__real__ x) || !isfinite (__imag__ x))
+  if (isnan (__real__ x) && isnan (__imag__ x))
+    return x;
+  else if (!isfinite (__real__ x) || !isfinite (__imag__ x))
     {
       __real__ res = INFINITY;
       __imag__ res = __copysignl (0.0, __imag__ x);
diff --git a/sysdeps/mips/Implies b/sysdeps/mips/Implies
index 9f60963329..8c18cb3034 100644
--- a/sysdeps/mips/Implies
+++ b/sysdeps/mips/Implies
@@ -1,4 +1,3 @@
-wordsize-32
 # MIPS uses IEEE 754 floating point.
 ieee754/flt-32
 ieee754/dbl-64
diff --git a/sysdeps/mips/mips3/Implies b/sysdeps/mips/mips3/Implies
new file mode 100644
index 0000000000..39a34c5f57
--- /dev/null
+++ b/sysdeps/mips/mips3/Implies
@@ -0,0 +1 @@
+wordsize-32
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
index 7a586be7c9..be04235981 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
@@ -49,19 +49,21 @@ struct sigaction
 
 /* Bits in `sa_flags'.  */
 #define	SA_NOCLDSTOP  0x00000004 /* Don't send SIGCHLD when children stop.  */
-#define SA_SIGINFO    0x00000040 /* Invoke signal-catching function with three
-				    arguments instead of one. */
-#ifdef __USE_MISC
+#define SA_SIGINFO    0x00000040 /* Invoke signal-catching function with
+				    three arguments instead of one.  */
+#if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 # define SA_RESTART   0x00000002 /* Restart syscall on signal return.  */
-# define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
-# define SA_NOMASK    0x00000008 /* Don't automatically block the signal
+# define SA_NODEFER   0x00000008 /* Don't automatically block the signal
 				    when its handler is being executed.  */
-# define SA_ONESHOT   0x00000010 /* Reset to SIG_DFL on entry to handler.  */
+# define SA_RESETHAND 0x00000010 /* Reset to SIG_DFL on entry to handler.  */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
 
 /* Some aliases for the SA_ constants.  */
-# define SA_NODEFER   SA_NOMASK
-# define SA_RESETHAND SA_ONESHOT
+# define SA_NOMASK    SA_NODEFER
+# define SA_ONESHOT   SA_RESETHAND
 # define SA_STACK     SA_ONSTACK
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/bits/errno.h b/sysdeps/unix/sysv/linux/bits/errno.h
index c5b4b43365..697077324e 100644
--- a/sysdeps/unix/sysv/linux/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/bits/errno.h
@@ -36,7 +36,7 @@
 extern int errno;
 
 /* Function to get address of global `errno' variable.  */
-extern int *__errno_location __P ((void)) __attribute__ ((__const__));
+extern int *__errno_location (void) __attribute__ ((__const__)) __THROW;
 
 #  if defined _LIBC
 /* We wouldn't need a special macro anymore but it is history.  */
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index 7e3c40eb4e..4cdead4dbe 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -53,8 +53,8 @@ __BEGIN_DECLS
 
 /* Clone current process.  */
 #ifdef __USE_MISC
-extern int clone __P ((int (*__fn) (void *__arg), void *__child_stack,
-		       int __flags, void *__arg));
+extern int clone (int (*__fn) (void *__arg), void *__child_stack,
+		  int __flags, void *__arg) __THROW;
 #endif
 
 __END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h
index c8682f45e7..39ef8eaae4 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo.h
@@ -257,7 +257,7 @@ typedef struct sigevent
 
 	struct
 	  {
-	    void (*_function) __PMT ((sigval_t)); /* Function to start.  */
+	    void (*_function) (sigval_t);	  /* Function to start.  */
 	    void *_attribute;			  /* Really pthread_attr_t.  */
 	  } _sigev_thread;
       } _sigev_un;
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index f93e7f4eeb..c861387998 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -244,8 +244,8 @@ struct cmsghdr
 			 + CMSG_ALIGN (sizeof (struct cmsghdr)))
 #define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
 
-extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
-					   struct cmsghdr *__cmsg));
+extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
+				      struct cmsghdr *__cmsg) __THROW;
 #ifdef __USE_EXTERN_INLINES
 # ifndef _EXTERN_INLINE
 #  define _EXTERN_INLINE extern __inline
diff --git a/sysdeps/unix/sysv/linux/i386/sys/perm.h b/sysdeps/unix/sysv/linux/i386/sys/perm.h
index 52edf70b39..c54ca9ab64 100644
--- a/sysdeps/unix/sysv/linux/i386/sys/perm.h
+++ b/sysdeps/unix/sysv/linux/i386/sys/perm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,12 +24,12 @@
 __BEGIN_DECLS
 
 /* Set port input/output permissions.  */
-extern int ioperm __P ((unsigned long int __from, unsigned long int __num,
-			int __turn_on));
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+		   int __turn_on) __THROW;
 
 
 /* Change I/O privilege level.  */
-extern int iopl __P ((int __level));
+extern int iopl (int __level) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/i386/sys/vm86.h b/sysdeps/unix/sysv/linux/i386/sys/vm86.h
index 0287b5efc4..044fc66ea6 100644
--- a/sysdeps/unix/sysv/linux/i386/sys/vm86.h
+++ b/sysdeps/unix/sysv/linux/i386/sys/vm86.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@
 __BEGIN_DECLS
 
 /* Enter virtual 8086 mode.  */
-extern int vm86 __P ((struct vm86_struct *__info));
+extern int vm86 (struct vm86_struct *__info) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/kernel_sigaction.h b/sysdeps/unix/sysv/linux/kernel_sigaction.h
index 1cbe0a1bd8..d005cbce98 100644
--- a/sysdeps/unix/sysv/linux/kernel_sigaction.h
+++ b/sysdeps/unix/sysv/linux/kernel_sigaction.h
@@ -6,7 +6,7 @@ struct old_kernel_sigaction {
 	__sighandler_t k_sa_handler;
 	unsigned long sa_mask;
 	unsigned long sa_flags;
-	void (*sa_restorer) __PMT ((void));
+	void (*sa_restorer) (void);
 };
 
 /* This is the sigaction structure from the Linux 2.1.68 kernel.  */
@@ -14,6 +14,6 @@ struct old_kernel_sigaction {
 struct kernel_sigaction {
 	__sighandler_t k_sa_handler;
 	unsigned long sa_flags;
-	void (*sa_restorer) __PMT ((void));
+	void (*sa_restorer) (void);
 	sigset_t sa_mask;
 };
diff --git a/sysdeps/unix/sysv/linux/net/if.h b/sysdeps/unix/sysv/linux/net/if.h
index 3591dded7f..9119fc0cc7 100644
--- a/sysdeps/unix/sysv/linux/net/if.h
+++ b/sysdeps/unix/sysv/linux/net/if.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -169,8 +169,8 @@ __BEGIN_DECLS
 
 /* Convert an interface name to an index, and vice versa.  */
 
-extern unsigned int if_nametoindex __P ((__const char *__ifname));
-extern char *if_indextoname __P ((unsigned int __ifindex, char *__ifname));
+extern unsigned int if_nametoindex (__const char *__ifname) __THROW;
+extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __THROW;
 
 /* Return a list of all interfaces and their indices.  */
 
@@ -180,11 +180,11 @@ struct if_nameindex
     char *if_name;		/* null terminated name: "eth0", ... */
   };
 
-extern struct if_nameindex *if_nameindex __P ((void));
+extern struct if_nameindex *if_nameindex (void) __THROW;
 
 /* Free the data returned from if_nameindex.  */
 
-extern void if_freenameindex __P ((struct if_nameindex *__ptr));
+extern void if_freenameindex (struct if_nameindex *__ptr) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h
index bc203a2d11..545a21cc96 100644
--- a/sysdeps/unix/sysv/linux/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/sys/acct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -70,7 +70,7 @@ enum
 
 
 /* Switch process accounting on and off.  */
-extern int acct __P ((__const char *__filename));
+extern int acct (__const char *__filename) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/fsuid.h b/sysdeps/unix/sysv/linux/sys/fsuid.h
index cb8915a52e..6572472f3b 100644
--- a/sysdeps/unix/sysv/linux/sys/fsuid.h
+++ b/sysdeps/unix/sysv/linux/sys/fsuid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -26,10 +26,10 @@ __BEGIN_DECLS
 
 /* Change uid used for file access control to UID, without affecting
    other privileges (such as who can send signals at the process).  */
-extern int setfsuid __P ((__uid_t __uid));
+extern int setfsuid (__uid_t __uid) __THROW;
 
 /* Ditto for group id. */
-extern int setfsgid __P ((__gid_t __gid));
+extern int setfsgid (__gid_t __gid) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/io.h b/sysdeps/unix/sysv/linux/sys/io.h
index 75bbae194a..a15e812d6e 100644
--- a/sysdeps/unix/sysv/linux/sys/io.h
+++ b/sysdeps/unix/sysv/linux/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -33,13 +33,13 @@ __BEGIN_DECLS
    Portability note: not all Linux platforms support this call.  Most
    platforms based on the PC I/O architecture probably will, however.
    E.g., Linux/Alpha for Alpha PCs supports this.  */
-extern int ioperm __P ((unsigned long int __from, unsigned long int __num,
-			int __turn_on));
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+		   int __turn_on) __THROW;
 
 /* Set the I/O privilege level to LEVEL.  If LEVEL>3, permission to
    access any I/O port is granted.  This call requires root
    privileges. */
-extern int iopl __P ((int __level));
+extern int iopl (int __level) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/kdaemon.h b/sysdeps/unix/sysv/linux/sys/kdaemon.h
index d59fe2bc35..b52e798e72 100644
--- a/sysdeps/unix/sysv/linux/sys/kdaemon.h
+++ b/sysdeps/unix/sysv/linux/sys/kdaemon.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,7 @@
 __BEGIN_DECLS
 
 /* Start, flush, or tune the kernel's buffer flushing daemon.  */
-extern int bdflush __P ((int __func, long int __data));
+extern int bdflush (int __func, long int __data) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/klog.h b/sysdeps/unix/sysv/linux/sys/klog.h
index 62243e9ecf..3c92d31e37 100644
--- a/sysdeps/unix/sysv/linux/sys/klog.h
+++ b/sysdeps/unix/sysv/linux/sys/klog.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@ __BEGIN_DECLS
    the kernel's syslog system call, but that name is easily confused
    with the user-level syslog facility, which is something completely
    different.  */
-extern int klogctl __P ((int __type, char *__bufp, int __len));
+extern int klogctl (int __type, char *__bufp, int __len) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
index 862c1f0407..ae0ed2b5d2 100644
--- a/sysdeps/unix/sysv/linux/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/sys/mount.h
@@ -1,5 +1,5 @@
 /* Header file for mounting/unmount Linux filesystems.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -93,15 +93,15 @@ enum
 __BEGIN_DECLS
 
 /* Mount a filesystem.  */
-extern int mount __P ((__const char *__special_file, __const char *__dir,
-		       __const char *__fstype, unsigned long int __rwflag,
-		       __const void *__data));
+extern int mount (__const char *__special_file, __const char *__dir,
+		  __const char *__fstype, unsigned long int __rwflag,
+		  __const void *__data) __THROW;
 
 /* Unmount a filesystem.  */
-extern int umount __P ((__const char *__special_file));
+extern int umount (__const char *__special_file) __THROW;
 
 /* Unmount a filesystem.  Force unmounting if FLAGS is set to MNT_FORCE.  */
-extern int umount2 __P ((__const char *__special_file, int __flags));
+extern int umount2 (__const char *__special_file, int __flags) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h
index b5b4412fc4..7274f16070 100644
--- a/sysdeps/unix/sysv/linux/sys/prctl.h
+++ b/sysdeps/unix/sysv/linux/sys/prctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
 __BEGIN_DECLS
 
 /* Control process execution.  */
-extern int prctl __P ((int __option, ...));
+extern int prctl (int __option, ...) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
index 5b670668bf..2b95359720 100644
--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -1,5 +1,5 @@
 /* `ptrace' debugger support interface.  Linux version.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -112,7 +112,7 @@ enum __ptrace_request
    appear (those that are used for the particular request) as:
      pid_t PID, void *ADDR, int DATA, void *ADDR2
    after REQUEST.  */
-extern long int ptrace __P ((enum __ptrace_request __request, ...));
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h
index c6963553b5..a8baf40a91 100644
--- a/sysdeps/unix/sysv/linux/sys/quota.h
+++ b/sysdeps/unix/sysv/linux/sys/quota.h
@@ -150,8 +150,8 @@ struct dqstats
 
 __BEGIN_DECLS
 
-extern int quotactl __P ((int __cmd, const char *__special, int __id,
-			  caddr_t __addr));
+extern int quotactl (int __cmd, const char *__special, int __id,
+		     caddr_t __addr) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/sendfile.h b/sysdeps/unix/sysv/linux/sys/sendfile.h
index 3b2ad2b6ef..3685ea36a3 100644
--- a/sysdeps/unix/sysv/linux/sys/sendfile.h
+++ b/sysdeps/unix/sysv/linux/sys/sendfile.h
@@ -30,8 +30,8 @@ __BEGIN_DECLS
 
 /* Send COUNT bytes from file associated with IN_FD starting at OFFSET to
    descriptor OUT_FD.  */
-extern ssize_t sendfile __P ((int __out_fd, int __in_fd, off_t *offset,
-			      size_t __count));
+extern ssize_t sendfile (int __out_fd, int __in_fd, off_t *offset,
+			 size_t __count) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/swap.h b/sysdeps/unix/sysv/linux/sys/swap.h
index e84c365206..efe318ab1f 100644
--- a/sysdeps/unix/sysv/linux/sys/swap.h
+++ b/sysdeps/unix/sysv/linux/sys/swap.h
@@ -1,5 +1,5 @@
 /* Calls to enable and disable swapping on specified locations.  Linux version.
-   Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -33,10 +33,10 @@ __BEGIN_DECLS
 
 /* Make the block special device PATH available to the system for swapping.
    This call is restricted to the super-user.  */
-extern int swapon __P ((__const char *__path, int __flags));
+extern int swapon (__const char *__path, int __flags) __THROW;
 
 /* Stop using block special device PATH for swapping.  */
-extern int swapoff __P ((__const char *__path));
+extern int swapoff (__const char *__path) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/sysctl.h b/sysdeps/unix/sysv/linux/sys/sysctl.h
index a0ea92ef66..08917fe2f4 100644
--- a/sysdeps/unix/sysv/linux/sys/sysctl.h
+++ b/sysdeps/unix/sysv/linux/sys/sysctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,8 +28,8 @@ __BEGIN_DECLS
 #include <linux/sysctl.h>
 
 /* Read or write system parameters.  */
-extern int sysctl __P ((int *__name, int __nlen, void *__oldval,
-			size_t *__oldlenp, void *__newval, size_t __newlen));
+extern int sysctl (int *__name, int __nlen, void *__oldval,
+		   size_t *__oldlenp, void *__newval, size_t __newlen) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/sysinfo.h b/sysdeps/unix/sysv/linux/sys/sysinfo.h
index 2c17cf2a69..2f2b4dfbce 100644
--- a/sysdeps/unix/sysv/linux/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/sys/sysinfo.h
@@ -27,21 +27,21 @@
 __BEGIN_DECLS
 
 /* Returns information on overall system statistics.  */
-extern int sysinfo __P ((struct sysinfo *__info));
+extern int sysinfo (struct sysinfo *__info) __THROW;
 
 
 /* Return number of configured processors.  */
-extern int get_nprocs_conf __P ((void));
+extern int get_nprocs_conf (void) __THROW;
 
 /* Return number of available processors.  */
-extern int get_nprocs __P ((void));
+extern int get_nprocs (void) __THROW;
 
 
 /* Return number of physical pages of memory in the system.  */
-extern int get_phys_pages __P ((void));
+extern int get_phys_pages (void) __THROW;
 
 /* Return number of available physical pages of memory in the system.  */
-extern int get_avphys_pages __P ((void));
+extern int get_avphys_pages (void) __THROW;
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/sys/timex.h b/sysdeps/unix/sysv/linux/sys/timex.h
index 900341e545..3c84c3c2e2 100644
--- a/sysdeps/unix/sysv/linux/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/sys/timex.h
@@ -116,11 +116,11 @@ struct timex
 
 __BEGIN_DECLS
 
-extern int __adjtimex __P ((struct timex *__ntx));
-extern int adjtimex __P ((struct timex *__ntx));
+extern int __adjtimex (struct timex *__ntx) __THROW;
+extern int adjtimex (struct timex *__ntx) __THROW;
 
-extern int ntp_gettime __P ((struct ntptimeval *__ntv));
-extern int ntp_adjtime __P ((struct timex *__tntx));
+extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;
+extern int ntp_adjtime (struct timex *__tntx) __THROW;
 
 __END_DECLS