summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-09-14 04:41:35 +0000
committerUlrich Drepper <drepper@redhat.com>2004-09-14 04:41:35 +0000
commit79937577d1e3e01b3fcc618366a9d7f78feed272 (patch)
treecd3243a5aa829f2a9d5be050460c35b631901e0b
parent61a807d07cd37b7e14fd382a9dd7740233f7d10b (diff)
downloadglibc-79937577d1e3e01b3fcc618366a9d7f78feed272.tar.gz
glibc-79937577d1e3e01b3fcc618366a9d7f78feed272.tar.xz
glibc-79937577d1e3e01b3fcc618366a9d7f78feed272.zip
Update.
2004-09-13  Ulrich Drepper  <drepper@redhat.com>

	* misc/sys/cdefs.h: Restore old definition of __P.
	* csu/munch.awk: Remove uses of __P and __PMT.
	* gmon/gmon.c: Likewise.
	* hesiod/hesiod.h: Likewise.
	* include/stdio.h: Likewise.
	* io/fts.c: Likewise.
	* libio/genops.c: Likewise.
	* libio/libioP.h: Likewise.
	* libio/fileops.c: Likewise.
	* libio/iolibio.h: Likewise.
	* libio/libio.h: Likewise.
	* libio/memstream.c: Likewise.
	* libio/oldfileops.c: Likewise.
	* libio/oldstdfiles.c: Likewise.
	* libio/iopopen.c: Likewise.
	* libio/vsnprintf.c: Likewise.
	* libio/vswprintf.c: Likewise.
	* libio/wgenops.c: Likewise.
	* libio/oldiopopen.c: Likewise.
	* locale/programs/xmalloc.c: Likewise.
	* locale/programs/xstrdup.c: Likewise.
	* malloc/mtrace.c: Likewise.
	* misc/getttyent.c: Likewise.
	* misc/getusershell.c: Likewise.
	* nis/rpcsvc/ypupd.h: Likewise.
	* posix/fnmatch.h: Likewise.
	* posix/glob.h: Likewise.
	* resolv/arpa/nameser.h: Likewise.
	* resolv/gethnamaddr.c: Likewise.
	* resolv/resolv.h: Likewise.
	* resolv/inet_net_ntop.c: Likewise.
	* resolv/inet_net_pton.c: Likewise.
	* resolv/res_init.c: Likewise.
	* resolv/nss_dns/dns-network.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.
	* stdio-common/reg-printf.c: Likewise.
	* sysdeps/generic/chflags.c: Likewise.
	* sysdeps/generic/fchflags.c: Likewise.
	* sysdeps/generic/glob.c: Likewise.
	* sysdeps/generic/printf_fphex.c: Likewise.
	* sysdeps/generic/memcmp.c: Likewise.
	* sysdeps/generic/memcopy.h: Likewise.
	* sysdeps/generic/morecore.c: Likewise.
	* sysdeps/generic/sstk.c: Likewise.
	* sysdeps/posix/sigvec.c: Likewise.
	* sysdeps/posix/ttyname_r.c: Likewise.
	* sysdeps/standalone/arm/bits/errno.h: Likewise.
	* sysdeps/standalone/standalone.h: Likewise.
	* sysdeps/standalone/i386/force_cpu386/brdinit.c: Likewise.
	* sysdeps/standalone/i386/force_cpu386/_exit.c: Likewise.
	* sysdeps/unix/arm/start.c: Likewise.
	* sysdeps/unix/bsd/sigaction.c: Likewise.
	* sysdeps/unix/bsd/sun/m68k/sigtramp.c: Likewise.
	* sysdeps/unix/bsd/sun/sparc/sigtramp.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/wait4.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/sysconf.c: Likewise.
	* sysdeps/unix/sparc/start.c: Likewise.
	* sysdeps/unix/sysv/getdents.c: Likewise.
	* sysdeps/unix/sysv/irix4/fpathconf.c: Likewise.
	* sysdeps/unix/sysv/irix4/getgroups.c: Likewise.
	* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
	* sysdeps/unix/sysv/irix4/getrusage.c: Likewise.
	* sysdeps/unix/sysv/irix4/pathconf.c: Likewise.
	* sysdeps/unix/sysv/irix4/setgroups.c: Likewise.
	* sysdeps/unix/sysv/irix4/sigtramp.c: Likewise.
	* sysdeps/unix/sysv/irix4/start.c: Likewise.
	* sysdeps/unix/sysv/irix4/sysconf.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/__setpgid.c: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/getgroups.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__getpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/__setpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/getpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/setpgid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/sethostname.c: Likewise.
	* sysdeps/unix/sysv/sysv4/setsid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.
	* sysdeps/unix/sysv/sysv4/waitpid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/getdents.c: Likewise.
	* time/tzset.c: Likewise.
	* time/strftime_l.c: Likewise.
	* time/strptime_l.c: Likewise.
	* crypt/md5.h: Likewise.
-rw-r--r--ChangeLog86
-rwxr-xr-xconfigure167
-rw-r--r--crypt/md5.h29
-rw-r--r--csu/munch.awk2
-rw-r--r--gmon/gmon.c10
-rw-r--r--hesiod/hesiod.h20
-rw-r--r--include/stdio.h12
-rw-r--r--io/fts.c20
-rw-r--r--libio/fileops.c9
-rw-r--r--libio/genops.c6
-rw-r--r--libio/iolibio.h118
-rw-r--r--libio/iopopen.c6
-rw-r--r--libio/libioP.h645
-rw-r--r--libio/memstream.c4
-rw-r--r--libio/oldfileops.c2
-rw-r--r--libio/oldiopopen.c6
-rw-r--r--libio/oldstdfiles.c4
-rw-r--r--libio/vsnprintf.c2
-rw-r--r--libio/vswprintf.c2
-rw-r--r--libio/wgenops.c6
-rw-r--r--locale/programs/xmalloc.c10
-rw-r--r--locale/programs/xstrdup.c6
-rw-r--r--malloc/mtrace.c15
-rw-r--r--misc/getttyent.c4
-rw-r--r--misc/getusershell.c2
-rw-r--r--misc/sys/cdefs.h9
-rw-r--r--nis/rpcsvc/ypupd.h2
-rw-r--r--posix/fnmatch.h19
-rw-r--r--posix/glob.h74
-rw-r--r--resolv/arpa/nameser.h100
-rw-r--r--resolv/gethnamaddr.c6
-rw-r--r--resolv/inet_net_ntop.c4
-rw-r--r--resolv/inet_net_pton.c4
-rw-r--r--resolv/nss_dns/dns-network.c6
-rw-r--r--resolv/res_init.c2
-rw-r--r--resolv/resolv.h140
-rw-r--r--stdio-common/reg-printf.c6
-rw-r--r--stdio-common/vfprintf.c16
-rw-r--r--sysdeps/generic/chflags.c4
-rw-r--r--sysdeps/generic/fchflags.c4
-rw-r--r--sysdeps/generic/glob.c21
-rw-r--r--sysdeps/generic/memcmp.c14
-rw-r--r--sysdeps/generic/memcopy.h10
-rw-r--r--sysdeps/generic/morecore.c4
-rw-r--r--sysdeps/generic/printf_fphex.c4
-rw-r--r--sysdeps/generic/sstk.c4
-rw-r--r--sysdeps/posix/sigvec.c4
-rw-r--r--sysdeps/posix/ttyname_r.c8
-rw-r--r--sysdeps/standalone/arm/bits/errno.h4
-rw-r--r--sysdeps/standalone/i386/force_cpu386/_exit.c4
-rw-r--r--sysdeps/standalone/i386/force_cpu386/brdinit.c4
-rw-r--r--sysdeps/standalone/standalone.h8
-rw-r--r--sysdeps/unix/arm/start.c6
-rw-r--r--sysdeps/unix/bsd/sigaction.c4
-rw-r--r--sysdeps/unix/bsd/sun/m68k/sigtramp.c6
-rw-r--r--sysdeps/unix/bsd/sun/sparc/sigtramp.c10
-rw-r--r--sysdeps/unix/bsd/sun/sunos4/wait4.c6
-rw-r--r--sysdeps/unix/bsd/ultrix4/mips/sigvec.c18
-rw-r--r--sysdeps/unix/bsd/ultrix4/sysconf.c8
-rw-r--r--sysdeps/unix/sparc/start.c8
-rw-r--r--sysdeps/unix/sysv/getdents.c4
-rw-r--r--sysdeps/unix/sysv/irix4/fpathconf.c4
-rw-r--r--sysdeps/unix/sysv/irix4/getgroups.c4
-rw-r--r--sysdeps/unix/sysv/irix4/getpriority.c4
-rw-r--r--sysdeps/unix/sysv/irix4/getrusage.c4
-rw-r--r--sysdeps/unix/sysv/irix4/pathconf.c4
-rw-r--r--sysdeps/unix/sysv/irix4/setgroups.c4
-rw-r--r--sysdeps/unix/sysv/irix4/sigtramp.c17
-rw-r--r--sysdeps/unix/sysv/irix4/start.c6
-rw-r--r--sysdeps/unix/sysv/irix4/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/sco3.2.4/__setpgid.c4
-rw-r--r--sysdeps/unix/sysv/sco3.2.4/getgroups.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/__getpgid.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/__setpgid.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/getpgid.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/sethostname.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/setpgid.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/setsid.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/solaris2/getdents.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/sysv4/waitpid.c8
-rw-r--r--time/strftime_l.c24
-rw-r--r--time/tzset.c8
83 files changed, 887 insertions, 992 deletions
diff --git a/ChangeLog b/ChangeLog
index b8afb420a6..6808615a63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,89 @@
+2004-09-13  Ulrich Drepper  <drepper@redhat.com>
+
+	* misc/sys/cdefs.h: Restore old definition of __P.
+	* csu/munch.awk: Remove uses of __P and __PMT.
+	* gmon/gmon.c: Likewise.
+	* hesiod/hesiod.h: Likewise.
+	* include/stdio.h: Likewise.
+	* io/fts.c: Likewise.
+	* libio/genops.c: Likewise.
+	* libio/libioP.h: Likewise.
+	* libio/fileops.c: Likewise.
+	* libio/iolibio.h: Likewise.
+	* libio/libio.h: Likewise.
+	* libio/memstream.c: Likewise.
+	* libio/oldfileops.c: Likewise.
+	* libio/oldstdfiles.c: Likewise.
+	* libio/iopopen.c: Likewise.
+	* libio/vsnprintf.c: Likewise.
+	* libio/vswprintf.c: Likewise.
+	* libio/wgenops.c: Likewise.
+	* libio/oldiopopen.c: Likewise.
+	* locale/programs/xmalloc.c: Likewise.
+	* locale/programs/xstrdup.c: Likewise.
+	* malloc/mtrace.c: Likewise.
+	* misc/getttyent.c: Likewise.
+	* misc/getusershell.c: Likewise.
+	* nis/rpcsvc/ypupd.h: Likewise.
+	* posix/fnmatch.h: Likewise.
+	* posix/glob.h: Likewise.
+	* resolv/arpa/nameser.h: Likewise.
+	* resolv/gethnamaddr.c: Likewise.
+	* resolv/resolv.h: Likewise.
+	* resolv/inet_net_ntop.c: Likewise.
+	* resolv/inet_net_pton.c: Likewise.
+	* resolv/res_init.c: Likewise.
+	* resolv/nss_dns/dns-network.c: Likewise.
+	* stdio-common/vfprintf.c: Likewise.
+	* stdio-common/reg-printf.c: Likewise.
+	* sysdeps/generic/chflags.c: Likewise.
+	* sysdeps/generic/fchflags.c: Likewise.
+	* sysdeps/generic/glob.c: Likewise.
+	* sysdeps/generic/printf_fphex.c: Likewise.
+	* sysdeps/generic/memcmp.c: Likewise.
+	* sysdeps/generic/memcopy.h: Likewise.
+	* sysdeps/generic/morecore.c: Likewise.
+	* sysdeps/generic/sstk.c: Likewise.
+	* sysdeps/posix/sigvec.c: Likewise.
+	* sysdeps/posix/ttyname_r.c: Likewise.
+	* sysdeps/standalone/arm/bits/errno.h: Likewise.
+	* sysdeps/standalone/standalone.h: Likewise.
+	* sysdeps/standalone/i386/force_cpu386/brdinit.c: Likewise.
+	* sysdeps/standalone/i386/force_cpu386/_exit.c: Likewise.
+	* sysdeps/unix/arm/start.c: Likewise.
+	* sysdeps/unix/bsd/sigaction.c: Likewise.
+	* sysdeps/unix/bsd/sun/m68k/sigtramp.c: Likewise.
+	* sysdeps/unix/bsd/sun/sparc/sigtramp.c: Likewise.
+	* sysdeps/unix/bsd/sun/sunos4/wait4.c: Likewise.
+	* sysdeps/unix/bsd/ultrix4/mips/sigvec.c: Likewise.
+	* sysdeps/unix/bsd/ultrix4/sysconf.c: Likewise.
+	* sysdeps/unix/sparc/start.c: Likewise.
+	* sysdeps/unix/sysv/getdents.c: Likewise.
+	* sysdeps/unix/sysv/irix4/fpathconf.c: Likewise.
+	* sysdeps/unix/sysv/irix4/getgroups.c: Likewise.
+	* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
+	* sysdeps/unix/sysv/irix4/getrusage.c: Likewise.
+	* sysdeps/unix/sysv/irix4/pathconf.c: Likewise.
+	* sysdeps/unix/sysv/irix4/setgroups.c: Likewise.
+	* sysdeps/unix/sysv/irix4/sigtramp.c: Likewise.
+	* sysdeps/unix/sysv/irix4/start.c: Likewise.
+	* sysdeps/unix/sysv/irix4/sysconf.c: Likewise.
+	* sysdeps/unix/sysv/sco3.2.4/__setpgid.c: Likewise.
+	* sysdeps/unix/sysv/sco3.2.4/getgroups.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/__getpgid.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/__setpgid.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/getpgid.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/setpgid.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/sethostname.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/setsid.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/waitpid.c: Likewise.
+	* sysdeps/unix/sysv/sysv4/solaris2/getdents.c: Likewise.
+	* time/tzset.c: Likewise.
+	* time/strftime_l.c: Likewise.
+	* time/strptime_l.c: Likewise.
+	* crypt/md5.h: Likewise.
+
 2004-09-13  Andreas Jaeger  <aj@suse.de>
 
 	* configure.in: Support GCC 4.x.
diff --git a/configure b/configure
index baf02f36c7..a7a2acfc1f 100755
--- a/configure
+++ b/configure
@@ -313,7 +313,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_cc_with_libunwind libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_z_relro libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie fno_unit_at_a_time libc_cv_have_initfini libc_cv_cpp_asm_debuginfo no_whole_archive exceptions LIBGD have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_cc_with_libunwind libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_z_relro libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie fno_unit_at_a_time libc_cv_have_initfini libc_cv_cpp_asm_debuginfo no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -895,7 +895,6 @@ Optional Packages:
   --with-fp               if using floating-point hardware [default=yes]
   --with-binutils=PATH    specify location of binutils (as and ld)
   --with-elf              if using the ELF object format
-  --with-selinux          if building with SELinux support
   --with-xcoff            if using the XCOFF object format
   --without-cvs           if CVS should not be used
   --with-headers=PATH     location of system headers to use (for example
@@ -1486,14 +1485,6 @@ else
   elf=no
 fi;
 
-# Check whether --with-selinux or --without-selinux was given.
-if test "${with_selinux+set}" = set; then
-  withval="$with_selinux"
-  with_selinux=$withval
-else
-  with_selinux=auto
-fi;
-
 # Check whether --with-xcoff or --without-xcoff was given.
 if test "${with_xcoff+set}" = set; then
   withval="$with_xcoff"
@@ -6702,161 +6693,6 @@ echo "$as_me:$LINENO: result: $LIBGD" >&5
 echo "${ECHO_T}$LIBGD" >&6
 
 
-# SELinux detection
-if test x$with_selinux = xno ; then
-  have_selinux=no;
-else
-  # See if we have the SELinux library
-  echo "$as_me:$LINENO: checking for is_selinux_enabled in -lselinux" >&5
-echo $ECHO_N "checking for is_selinux_enabled in -lselinux... $ECHO_C" >&6
-if test "${ac_cv_lib_selinux_is_selinux_enabled+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lselinux  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char is_selinux_enabled ();
-int
-main ()
-{
-is_selinux_enabled ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_selinux_is_selinux_enabled=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_selinux_is_selinux_enabled=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
-echo "${ECHO_T}$ac_cv_lib_selinux_is_selinux_enabled" >&6
-if test $ac_cv_lib_selinux_is_selinux_enabled = yes; then
-  have_selinux=yes
-else
-  have_selinux=no
-fi
-
-  # See if we have the SELinux header with the NSCD permissions in it.
-  if test x$have_selinux = xyes ; then
-    echo "$as_me:$LINENO: checking for NSCD Flask permissions in selinux/av_permissions.h" >&5
-echo $ECHO_N "checking for NSCD Flask permissions in selinux/av_permissions.h... $ECHO_C" >&6
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <selinux/av_permissions.h>
-int
-main ()
-{
-#ifdef NSCD__ADMIN
-		     return 0;
-		     #else
-		     #error NSCD__ADMIN not defined
-		     #endif
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  have_selinux=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-have_selinux=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-    echo "$as_me:$LINENO: result: $have_selinux" >&5
-echo "${ECHO_T}$have_selinux" >&6
-  fi
-
-  if test x$with_selinux = xauto ; then
-    if test x$have_selinux = xno ; then
-      { echo "$as_me:$LINENO: WARNING: Sufficiently new SELinux library not found" >&5
-echo "$as_me: WARNING: Sufficiently new SELinux library not found" >&2;}
-    fi
-  else
-    if test x$have_selinux = xno ; then
-      { { echo "$as_me:$LINENO: error: SELinux explicitly required, and SELinux library not found" >&5
-echo "$as_me: error: SELinux explicitly required, and SELinux library not found" >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-# Check if we're building with SELinux support.
-if test "x$have_selinux" = xyes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SELINUX 1
-_ACEOF
-
-fi
-
-
 
 echo "$as_me:$LINENO: checking for egrep" >&5
 echo $ECHO_N "checking for egrep... $ECHO_C" >&6
@@ -8473,7 +8309,6 @@ s,@libc_cv_cpp_asm_debuginfo@,$libc_cv_cpp_asm_debuginfo,;t t
 s,@no_whole_archive@,$no_whole_archive,;t t
 s,@exceptions@,$exceptions,;t t
 s,@LIBGD@,$LIBGD,;t t
-s,@have_selinux@,$have_selinux,;t t
 s,@EGREP@,$EGREP,;t t
 s,@sizeof_long_double@,$sizeof_long_double,;t t
 s,@libc_cv_gcc_unwind_find_fde@,$libc_cv_gcc_unwind_find_fde,;t t
diff --git a/crypt/md5.h b/crypt/md5.h
index 7fc56ea5ee..35088f29fe 100644
--- a/crypt/md5.h
+++ b/crypt/md5.h
@@ -1,6 +1,6 @@
 /* Declaration of functions and data types used for MD5 sum computing
    library functions.
-   Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997,1999,2000,2001,2004 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
@@ -74,13 +74,6 @@ typedef uintptr_t md5_uintptr;
 typedef unsigned long int md5_uintptr;
 #endif
 
-#undef __P
-#if defined (__STDC__) && __STDC__
-# define __P(x) x
-#else
-# define __P(x) ()
-#endif
-
 /* Structure to save state of computation between the single steps.  */
 struct md5_ctx
 {
@@ -101,21 +94,21 @@ struct md5_ctx
 
 /* Initialize structure containing state of computation.
    (RFC 1321, 3.3: Step 3)  */
-extern void __md5_init_ctx __P ((struct md5_ctx *ctx));
+extern void __md5_init_ctx (struct md5_ctx *ctx) __THROW;
 
 /* Starting with the result of former calls of this function (or the
    initialization function update the context for the next LEN bytes
    starting at BUFFER.
    It is necessary that LEN is a multiple of 64!!! */
-extern void __md5_process_block __P ((const void *buffer, size_t len,
-				      struct md5_ctx *ctx));
+extern void __md5_process_block (const void *buffer, size_t len,
+				 struct md5_ctx *ctx) __THROW;
 
 /* Starting with the result of former calls of this function (or the
    initialization function update the context for the next LEN bytes
    starting at BUFFER.
    It is NOT required that LEN is a multiple of 64.  */
-extern void __md5_process_bytes __P ((const void *buffer, size_t len,
-				      struct md5_ctx *ctx));
+extern void __md5_process_bytes (const void *buffer, size_t len,
+				 struct md5_ctx *ctx) __THROW;
 
 /* Process the remaining bytes in the buffer and put result from CTX
    in first 16 bytes following RESBUF.  The result is always in little
@@ -124,7 +117,7 @@ extern void __md5_process_bytes __P ((const void *buffer, size_t len,
 
    IMPORTANT: On some systems it is required that RESBUF is correctly
    aligned for a 32 bits value.  */
-extern void *__md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
+extern void *__md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) __THROW;
 
 
 /* Put result from CTX in first 16 bytes following RESBUF.  The result is
@@ -133,19 +126,19 @@ extern void *__md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
 
    IMPORTANT: On some systems it is required that RESBUF is correctly
    aligned for a 32 bits value.  */
-extern void *__md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
+extern void *__md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) __THROW;
 
 
 /* Compute MD5 message digest for bytes read from STREAM.  The
    resulting message digest number will be written into the 16 bytes
    beginning at RESBLOCK.  */
-extern int __md5_stream __P ((FILE *stream, void *resblock));
+extern int __md5_stream (FILE *stream, void *resblock) __THROW;
 
 /* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
    result is always in little endian byte order, so that a byte-wise
    output yields to the wanted ASCII representation of the message
    digest.  */
-extern void *__md5_buffer __P ((const char *buffer, size_t len,
-				void *resblock));
+extern void *__md5_buffer (const char *buffer, size_t len,
+			   void *resblock) __THROW;
 
 #endif /* md5.h */
diff --git a/csu/munch.awk b/csu/munch.awk
index 1ed68686c1..9ebcff8ecf 100644
--- a/csu/munch.awk
+++ b/csu/munch.awk
@@ -2,7 +2,7 @@ BEGIN { special = 0 }
 
 /EXTERNS/ { ndirs = split(subdirs, dirs)
 	    for (i = 1; i <= ndirs; ++i)
-	    	printf "extern void __init_%s __P ((int argc, char **argv, char **envp));\n", dirs[i]
+	    	printf "extern void __init_%s (int argc, char **argv, char **envp);\n", dirs[i]
 	    special = 1 }
 /CALLS/ { ndirs = split(subdirs, dirs)
 	  for (i = 1; i <= ndirs; ++i) printf "  __init_%s (argc, argv, envp);\n", dirs[i]
diff --git a/gmon/gmon.c b/gmon/gmon.c
index dd4ee3a79d..575adbcd8b 100644
--- a/gmon/gmon.c
+++ b/gmon/gmon.c
@@ -61,11 +61,11 @@ static int	s_scale;
 
 #define ERR(s) write_not_cancel (STDERR_FILENO, s, sizeof (s) - 1)
 
-void moncontrol __P ((int mode));
-void __moncontrol __P ((int mode));
-static void write_hist __P ((int fd)) internal_function;
-static void write_call_graph __P ((int fd)) internal_function;
-static void write_bb_counts __P ((int fd)) internal_function;
+void moncontrol (int mode);
+void __moncontrol (int mode);
+static void write_hist (int fd) internal_function;
+static void write_call_graph (int fd) internal_function;
+static void write_bb_counts (int fd) internal_function;
 
 /*
  * Control profiling
diff --git a/hesiod/hesiod.h b/hesiod/hesiod.h
index c4711349c1..82fce30764 100644
--- a/hesiod/hesiod.h
+++ b/hesiod/hesiod.h
@@ -26,15 +26,15 @@
 #ifndef _HESIOD_H_INCLUDED
 #define _HESIOD_H_INCLUDED
 
-int		hesiod_init __P((void **context));
-void		hesiod_end __P((void *context));
-char *		hesiod_to_bind __P((void *context, const char *name,
-				    const char *type));
-char **		hesiod_resolve __P((void *context, const char *name,
-				    const char *type));
-void		hesiod_free_list __P((void *context, char **list));
-struct __res_state * __hesiod_res_get __P((void *context));
-void		__hesiod_res_set __P((void *context, struct __res_state *,
-				      void (*)(void *)));
+int		hesiod_init (void **context);
+void		hesiod_end (void *context);
+char *		hesiod_to_bind (void *context, const char *name,
+				const char *type);
+char **		hesiod_resolve (void *context, const char *name,
+				const char *type);
+void		hesiod_free_list (void *context, char **list);
+struct __res_state * __hesiod_res_get (void *context);
+void		__hesiod_res_set (void *context, struct __res_state *,
+				  void (*)(void *));
 
 #endif /*_HESIOD_H_INCLUDED*/
diff --git a/include/stdio.h b/include/stdio.h
index 86eeb1ec36..b871abc15e 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -75,18 +75,18 @@ extern int __asprintf_internal (char **__restrict __ptr,
 #    define __asprintf(ptr, fmt, args...) \
   INTUSE(__asprintf) (ptr, fmt, ##args)
 
-extern _IO_FILE *_IO_new_fopen __P((const char*, const char*));
+extern _IO_FILE *_IO_new_fopen (const char*, const char*);
 #   define fopen(fname, mode) _IO_new_fopen (fname, mode)
-extern _IO_FILE *_IO_new_fdopen __P((int, const char*));
+extern _IO_FILE *_IO_new_fdopen (int, const char*);
 #   define fdopen(fd, mode) _IO_new_fdopen (fd, mode)
-extern int _IO_new_fclose __P((_IO_FILE*));
+extern int _IO_new_fclose (_IO_FILE*);
 #   define fclose(fp) _IO_new_fclose (fp)
-extern int _IO_fputs __P((const char*, _IO_FILE*));
+extern int _IO_fputs (const char*, _IO_FILE*);
 libc_hidden_proto (_IO_fputs)
 #   define fputs(str, fp) _IO_fputs (str, fp)
-extern int _IO_new_fsetpos __P ((_IO_FILE *, const _IO_fpos_t *));
+extern int _IO_new_fsetpos (_IO_FILE *, const _IO_fpos_t *);
 #   define fsetpos(fp, posp) _IO_new_fsetpos (fp, posp)
-extern int _IO_new_fgetpos __P ((_IO_FILE *, _IO_fpos_t *));
+extern int _IO_new_fgetpos (_IO_FILE *, _IO_fpos_t *);
 #   define fgetpos(fp, posp) _IO_new_fgetpos (fp, posp)
 #  endif
 
diff --git a/io/fts.c b/io/fts.c
index 7ce9351b2f..f0df56cc7b 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -53,16 +53,16 @@ static char sccsid[] = "@(#)fts.c	8.6 (Berkeley) 8/14/94";
 #endif
 
 
-static FTSENT	*fts_alloc __P((FTS *, const char *, int)) internal_function;
-static FTSENT	*fts_build __P((FTS *, int)) internal_function;
-static void	 fts_lfree __P((FTSENT *)) internal_function;
-static void	 fts_load __P((FTS *, FTSENT *)) internal_function;
-static size_t	 fts_maxarglen __P((char * const *)) internal_function;
-static void	 fts_padjust __P((FTS *, FTSENT *)) internal_function;
-static int	 fts_palloc __P((FTS *, size_t)) internal_function;
-static FTSENT	*fts_sort __P((FTS *, FTSENT *, int)) internal_function;
-static u_short	 fts_stat __P((FTS *, FTSENT *, int)) internal_function;
-static int      fts_safe_changedir __P((FTS *, FTSENT *, int, const char *))
+static FTSENT	*fts_alloc (FTS *, const char *, int) internal_function;
+static FTSENT	*fts_build (FTS *, int) internal_function;
+static void	 fts_lfree (FTSENT *) internal_function;
+static void	 fts_load (FTS *, FTSENT *) internal_function;
+static size_t	 fts_maxarglen (char * const *) internal_function;
+static void	 fts_padjust (FTS *, FTSENT *) internal_function;
+static int	 fts_palloc (FTS *, size_t) internal_function;
+static FTSENT	*fts_sort (FTS *, FTSENT *, int) internal_function;
+static u_short	 fts_stat (FTS *, FTSENT *, int) internal_function;
+static int      fts_safe_changedir (FTS *, FTSENT *, int, const char *)
      internal_function;
 
 #ifndef MAX
diff --git a/libio/fileops.c b/libio/fileops.c
index 52cd2d2fe3..7d90cbaa2d 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -472,7 +472,7 @@ _IO_file_setbuf_mmap (fp, p, len)
   return result;
 }
 
-static _IO_size_t new_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
+static _IO_size_t new_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
 
 /* Write TO_DO bytes from DATA to FP.
    Then mark FP as having empty buffers. */
@@ -1487,7 +1487,8 @@ _IO_file_xsgetn (fp, data, n)
 }
 INTDEF(_IO_file_xsgetn)
 
-static _IO_size_t _IO_file_xsgetn_mmap __P ((_IO_FILE *, void *, _IO_size_t));
+static _IO_size_t _IO_file_xsgetn_mmap (_IO_FILE *, void *, _IO_size_t)
+     __THROW;
 static _IO_size_t
 _IO_file_xsgetn_mmap (fp, data, n)
      _IO_FILE *fp;
@@ -1546,8 +1547,8 @@ _IO_file_xsgetn_mmap (fp, data, n)
   return s - (char *) data;
 }
 
-static _IO_size_t _IO_file_xsgetn_maybe_mmap __P ((_IO_FILE *, void *,
-						   _IO_size_t));
+static _IO_size_t _IO_file_xsgetn_maybe_mmap (_IO_FILE *, void *, _IO_size_t)
+     __THROW;
 static _IO_size_t
 _IO_file_xsgetn_maybe_mmap (fp, data, n)
      _IO_FILE *fp;
diff --git a/libio/genops.c b/libio/genops.c
index f233f36d8b..741ed77f86 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -115,7 +115,7 @@ INTDEF(_IO_link_in)
 
 /* Return minimum _pos markers
    Assumes the current get area is the main get area. */
-_IO_ssize_t _IO_least_marker __P ((_IO_FILE *fp, char *end_p));
+_IO_ssize_t _IO_least_marker (_IO_FILE *fp, char *end_p);
 
 _IO_ssize_t
 _IO_least_marker (fp, end_p)
@@ -238,7 +238,7 @@ __overflow (f, ch)
 }
 libc_hidden_def (__overflow)
 
-static int save_for_backup __P ((_IO_FILE *fp, char *end_p))
+static int save_for_backup (_IO_FILE *fp, char *end_p)
 #ifdef _LIBC
      internal_function
 #endif
@@ -914,7 +914,7 @@ INTDEF(_IO_flush_all_linebuffered)
 weak_alias (_IO_flush_all_linebuffered, _flushlbf)
 #endif
 
-static void _IO_unbuffer_write __P ((void));
+static void _IO_unbuffer_write (void);
 
 static void
 _IO_unbuffer_write ()
diff --git a/libio/iolibio.h b/libio/iolibio.h
index db71be25c8..4b914fc02e 100644
--- a/libio/iolibio.h
+++ b/libio/iolibio.h
@@ -7,50 +7,50 @@
 extern "C" {
 #endif
 
-extern int _IO_fclose __P((_IO_FILE*));
-extern int _IO_new_fclose __P((_IO_FILE*));
-extern int _IO_old_fclose __P((_IO_FILE*));
-extern _IO_FILE *_IO_fdopen __P((int, const char*));
-extern _IO_FILE *_IO_old_fdopen __P((int, const char*));
-extern _IO_FILE *_IO_new_fdopen __P((int, const char*));
-extern int _IO_fflush __P((_IO_FILE*));
-extern int _IO_fgetpos __P((_IO_FILE*, _IO_fpos_t*));
-extern int _IO_fgetpos64 __P((_IO_FILE*, _IO_fpos64_t*));
-extern char* _IO_fgets __P((char*, int, _IO_FILE*));
-extern _IO_FILE *_IO_fopen __P((const char*, const char*));
-extern _IO_FILE *_IO_old_fopen __P((const char*, const char*));
-extern _IO_FILE *_IO_new_fopen __P((const char*, const char*));
-extern _IO_FILE *_IO_fopen64 __P((const char*, const char*));
-extern _IO_FILE *__fopen_internal __P((const char*, const char*, int));
-extern _IO_FILE *__fopen_maybe_mmap __P((_IO_FILE *));
-extern int _IO_fprintf __P((_IO_FILE*, const char*, ...));
-extern int _IO_fputs __P((const char*, _IO_FILE*));
+extern int _IO_fclose (_IO_FILE*) __THROW;
+extern int _IO_new_fclose (_IO_FILE*) __THROW;
+extern int _IO_old_fclose (_IO_FILE*) __THROW;
+extern _IO_FILE *_IO_fdopen (int, const char*) __THROW;
+extern _IO_FILE *_IO_old_fdopen (int, const char*) __THROW;
+extern _IO_FILE *_IO_new_fdopen (int, const char*) __THROW;
+extern int _IO_fflush (_IO_FILE*) __THROW;
+extern int _IO_fgetpos (_IO_FILE*, _IO_fpos_t*) __THROW;
+extern int _IO_fgetpos64 (_IO_FILE*, _IO_fpos64_t*) __THROW;
+extern char* _IO_fgets (char*, int, _IO_FILE*) __THROW;
+extern _IO_FILE *_IO_fopen (const char*, const char*) __THROW;
+extern _IO_FILE *_IO_old_fopen (const char*, const char*) __THROW;
+extern _IO_FILE *_IO_new_fopen (const char*, const char*) __THROW;
+extern _IO_FILE *_IO_fopen64 (const char*, const char*) __THROW;
+extern _IO_FILE *__fopen_internal (const char*, const char*, int) __THROW;
+extern _IO_FILE *__fopen_maybe_mmap (_IO_FILE *) __THROW;
+extern int _IO_fprintf (_IO_FILE*, const char*, ...) __THROW;
+extern int _IO_fputs (const char*, _IO_FILE*) __THROW;
 libc_hidden_proto (_IO_fputs)
-extern int _IO_fsetpos __P((_IO_FILE*, const _IO_fpos_t *));
-extern int _IO_fsetpos64 __P((_IO_FILE*, const _IO_fpos64_t *));
-extern long int _IO_ftell __P((_IO_FILE*));
-extern _IO_size_t _IO_fread __P((void*, _IO_size_t, _IO_size_t, _IO_FILE*));
-extern _IO_size_t _IO_fwrite __P((const void*,
-				      _IO_size_t, _IO_size_t, _IO_FILE*));
-extern char* _IO_gets __P((char*));
-extern void _IO_perror __P((const char*));
-extern int _IO_printf __P((const char*, ...));
-extern int _IO_puts __P((const char*));
-extern int _IO_scanf __P((const char*, ...));
-extern void _IO_setbuffer __P((_IO_FILE *, char*, _IO_size_t));
-extern int _IO_setvbuf __P((_IO_FILE*, char*, int, _IO_size_t));
-extern int _IO_sscanf __P((const char*, const char*, ...));
-extern int _IO_sprintf __P((char *, const char*, ...));
-extern int _IO_ungetc __P((int, _IO_FILE*));
-extern int _IO_vsscanf __P((const char *, const char *, _IO_va_list));
-extern int _IO_vsprintf __P((char*, const char*, _IO_va_list));
-extern int _IO_vswprintf __P((wchar_t*, _IO_size_t, const wchar_t*,
-			      _IO_va_list));
+extern int _IO_fsetpos (_IO_FILE*, const _IO_fpos_t *) __THROW;
+extern int _IO_fsetpos64 (_IO_FILE*, const _IO_fpos64_t *) __THROW;
+extern long int _IO_ftell (_IO_FILE*) __THROW;
+extern _IO_size_t _IO_fread (void*, _IO_size_t, _IO_size_t, _IO_FILE*) __THROW;
+extern _IO_size_t _IO_fwrite (const void*, _IO_size_t, _IO_size_t, _IO_FILE*)
+       __THROW;
+extern char* _IO_gets (char*) __THROW;
+extern void _IO_perror (const char*) __THROW;
+extern int _IO_printf (const char*, ...) __THROW;
+extern int _IO_puts (const char*) __THROW;
+extern int _IO_scanf (const char*, ...) __THROW;
+extern void _IO_setbuffer (_IO_FILE *, char*, _IO_size_t) __THROW;
+extern int _IO_setvbuf (_IO_FILE*, char*, int, _IO_size_t) __THROW;
+extern int _IO_sscanf (const char*, const char*, ...) __THROW;
+extern int _IO_sprintf (char *, const char*, ...) __THROW;
+extern int _IO_ungetc (int, _IO_FILE*) __THROW;
+extern int _IO_vsscanf (const char *, const char *, _IO_va_list) __THROW;
+extern int _IO_vsprintf (char*, const char*, _IO_va_list) __THROW;
+extern int _IO_vswprintf (wchar_t*, _IO_size_t, const wchar_t*, _IO_va_list)
+       __THROW;
 
 struct obstack;
-extern int _IO_obstack_vprintf __P ((struct obstack *, const char *,
-				     _IO_va_list));
-extern int _IO_obstack_printf __P ((struct obstack *, const char *, ...));
+extern int _IO_obstack_vprintf (struct obstack *, const char *, _IO_va_list)
+       __THROW;
+extern int _IO_obstack_printf (struct obstack *, const char *, ...) __THROW;
 #ifndef _IO_pos_BAD
 #define _IO_pos_BAD ((_IO_off64_t)(-1))
 #endif
@@ -71,30 +71,30 @@ extern int _IO_obstack_printf __P ((struct obstack *, const char *, ...));
   (INTUSE(_IO_file_close_it)(FP), \
    INTUSE(_IO_file_fopen)(FP, FILENAME, MODE, 0))
 #define _IO_fileno(FP) ((FP)->_fileno)
-extern _IO_FILE* _IO_popen __P((const char*, const char*));
-extern _IO_FILE* _IO_new_popen __P((const char*, const char*));
-extern _IO_FILE* _IO_old_popen __P((const char*, const char*));
-extern int __new_pclose __P((_IO_FILE *));
-extern int __old_pclose __P((_IO_FILE *));
+extern _IO_FILE* _IO_popen (const char*, const char*) __THROW;
+extern _IO_FILE* _IO_new_popen (const char*, const char*) __THROW;
+extern _IO_FILE* _IO_old_popen (const char*, const char*) __THROW;
+extern int __new_pclose (_IO_FILE *) __THROW;
+extern int __old_pclose (_IO_FILE *) __THROW;
 #define _IO_pclose _IO_fclose
 #define _IO_setbuf(_FP, _BUF) INTUSE(_IO_setbuffer)(_FP, _BUF, _IO_BUFSIZ)
 #define _IO_setlinebuf(_FP) INTUSE(_IO_setvbuf)(_FP, NULL, 1, 0)
 
-_IO_FILE *__new_freopen __P ((const char *, const char *, _IO_FILE *));
-_IO_FILE *__old_freopen __P ((const char *, const char *, _IO_FILE *));
+_IO_FILE *__new_freopen (const char *, const char *, _IO_FILE *) __THROW;
+_IO_FILE *__old_freopen (const char *, const char *, _IO_FILE *) __THROW;
 
 /* Prototype for functions with alternative entry point.  */
-extern void _IO_setbuffer_internal __P((_IO_FILE *, char*, _IO_size_t));
-extern _IO_size_t _IO_fread_internal __P((void*, _IO_size_t, _IO_size_t,
-					  _IO_FILE*));
-extern _IO_FILE *_IO_fdopen_internal __P((int, const char*));
-extern int _IO_vsprintf_internal __P((char*, const char*, _IO_va_list));
-extern int _IO_fflush_internal __P((_IO_FILE*));
-extern _IO_size_t _IO_fwrite_internal __P((const void*, _IO_size_t,
-					   _IO_size_t, _IO_FILE*));
-extern long int _IO_ftell_internal __P((_IO_FILE*));
-extern int _IO_fputs_internal __P((const char*, _IO_FILE*));
-extern int _IO_setvbuf_internal __P((_IO_FILE*, char*, int, _IO_size_t));
+extern void _IO_setbuffer_internal (_IO_FILE *, char*, _IO_size_t) __THROW;
+extern _IO_size_t _IO_fread_internal (void*, _IO_size_t, _IO_size_t, _IO_FILE*)
+       __THROW;
+extern _IO_FILE *_IO_fdopen_internal (int, const char*) __THROW;
+extern int _IO_vsprintf_internal (char*, const char*, _IO_va_list) __THROW;
+extern int _IO_fflush_internal (_IO_FILE*) __THROW;
+extern _IO_size_t _IO_fwrite_internal (const void*, _IO_size_t,
+				       _IO_size_t, _IO_FILE*) __THROW;
+extern long int _IO_ftell_internal (_IO_FILE*) __THROW;
+extern int _IO_fputs_internal (const char*, _IO_FILE*) __THROW;
+extern int _IO_setvbuf_internal (_IO_FILE*, char*, int, _IO_size_t) __THROW;
 
 #ifdef __cplusplus
 }
diff --git a/libio/iopopen.c b/libio/iopopen.c
index 3537eeb182..896e930f40 100644
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -50,7 +50,7 @@
 #else
 #define _IO_fork fork /* defined in libiberty, if needed */
 #endif
-extern _IO_pid_t _IO_fork __P ((void));
+extern _IO_pid_t _IO_fork (void) __THROW;
 #endif
 
 #endif /* _IO_HAVE_SYS_WAIT */
@@ -61,7 +61,7 @@ extern _IO_pid_t _IO_fork __P ((void));
 #else
 #define _IO_pipe pipe
 #endif
-extern int _IO_pipe __P ((int des[2]));
+extern int _IO_pipe (int des[2]) __THROW;
 #endif
 
 #ifndef _IO_dup2
@@ -70,7 +70,7 @@ extern int _IO_pipe __P ((int des[2]));
 #else
 #define _IO_dup2 dup2
 #endif
-extern int _IO_dup2 __P ((int fd, int fd2));
+extern int _IO_dup2 (int fd, int fd2) __THROW;
 #endif
 
 #ifndef _IO_waitpid
diff --git a/libio/libioP.h b/libio/libioP.h
index 5bfaaeb9fc..d11704d028 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -148,14 +148,14 @@ extern "C" {
 /* The 'finish' function does any final cleaning up of an _IO_FILE object.
    It does not delete (free) it, but does everything else to finalize it.
    It matches the streambuf::~streambuf virtual destructor.  */
-typedef void (*_IO_finish_t) __PMT ((_IO_FILE *, int)); /* finalize */
+typedef void (*_IO_finish_t) (_IO_FILE *, int); /* finalize */
 #define _IO_FINISH(FP) JUMP1 (__finish, FP, 0)
 #define _IO_WFINISH(FP) WJUMP1 (__finish, FP, 0)
 
 /* The 'overflow' hook flushes the buffer.
    The second argument is a character, or EOF.
    It matches the streambuf::overflow virtual function. */
-typedef int (*_IO_overflow_t) __PMT ((_IO_FILE *, int));
+typedef int (*_IO_overflow_t) (_IO_FILE *, int);
 #define _IO_OVERFLOW(FP, CH) JUMP1 (__overflow, FP, CH)
 #define _IO_WOVERFLOW(FP, CH) WJUMP1 (__overflow, FP, CH)
 
@@ -163,7 +163,7 @@ typedef int (*_IO_overflow_t) __PMT ((_IO_FILE *, int));
    It returns the next character (as an unsigned char) or EOF.  The next
    character remains in the get buffer, and the get position is not changed.
    It matches the streambuf::underflow virtual function. */
-typedef int (*_IO_underflow_t) __PMT ((_IO_FILE *));
+typedef int (*_IO_underflow_t) (_IO_FILE *);
 #define _IO_UNDERFLOW(FP) JUMP0 (__underflow, FP)
 #define _IO_WUNDERFLOW(FP) WJUMP0 (__underflow, FP)
 
@@ -177,23 +177,22 @@ typedef int (*_IO_underflow_t) __PMT ((_IO_FILE *));
 
 /* The 'pbackfail' hook handles backing up.
    It matches the streambuf::pbackfail virtual function. */
-typedef int (*_IO_pbackfail_t) __PMT ((_IO_FILE *, int));
+typedef int (*_IO_pbackfail_t) (_IO_FILE *, int);
 #define _IO_PBACKFAIL(FP, CH) JUMP1 (__pbackfail, FP, CH)
 #define _IO_WPBACKFAIL(FP, CH) WJUMP1 (__pbackfail, FP, CH)
 
 /* The 'xsputn' hook writes upto N characters from buffer DATA.
    Returns the number of character actually written.
    It matches the streambuf::xsputn virtual function. */
-typedef _IO_size_t (*_IO_xsputn_t) __PMT ((_IO_FILE *FP, const void *DATA,
-					   _IO_size_t N));
+typedef _IO_size_t (*_IO_xsputn_t) (_IO_FILE *FP, const void *DATA,
+				    _IO_size_t N);
 #define _IO_XSPUTN(FP, DATA, N) JUMP2 (__xsputn, FP, DATA, N)
 #define _IO_WXSPUTN(FP, DATA, N) WJUMP2 (__xsputn, FP, DATA, N)
 
 /* The 'xsgetn' hook reads upto N characters into buffer DATA.
    Returns the number of character actually read.
    It matches the streambuf::xsgetn virtual function. */
-typedef _IO_size_t (*_IO_xsgetn_t) __PMT ((_IO_FILE *FP, void *DATA,
-					   _IO_size_t N));
+typedef _IO_size_t (*_IO_xsgetn_t) (_IO_FILE *FP, void *DATA, _IO_size_t N);
 #define _IO_XSGETN(FP, DATA, N) JUMP2 (__xsgetn, FP, DATA, N)
 #define _IO_WXSGETN(FP, DATA, N) WJUMP2 (__xsgetn, FP, DATA, N)
 
@@ -202,8 +201,8 @@ typedef _IO_size_t (*_IO_xsgetn_t) __PMT ((_IO_FILE *FP, void *DATA,
    (MODE==1), or the end of the file (MODE==2).
    It matches the streambuf::seekoff virtual function.
    It is also used for the ANSI fseek function. */
-typedef _IO_off64_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off64_t OFF,
-					     int DIR, int MODE));
+typedef _IO_off64_t (*_IO_seekoff_t) (_IO_FILE *FP, _IO_off64_t OFF, int DIR,
+				      int MODE);
 #define _IO_SEEKOFF(FP, OFF, DIR, MODE) JUMP3 (__seekoff, FP, OFF, DIR, MODE)
 #define _IO_WSEEKOFF(FP, OFF, DIR, MODE) WJUMP3 (__seekoff, FP, OFF, DIR, MODE)
 
@@ -212,27 +211,27 @@ typedef _IO_off64_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off64_t OFF,
    It matches the streambuf::seekpos virtual function.
    It is also used for the ANSI fgetpos and fsetpos functions.  */
 /* The _IO_seek_cur and _IO_seek_end options are not allowed. */
-typedef _IO_off64_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+typedef _IO_off64_t (*_IO_seekpos_t) (_IO_FILE *, _IO_off64_t, int);
 #define _IO_SEEKPOS(FP, POS, FLAGS) JUMP2 (__seekpos, FP, POS, FLAGS)
 #define _IO_WSEEKPOS(FP, POS, FLAGS) WJUMP2 (__seekpos, FP, POS, FLAGS)
 
 /* The 'setbuf' hook gives a buffer to the file.
    It matches the streambuf::setbuf virtual function. */
-typedef _IO_FILE* (*_IO_setbuf_t) __PMT ((_IO_FILE *, char *, _IO_ssize_t));
+typedef _IO_FILE* (*_IO_setbuf_t) (_IO_FILE *, char *, _IO_ssize_t);
 #define _IO_SETBUF(FP, BUFFER, LENGTH) JUMP2 (__setbuf, FP, BUFFER, LENGTH)
 #define _IO_WSETBUF(FP, BUFFER, LENGTH) WJUMP2 (__setbuf, FP, BUFFER, LENGTH)
 
 /* The 'sync' hook attempts to synchronize the internal data structures
    of the file with the external state.
    It matches the streambuf::sync virtual function. */
-typedef int (*_IO_sync_t) __PMT ((_IO_FILE *));
+typedef int (*_IO_sync_t) (_IO_FILE *);
 #define _IO_SYNC(FP) JUMP0 (__sync, FP)
 #define _IO_WSYNC(FP) WJUMP0 (__sync, FP)
 
 /* The 'doallocate' hook is used to tell the file to allocate a buffer.
    It matches the streambuf::doallocate virtual function, which is not
    in the ANSI/ISO C++ standard, but is part traditional implementations. */
-typedef int (*_IO_doallocate_t) __PMT ((_IO_FILE *));
+typedef int (*_IO_doallocate_t) (_IO_FILE *);
 #define _IO_DOALLOCATE(FP) JUMP0 (__doallocate, FP)
 #define _IO_WDOALLOCATE(FP) WJUMP0 (__doallocate, FP)
 
@@ -251,7 +250,7 @@ typedef int (*_IO_doallocate_t) __PMT ((_IO_FILE *));
    an existing buffer.  It generalizes the Unix read(2) function.
    It matches the streambuf::sys_read virtual function, which is
    specific to this implementation. */
-typedef _IO_ssize_t (*_IO_read_t) __PMT ((_IO_FILE *, void *, _IO_ssize_t));
+typedef _IO_ssize_t (*_IO_read_t) (_IO_FILE *, void *, _IO_ssize_t);
 #define _IO_SYSREAD(FP, DATA, LEN) JUMP2 (__read, FP, DATA, LEN)
 #define _IO_WSYSREAD(FP, DATA, LEN) WJUMP2 (__read, FP, DATA, LEN)
 
@@ -259,8 +258,7 @@ typedef _IO_ssize_t (*_IO_read_t) __PMT ((_IO_FILE *, void *, _IO_ssize_t));
    to an external file.  It generalizes the Unix write(2) function.
    It matches the streambuf::sys_write virtual function, which is
    specific to this implementation. */
-typedef _IO_ssize_t (*_IO_write_t) __PMT ((_IO_FILE *, const void *,
-					   _IO_ssize_t));
+typedef _IO_ssize_t (*_IO_write_t) (_IO_FILE *, const void *, _IO_ssize_t);
 #define _IO_SYSWRITE(FP, DATA, LEN) JUMP2 (__write, FP, DATA, LEN)
 #define _IO_WSYSWRITE(FP, DATA, LEN) WJUMP2 (__write, FP, DATA, LEN)
 
@@ -268,7 +266,7 @@ typedef _IO_ssize_t (*_IO_write_t) __PMT ((_IO_FILE *, const void *,
    It generalizes the Unix lseek(2) function.
    It matches the streambuf::sys_seek virtual function, which is
    specific to this implementation. */
-typedef _IO_off64_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+typedef _IO_off64_t (*_IO_seek_t) (_IO_FILE *, _IO_off64_t, int);
 #define _IO_SYSSEEK(FP, OFFSET, MODE) JUMP2 (__seek, FP, OFFSET, MODE)
 #define _IO_WSYSSEEK(FP, OFFSET, MODE) WJUMP2 (__seek, FP, OFFSET, MODE)
 
@@ -276,7 +274,7 @@ typedef _IO_off64_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
    external file.  It generalizes the Unix close(2) function.
    It matches the streambuf::sys_close virtual function, which is
    specific to this implementation. */
-typedef int (*_IO_close_t) __PMT ((_IO_FILE *)); /* finalize */
+typedef int (*_IO_close_t) (_IO_FILE *); /* finalize */
 #define _IO_SYSCLOSE(FP) JUMP0 (__close, FP)
 #define _IO_WSYSCLOSE(FP) WJUMP0 (__close, FP)
 
@@ -284,20 +282,20 @@ typedef int (*_IO_close_t) __PMT ((_IO_FILE *)); /* finalize */
    into a struct stat buffer.  It generalizes the Unix fstat(2) call.
    It matches the streambuf::sys_stat virtual function, which is
    specific to this implementation. */
-typedef int (*_IO_stat_t) __PMT ((_IO_FILE *, void *));
+typedef int (*_IO_stat_t) (_IO_FILE *, void *);
 #define _IO_SYSSTAT(FP, BUF) JUMP1 (__stat, FP, BUF)
 #define _IO_WSYSSTAT(FP, BUF) WJUMP1 (__stat, FP, BUF)
 
 /* The 'showmany' hook can be used to get an image how much input is
    available.  In many cases the answer will be 0 which means unknown
    but some cases one can provide real information.  */
-typedef int (*_IO_showmanyc_t) __PMT ((_IO_FILE *));
+typedef int (*_IO_showmanyc_t) (_IO_FILE *);
 #define _IO_SHOWMANYC(FP) JUMP0 (__showmanyc, FP)
 #define _IO_WSHOWMANYC(FP) WJUMP0 (__showmanyc, FP)
 
 /* The 'imbue' hook is used to get information about the currently
    installed locales.  */
-typedef void (*_IO_imbue_t) __PMT ((_IO_FILE *, void *));
+typedef void (*_IO_imbue_t) (_IO_FILE *, void *);
 #define _IO_IMBUE(FP, LOCALE) JUMP1 (__imbue, FP, LOCALE)
 #define _IO_WIMBUE(FP, LOCALE) WJUMP1 (__imbue, FP, LOCALE)
 
@@ -377,90 +375,89 @@ typedef struct _IO_FILE *_IO_ITER;
 
 /* Generic functions */
 
-extern void _IO_switch_to_main_get_area __P ((_IO_FILE *));
-extern void _IO_switch_to_backup_area __P ((_IO_FILE *));
-extern int _IO_switch_to_get_mode __P ((_IO_FILE *));
-extern void _IO_init __P ((_IO_FILE *, int));
-extern int _IO_sputbackc __P ((_IO_FILE *, int));
-extern int _IO_sungetc __P ((_IO_FILE *));
-extern void _IO_un_link __P ((struct _IO_FILE_plus *));
-extern void _IO_link_in __P ((struct _IO_FILE_plus *));
-extern void _IO_doallocbuf __P ((_IO_FILE *));
-extern void _IO_unsave_markers __P ((_IO_FILE *));
-extern void _IO_setb __P ((_IO_FILE *, char *, char *, int));
-extern unsigned _IO_adjust_column __P ((unsigned, const char *, int));
+extern void _IO_switch_to_main_get_area (_IO_FILE *) __THROW;
+extern void _IO_switch_to_backup_area (_IO_FILE *) __THROW;
+extern int _IO_switch_to_get_mode (_IO_FILE *) __THROW;
+extern void _IO_init (_IO_FILE *, int) __THROW;
+extern int _IO_sputbackc (_IO_FILE *, int) __THROW;
+extern int _IO_sungetc (_IO_FILE *) __THROW;
+extern void _IO_un_link (struct _IO_FILE_plus *) __THROW;
+extern void _IO_link_in (struct _IO_FILE_plus *) __THROW;
+extern void _IO_doallocbuf (_IO_FILE *) __THROW;
+extern void _IO_unsave_markers (_IO_FILE *) __THROW;
+extern void _IO_setb (_IO_FILE *, char *, char *, int) __THROW;
+extern unsigned _IO_adjust_column (unsigned, const char *, int) __THROW;
 #define _IO_sputn(__fp, __s, __n) _IO_XSPUTN (__fp, __s, __n)
 
-extern void _IO_switch_to_main_wget_area __P ((_IO_FILE *));
-extern void _IO_switch_to_wbackup_area __P ((_IO_FILE *));
-extern int _IO_switch_to_wget_mode __P ((_IO_FILE *));
-extern void _IO_wsetb __P ((_IO_FILE *, wchar_t *, wchar_t *, int));
-extern wint_t _IO_sputbackwc __P ((_IO_FILE *, wint_t));
-extern wint_t _IO_sungetwc __P ((_IO_FILE *));
-extern void _IO_wdoallocbuf __P ((_IO_FILE *));
-extern void _IO_unsave_wmarkers __P ((_IO_FILE *));
-extern unsigned _IO_adjust_wcolumn __P ((unsigned, const wchar_t *, int));
+extern void _IO_switch_to_main_wget_area (_IO_FILE *) __THROW;
+extern void _IO_switch_to_wbackup_area (_IO_FILE *) __THROW;
+extern int _IO_switch_to_wget_mode (_IO_FILE *) __THROW;
+extern void _IO_wsetb (_IO_FILE *, wchar_t *, wchar_t *, int) __THROW;
+extern wint_t _IO_sputbackwc (_IO_FILE *, wint_t) __THROW;
+extern wint_t _IO_sungetwc (_IO_FILE *) __THROW;
+extern void _IO_wdoallocbuf (_IO_FILE *) __THROW;
+extern void _IO_unsave_wmarkers (_IO_FILE *) __THROW;
+extern unsigned _IO_adjust_wcolumn (unsigned, const wchar_t *, int) __THROW;
 
 /* Marker-related function. */
 
-extern void _IO_init_marker __P ((struct _IO_marker *, _IO_FILE *));
-extern void _IO_init_wmarker __P ((struct _IO_marker *, _IO_FILE *));
-extern void _IO_remove_marker __P ((struct _IO_marker *));
-extern int _IO_marker_difference __P ((struct _IO_marker *,
-				       struct _IO_marker *));
-extern int _IO_marker_delta __P ((struct _IO_marker *));
-extern int _IO_wmarker_delta __P ((struct _IO_marker *));
-extern int _IO_seekmark __P ((_IO_FILE *, struct _IO_marker *, int));
-extern int _IO_seekwmark __P ((_IO_FILE *, struct _IO_marker *, int));
+extern void _IO_init_marker (struct _IO_marker *, _IO_FILE *) __THROW;
+extern void _IO_init_wmarker (struct _IO_marker *, _IO_FILE *) __THROW;
+extern void _IO_remove_marker (struct _IO_marker *) __THROW;
+extern int _IO_marker_difference (struct _IO_marker *, struct _IO_marker *)
+     __THROW;
+extern int _IO_marker_delta (struct _IO_marker *) __THROW;
+extern int _IO_wmarker_delta (struct _IO_marker *) __THROW;
+extern int _IO_seekmark (_IO_FILE *, struct _IO_marker *, int) __THROW;
+extern int _IO_seekwmark (_IO_FILE *, struct _IO_marker *, int) __THROW;
 
-/* Functions for iterating global list and dealing with
-   its lock */
+/* Functions for iterating global list and dealing with its lock */
 
-extern _IO_ITER _IO_iter_begin __P ((void));
+extern _IO_ITER _IO_iter_begin (void) __THROW;
 libc_hidden_proto (_IO_iter_begin)
-extern _IO_ITER _IO_iter_end __P ((void));
+extern _IO_ITER _IO_iter_end (void) __THROW;
 libc_hidden_proto (_IO_iter_end)
-extern _IO_ITER _IO_iter_next __P ((_IO_ITER));
+extern _IO_ITER _IO_iter_next (_IO_ITER) __THROW;
 libc_hidden_proto (_IO_iter_next)
-extern _IO_FILE *_IO_iter_file __P ((_IO_ITER));
+extern _IO_FILE *_IO_iter_file (_IO_ITER) __THROW;
 libc_hidden_proto (_IO_iter_file)
-extern void _IO_list_lock __P ((void));
+extern void _IO_list_lock (void) __THROW;
 libc_hidden_proto (_IO_list_lock)
-extern void _IO_list_unlock __P ((void));
+extern void _IO_list_unlock (void) __THROW;
 libc_hidden_proto (_IO_list_unlock)
-extern void _IO_list_resetlock __P ((void));
+extern void _IO_list_resetlock (void) __THROW;
 libc_hidden_proto (_IO_list_resetlock)
 
 /* Default jumptable functions. */
 
-extern int _IO_default_underflow __P ((_IO_FILE *));
-extern int _IO_default_uflow __P ((_IO_FILE *));
-extern wint_t _IO_wdefault_uflow __P ((_IO_FILE *));
-extern int _IO_default_doallocate __P ((_IO_FILE *));
-extern int _IO_wdefault_doallocate __P ((_IO_FILE *));
-extern void _IO_default_finish __P ((_IO_FILE *, int));
-extern void _IO_wdefault_finish __P ((_IO_FILE *, int));
-extern int _IO_default_pbackfail __P ((_IO_FILE *, int));
-extern wint_t _IO_wdefault_pbackfail __P ((_IO_FILE *, wint_t));
-extern _IO_FILE* _IO_default_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
-extern _IO_size_t _IO_default_xsputn __P ((_IO_FILE *, const void *,
-					   _IO_size_t));
-extern _IO_size_t _IO_wdefault_xsputn __P ((_IO_FILE *, const void *,
-					    _IO_size_t));
-extern _IO_size_t _IO_default_xsgetn __P ((_IO_FILE *, void *, _IO_size_t));
-extern _IO_size_t _IO_wdefault_xsgetn __P ((_IO_FILE *, void *, _IO_size_t));
-extern _IO_off64_t _IO_default_seekoff __P ((_IO_FILE *,
-					     _IO_off64_t, int, int));
-extern _IO_off64_t _IO_default_seekpos __P ((_IO_FILE *, _IO_off64_t, int));
-extern _IO_ssize_t _IO_default_write __P ((_IO_FILE *, const void *,
-					   _IO_ssize_t));
-extern _IO_ssize_t _IO_default_read __P ((_IO_FILE *, void *, _IO_ssize_t));
-extern int _IO_default_stat __P ((_IO_FILE *, void *));
-extern _IO_off64_t _IO_default_seek __P ((_IO_FILE *, _IO_off64_t, int));
-extern int _IO_default_sync __P ((_IO_FILE *));
+extern int _IO_default_underflow (_IO_FILE *) __THROW;
+extern int _IO_default_uflow (_IO_FILE *) __THROW;
+extern wint_t _IO_wdefault_uflow (_IO_FILE *) __THROW;
+extern int _IO_default_doallocate (_IO_FILE *) __THROW;
+extern int _IO_wdefault_doallocate (_IO_FILE *) __THROW;
+extern void _IO_default_finish (_IO_FILE *, int) __THROW;
+extern void _IO_wdefault_finish (_IO_FILE *, int) __THROW;
+extern int _IO_default_pbackfail (_IO_FILE *, int) __THROW;
+extern wint_t _IO_wdefault_pbackfail (_IO_FILE *, wint_t) __THROW;
+extern _IO_FILE* _IO_default_setbuf (_IO_FILE *, char *, _IO_ssize_t) __THROW;
+extern _IO_size_t _IO_default_xsputn (_IO_FILE *, const void *, _IO_size_t)
+     __THROW;
+extern _IO_size_t _IO_wdefault_xsputn (_IO_FILE *, const void *, _IO_size_t)
+     __THROW;
+extern _IO_size_t _IO_default_xsgetn (_IO_FILE *, void *, _IO_size_t) __THROW;
+extern _IO_size_t _IO_wdefault_xsgetn (_IO_FILE *, void *, _IO_size_t) __THROW;
+extern _IO_off64_t _IO_default_seekoff (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
+extern _IO_off64_t _IO_default_seekpos (_IO_FILE *, _IO_off64_t, int) __THROW;
+extern _IO_ssize_t _IO_default_write (_IO_FILE *, const void *, _IO_ssize_t)
+     __THROW;
+extern _IO_ssize_t _IO_default_read (_IO_FILE *, void *, _IO_ssize_t) __THROW;
+extern int _IO_default_stat (_IO_FILE *, void *) __THROW;
+extern _IO_off64_t _IO_default_seek (_IO_FILE *, _IO_off64_t, int) __THROW;
+extern int _IO_default_sync (_IO_FILE *) __THROW;
 #define _IO_default_close ((_IO_close_t) _IO_default_sync)
-extern int _IO_default_showmanyc __P ((_IO_FILE *));
-extern void _IO_default_imbue __P ((_IO_FILE *, void *));
+extern int _IO_default_showmanyc (_IO_FILE *) __THROW;
+extern void _IO_default_imbue (_IO_FILE *, void *) __THROW;
 
 extern const struct _IO_jump_t _IO_file_jumps;
 libc_hidden_proto (_IO_file_jumps)
@@ -476,23 +473,23 @@ extern const struct _IO_jump_t _IO_old_proc_jumps attribute_hidden;
 extern const struct _IO_jump_t _IO_str_jumps attribute_hidden;
 extern const struct _IO_jump_t _IO_wstr_jumps attribute_hidden;
 extern struct _IO_codecvt __libio_codecvt attribute_hidden;
-extern int _IO_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
-extern int _IO_new_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
-extern int _IO_old_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
-extern int _IO_wdo_write __P ((_IO_FILE *, const wchar_t *, _IO_size_t));
-extern int _IO_flush_all_lockp __P ((int));
-extern int _IO_flush_all __P ((void));
-extern int _IO_cleanup __P ((void));
-extern void _IO_flush_all_linebuffered __P ((void));
-extern int _IO_new_fgetpos __P ((_IO_FILE *, _IO_fpos_t *));
-extern int _IO_old_fgetpos __P ((_IO_FILE *, _IO_fpos_t *));
-extern int _IO_new_fsetpos __P ((_IO_FILE *, const _IO_fpos_t *));
-extern int _IO_old_fsetpos __P ((_IO_FILE *, const _IO_fpos_t *));
-extern int _IO_new_fgetpos64 __P ((_IO_FILE *, _IO_fpos64_t *));
-extern int _IO_old_fgetpos64 __P ((_IO_FILE *, _IO_fpos64_t *));
-extern int _IO_new_fsetpos64 __P ((_IO_FILE *, const _IO_fpos64_t *));
-extern int _IO_old_fsetpos64 __P ((_IO_FILE *, const _IO_fpos64_t *));
-extern void _IO_old_init __P ((_IO_FILE *fp, int flags));
+extern int _IO_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
+extern int _IO_new_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
+extern int _IO_old_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
+extern int _IO_wdo_write (_IO_FILE *, const wchar_t *, _IO_size_t) __THROW;
+extern int _IO_flush_all_lockp (int) __THROW;
+extern int _IO_flush_all (void) __THROW;
+extern int _IO_cleanup (void) __THROW;
+extern void _IO_flush_all_linebuffered (void) __THROW;
+extern int _IO_new_fgetpos (_IO_FILE *, _IO_fpos_t *) __THROW;
+extern int _IO_old_fgetpos (_IO_FILE *, _IO_fpos_t *) __THROW;
+extern int _IO_new_fsetpos (_IO_FILE *, const _IO_fpos_t *) __THROW;
+extern int _IO_old_fsetpos (_IO_FILE *, const _IO_fpos_t *) __THROW;
+extern int _IO_new_fgetpos64 (_IO_FILE *, _IO_fpos64_t *) __THROW;
+extern int _IO_old_fgetpos64 (_IO_FILE *, _IO_fpos64_t *) __THROW;
+extern int _IO_new_fsetpos64 (_IO_FILE *, const _IO_fpos64_t *) __THROW;
+extern int _IO_old_fsetpos64 (_IO_FILE *, const _IO_fpos64_t *) __THROW;
+extern void _IO_old_init (_IO_FILE *fp, int flags) __THROW;
 
 
 #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
@@ -536,237 +533,255 @@ extern void _IO_old_init __P ((_IO_FILE *fp, int flags));
 
 /* Jumptable functions for files. */
 
-extern int _IO_file_doallocate __P ((_IO_FILE *));
-extern _IO_FILE* _IO_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
-extern _IO_off64_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
-extern _IO_off64_t _IO_file_seekoff_mmap __P ((_IO_FILE *, _IO_off64_t, int,
-					       int));
-extern _IO_size_t _IO_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t));
-extern _IO_size_t _IO_file_xsgetn __P ((_IO_FILE *, void *, _IO_size_t));
-extern int _IO_file_stat __P ((_IO_FILE *, void *));
-extern int _IO_file_close __P ((_IO_FILE *));
-extern int _IO_file_close_mmap __P ((_IO_FILE *));
-extern int _IO_file_underflow __P ((_IO_FILE *));
-extern int _IO_file_underflow_mmap __P ((_IO_FILE *));
-extern int _IO_file_underflow_maybe_mmap __P ((_IO_FILE *));
-extern int _IO_file_overflow __P ((_IO_FILE *, int));
+extern int _IO_file_doallocate (_IO_FILE *) __THROW;
+extern _IO_FILE* _IO_file_setbuf (_IO_FILE *, char *, _IO_ssize_t) __THROW;
+extern _IO_off64_t _IO_file_seekoff (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
+extern _IO_off64_t _IO_file_seekoff_mmap (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
+extern _IO_size_t _IO_file_xsputn (_IO_FILE *, const void *, _IO_size_t)
+     __THROW;
+extern _IO_size_t _IO_file_xsgetn (_IO_FILE *, void *, _IO_size_t) __THROW;
+extern int _IO_file_stat (_IO_FILE *, void *) __THROW;
+extern int _IO_file_close (_IO_FILE *) __THROW;
+extern int _IO_file_close_mmap (_IO_FILE *) __THROW;
+extern int _IO_file_underflow (_IO_FILE *) __THROW;
+extern int _IO_file_underflow_mmap (_IO_FILE *) __THROW;
+extern int _IO_file_underflow_maybe_mmap (_IO_FILE *) __THROW;
+extern int _IO_file_overflow (_IO_FILE *, int) __THROW;
 #define _IO_file_is_open(__fp) ((__fp)->_fileno != -1)
-extern void _IO_file_init __P ((struct _IO_FILE_plus *));
-extern _IO_FILE* _IO_file_attach __P ((_IO_FILE *, int));
-extern _IO_FILE* _IO_file_open __P ((_IO_FILE *, const char *, int, int,
-				     int, int));
+extern void _IO_file_init (struct _IO_FILE_plus *) __THROW;
+extern _IO_FILE* _IO_file_attach (_IO_FILE *, int) __THROW;
+extern _IO_FILE* _IO_file_open (_IO_FILE *, const char *, int, int, int, int)
+     __THROW;
 libc_hidden_proto (_IO_file_open)
-extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *,
-				      int));
-extern _IO_ssize_t _IO_file_write __P ((_IO_FILE *, const void *,
-					_IO_ssize_t));
-extern _IO_ssize_t _IO_file_read __P ((_IO_FILE *, void *, _IO_ssize_t));
-extern int _IO_file_sync __P ((_IO_FILE *));
-extern int _IO_file_close_it __P ((_IO_FILE *));
-extern _IO_off64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int));
-extern void _IO_file_finish __P ((_IO_FILE *, int));
-
-extern _IO_FILE* _IO_new_file_attach __P ((_IO_FILE *, int));
-extern int _IO_new_file_close_it __P ((_IO_FILE *));
-extern void _IO_new_file_finish __P ((_IO_FILE *, int));
-extern _IO_FILE* _IO_new_file_fopen __P ((_IO_FILE *, const char *, const char *,
-					  int));
-extern void _IO_no_init __P ((_IO_FILE *, int, int, struct _IO_wide_data *,
-			      const struct _IO_jump_t *));
-extern void _IO_new_file_init __P ((struct _IO_FILE_plus *));
-extern _IO_FILE* _IO_new_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
-extern _IO_FILE* _IO_file_setbuf_mmap __P ((_IO_FILE *, char *, _IO_ssize_t));
-extern int _IO_new_file_sync __P ((_IO_FILE *));
-extern int _IO_new_file_underflow __P ((_IO_FILE *));
-extern int _IO_new_file_overflow __P ((_IO_FILE *, int));
-extern _IO_off64_t _IO_new_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
-extern _IO_ssize_t _IO_new_file_write __P ((_IO_FILE *, const void *,
-					    _IO_ssize_t));
-extern _IO_size_t _IO_new_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t));
-
-extern _IO_FILE* _IO_old_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
-extern _IO_off64_t _IO_old_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int,
-					      int));
-extern _IO_size_t _IO_old_file_xsputn __P ((_IO_FILE *, const void *,
-					    _IO_size_t));
-extern int _IO_old_file_underflow __P ((_IO_FILE *));
-extern int _IO_old_file_overflow __P ((_IO_FILE *, int));
-extern void _IO_old_file_init __P ((struct _IO_FILE_plus *));
-extern _IO_FILE* _IO_old_file_attach __P ((_IO_FILE *, int));
-extern _IO_FILE* _IO_old_file_fopen __P ((_IO_FILE *, const char *,
-					  const char *));
-extern _IO_ssize_t _IO_old_file_write __P ((_IO_FILE *, const void *,
-					    _IO_ssize_t));
-extern int _IO_old_file_sync __P ((_IO_FILE *));
-extern int _IO_old_file_close_it __P ((_IO_FILE *));
-extern void _IO_old_file_finish __P ((_IO_FILE *, int));
-
-extern int _IO_wfile_doallocate __P ((_IO_FILE *));
-extern _IO_size_t _IO_wfile_xsputn __P ((_IO_FILE *, const void *,
-					 _IO_size_t));
-extern _IO_FILE* _IO_wfile_setbuf __P ((_IO_FILE *, wchar_t *, _IO_ssize_t));
-extern wint_t _IO_wfile_sync __P ((_IO_FILE *));
-extern wint_t _IO_wfile_underflow __P ((_IO_FILE *));
-extern wint_t _IO_wfile_overflow __P ((_IO_FILE *, wint_t));
-extern _IO_off64_t _IO_wfile_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+extern _IO_FILE* _IO_file_fopen (_IO_FILE *, const char *, const char *, int)
+     __THROW;
+extern _IO_ssize_t _IO_file_write (_IO_FILE *, const void *, _IO_ssize_t)
+     __THROW;
+extern _IO_ssize_t _IO_file_read (_IO_FILE *, void *, _IO_ssize_t) __THROW;
+extern int _IO_file_sync (_IO_FILE *) __THROW;
+extern int _IO_file_close_it (_IO_FILE *) __THROW;
+extern _IO_off64_t _IO_file_seek (_IO_FILE *, _IO_off64_t, int) __THROW;
+extern void _IO_file_finish (_IO_FILE *, int) __THROW;
+
+extern _IO_FILE* _IO_new_file_attach (_IO_FILE *, int) __THROW;
+extern int _IO_new_file_close_it (_IO_FILE *) __THROW;
+extern void _IO_new_file_finish (_IO_FILE *, int) __THROW;
+extern _IO_FILE* _IO_new_file_fopen (_IO_FILE *, const char *, const char *,
+				     int) __THROW;
+extern void _IO_no_init (_IO_FILE *, int, int, struct _IO_wide_data *,
+			 const struct _IO_jump_t *) __THROW;
+extern void _IO_new_file_init (struct _IO_FILE_plus *) __THROW;
+extern _IO_FILE* _IO_new_file_setbuf (_IO_FILE *, char *, _IO_ssize_t) __THROW;
+extern _IO_FILE* _IO_file_setbuf_mmap (_IO_FILE *, char *, _IO_ssize_t)
+     __THROW;
+extern int _IO_new_file_sync (_IO_FILE *) __THROW;
+extern int _IO_new_file_underflow (_IO_FILE *) __THROW;
+extern int _IO_new_file_overflow (_IO_FILE *, int) __THROW;
+extern _IO_off64_t _IO_new_file_seekoff (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
+extern _IO_ssize_t _IO_new_file_write (_IO_FILE *, const void *, _IO_ssize_t)
+     __THROW;
+extern _IO_size_t _IO_new_file_xsputn (_IO_FILE *, const void *, _IO_size_t)
+     __THROW;
+
+extern _IO_FILE* _IO_old_file_setbuf (_IO_FILE *, char *, _IO_ssize_t) __THROW;
+extern _IO_off64_t _IO_old_file_seekoff (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
+extern _IO_size_t _IO_old_file_xsputn (_IO_FILE *, const void *, _IO_size_t)
+     __THROW;
+extern int _IO_old_file_underflow (_IO_FILE *) __THROW;
+extern int _IO_old_file_overflow (_IO_FILE *, int) __THROW;
+extern void _IO_old_file_init (struct _IO_FILE_plus *) __THROW;
+extern _IO_FILE* _IO_old_file_attach (_IO_FILE *, int) __THROW;
+extern _IO_FILE* _IO_old_file_fopen (_IO_FILE *, const char *, const char *)
+     __THROW;
+extern _IO_ssize_t _IO_old_file_write (_IO_FILE *, const void *, _IO_ssize_t)
+     __THROW;
+extern int _IO_old_file_sync (_IO_FILE *) __THROW;
+extern int _IO_old_file_close_it (_IO_FILE *) __THROW;
+extern void _IO_old_file_finish (_IO_FILE *, int) __THROW;
+
+extern int _IO_wfile_doallocate (_IO_FILE *) __THROW;
+extern _IO_size_t _IO_wfile_xsputn (_IO_FILE *, const void *, _IO_size_t)
+     __THROW;
+extern _IO_FILE* _IO_wfile_setbuf (_IO_FILE *, wchar_t *, _IO_ssize_t) __THROW;
+extern wint_t _IO_wfile_sync (_IO_FILE *) __THROW;
+extern wint_t _IO_wfile_underflow (_IO_FILE *) __THROW;
+extern wint_t _IO_wfile_overflow (_IO_FILE *, wint_t) __THROW;
+extern _IO_off64_t _IO_wfile_seekoff (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
 
 /* Jumptable functions for proc_files. */
-extern _IO_FILE* _IO_proc_open __P ((_IO_FILE *, const char *, const char *));
-extern _IO_FILE* _IO_new_proc_open __P ((_IO_FILE *, const char *, const char *));
-extern _IO_FILE* _IO_old_proc_open __P ((_IO_FILE *, const char *, const char *));
-extern int _IO_proc_close __P ((_IO_FILE *));
-extern int _IO_new_proc_close __P ((_IO_FILE *));
-extern int _IO_old_proc_close __P ((_IO_FILE *));
+extern _IO_FILE* _IO_proc_open (_IO_FILE *, const char *, const char *)
+     __THROW;
+extern _IO_FILE* _IO_new_proc_open (_IO_FILE *, const char *, const char *)
+     __THROW;
+extern _IO_FILE* _IO_old_proc_open (_IO_FILE *, const char *, const char *)
+     __THROW;
+extern int _IO_proc_close (_IO_FILE *) __THROW;
+extern int _IO_new_proc_close (_IO_FILE *) __THROW;
+extern int _IO_old_proc_close (_IO_FILE *) __THROW;
 
 /* Jumptable functions for strfiles. */
-extern int _IO_str_underflow __P ((_IO_FILE *));
-extern int _IO_str_overflow __P ((_IO_FILE *, int));
-extern int _IO_str_pbackfail __P ((_IO_FILE *, int));
-extern _IO_off64_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
-extern void _IO_str_finish __P ((_IO_FILE *, int));
+extern int _IO_str_underflow (_IO_FILE *) __THROW;
+extern int _IO_str_overflow (_IO_FILE *, int) __THROW;
+extern int _IO_str_pbackfail (_IO_FILE *, int) __THROW;
+extern _IO_off64_t _IO_str_seekoff (_IO_FILE *, _IO_off64_t, int, int) __THROW;
+extern void _IO_str_finish (_IO_FILE *, int) __THROW;
 
 /* Other strfile functions */
 struct _IO_strfile_;
-extern void _IO_str_init_static __P ((struct _IO_strfile_ *, char *, int, char *));
-extern void _IO_str_init_readonly __P ((struct _IO_strfile_ *, const char *, int));
-extern _IO_ssize_t _IO_str_count __P ((_IO_FILE *));
+extern void _IO_str_init_static (struct _IO_strfile_ *, char *, int, char *)
+     __THROW;
+extern void _IO_str_init_readonly (struct _IO_strfile_ *, const char *, int)
+     __THROW;
+extern _IO_ssize_t _IO_str_count (_IO_FILE *) __THROW;
 
 /* And the wide character versions.  */
-extern void _IO_wstr_init_static __P ((_IO_FILE *, wchar_t *, _IO_size_t, wchar_t *));
-extern _IO_ssize_t _IO_wstr_count __P ((_IO_FILE *));
-extern _IO_wint_t _IO_wstr_overflow __P ((_IO_FILE *, _IO_wint_t));
-extern _IO_wint_t _IO_wstr_underflow __P ((_IO_FILE *));
-extern _IO_off64_t _IO_wstr_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
-extern _IO_wint_t _IO_wstr_pbackfail __P ((_IO_FILE *, _IO_wint_t));
-extern void _IO_wstr_finish __P ((_IO_FILE *, int));
-
-extern int _IO_vasprintf __P ((char **result_ptr, __const char *format,
-			       _IO_va_list args));
-extern int _IO_vdprintf __P ((int d, __const char *format, _IO_va_list arg));
-extern int _IO_vsnprintf __P ((char *string, _IO_size_t maxlen,
-			       __const char *format, _IO_va_list args));
-
-
-extern _IO_size_t _IO_getline __P ((_IO_FILE *,char *, _IO_size_t, int, int));
-extern _IO_size_t _IO_getline_info __P ((_IO_FILE *,char *, _IO_size_t,
-					 int, int, int *));
-extern _IO_ssize_t _IO_getdelim __P ((char **, _IO_size_t *, int, _IO_FILE *));
-extern _IO_size_t _IO_getwline __P ((_IO_FILE *,wchar_t *, _IO_size_t, wint_t,
-				     int));
-extern _IO_size_t _IO_getwline_info __P ((_IO_FILE *,wchar_t *, _IO_size_t,
-					  wint_t, int, wint_t *));
-extern double _IO_strtod __P ((const char *, char **));
-extern char *_IO_dtoa __P ((double __d, int __mode, int __ndigits,
-			    int *__decpt, int *__sign, char **__rve));
-extern int _IO_outfloat __P ((double __value, _IO_FILE *__sb, int __type,
-			      int __width, int __precision, int __flags,
-			      int __sign_mode, int __fill));
+extern void _IO_wstr_init_static (_IO_FILE *, wchar_t *, _IO_size_t, wchar_t *)
+     __THROW;
+extern _IO_ssize_t _IO_wstr_count (_IO_FILE *) __THROW;
+extern _IO_wint_t _IO_wstr_overflow (_IO_FILE *, _IO_wint_t) __THROW;
+extern _IO_wint_t _IO_wstr_underflow (_IO_FILE *) __THROW;
+extern _IO_off64_t _IO_wstr_seekoff (_IO_FILE *, _IO_off64_t, int, int)
+     __THROW;
+extern _IO_wint_t _IO_wstr_pbackfail (_IO_FILE *, _IO_wint_t) __THROW;
+extern void _IO_wstr_finish (_IO_FILE *, int) __THROW;
+
+extern int _IO_vasprintf (char **result_ptr, __const char *format,
+			  _IO_va_list args) __THROW;
+extern int _IO_vdprintf (int d, __const char *format, _IO_va_list arg) __THROW;
+extern int _IO_vsnprintf (char *string, _IO_size_t maxlen,
+			  __const char *format, _IO_va_list args) __THROW;
+
+
+extern _IO_size_t _IO_getline (_IO_FILE *,char *, _IO_size_t, int, int)
+     __THROW;
+extern _IO_size_t _IO_getline_info (_IO_FILE *,char *, _IO_size_t,
+				    int, int, int *) __THROW;
+extern _IO_ssize_t _IO_getdelim (char **, _IO_size_t *, int, _IO_FILE *)
+     __THROW;
+extern _IO_size_t _IO_getwline (_IO_FILE *,wchar_t *, _IO_size_t, wint_t, int)
+     __THROW;
+extern _IO_size_t _IO_getwline_info (_IO_FILE *,wchar_t *, _IO_size_t,
+				     wint_t, int, wint_t *) __THROW;
+extern double _IO_strtod (const char *, char **) __THROW;
+extern char *_IO_dtoa (double __d, int __mode, int __ndigits,
+		       int *__decpt, int *__sign, char **__rve) __THROW;
+extern int _IO_outfloat (double __value, _IO_FILE *__sb, int __type,
+			 int __width, int __precision, int __flags,
+			 int __sign_mode, int __fill) __THROW;
 
 extern struct _IO_FILE_plus *_IO_list_all;
-extern void (*_IO_cleanup_registration_needed) __PMT ((void));
+extern void (*_IO_cleanup_registration_needed) (void);
 
 /* Prototype for functions with alternative entry point.  */
-extern int _IO_flush_all_internal __P ((void));
-extern unsigned _IO_adjust_column_internal __P ((unsigned, const char *, int));
-
-extern int _IO_default_uflow_internal __P ((_IO_FILE *));
-extern void _IO_default_finish_internal __P ((_IO_FILE *, int));
-extern int _IO_default_pbackfail_internal __P ((_IO_FILE *, int));
-extern _IO_size_t _IO_default_xsputn_internal __P ((_IO_FILE *, const void *,
-						    _IO_size_t));
-extern _IO_size_t _IO_default_xsgetn_internal __P ((_IO_FILE *, void *,
-						    _IO_size_t));
-extern int _IO_default_doallocate_internal __P ((_IO_FILE *));
-extern void _IO_wdefault_finish_internal __P ((_IO_FILE *, int));
-extern wint_t _IO_wdefault_pbackfail_internal __P ((_IO_FILE *, wint_t));
-extern _IO_size_t _IO_wdefault_xsputn_internal __P ((_IO_FILE *, const void *,
-						     _IO_size_t));
-extern _IO_size_t _IO_wdefault_xsgetn_internal __P ((_IO_FILE *, void *,
-						     _IO_size_t));
-extern int _IO_wdefault_doallocate_internal __P ((_IO_FILE *));
-extern wint_t _IO_wdefault_uflow_internal __P ((_IO_FILE *));
-
-extern int _IO_file_doallocate_internal __P ((_IO_FILE *));
-extern _IO_FILE* _IO_file_setbuf_internal __P ((_IO_FILE *, char *,
-						_IO_ssize_t));
-extern _IO_off64_t _IO_file_seekoff_internal __P ((_IO_FILE *, _IO_off64_t,
-						   int, int));
-extern _IO_size_t _IO_file_xsputn_internal __P ((_IO_FILE *, const void *,
-						 _IO_size_t));
-extern _IO_size_t _IO_file_xsgetn_internal __P ((_IO_FILE *, void *,
-						 _IO_size_t));
-extern int _IO_file_stat_internal __P ((_IO_FILE *, void *));
-extern int _IO_file_close_internal __P ((_IO_FILE *));
-extern int _IO_file_close_it_internal __P ((_IO_FILE *));
-extern int _IO_file_underflow_internal __P ((_IO_FILE *));
-extern int _IO_file_overflow_internal __P ((_IO_FILE *, int));
-extern void _IO_file_init_internal __P ((struct _IO_FILE_plus *));
-extern _IO_FILE* _IO_file_attach_internal __P ((_IO_FILE *, int));
-extern _IO_FILE* _IO_file_fopen_internal __P ((_IO_FILE *, const char *,
-					       const char *, int));
-extern _IO_ssize_t _IO_file_read_internal __P ((_IO_FILE *, void *,
-						_IO_ssize_t));
-extern int _IO_file_sync_internal __P ((_IO_FILE *));
-extern _IO_off64_t _IO_file_seek_internal __P ((_IO_FILE *, _IO_off64_t, int));
-extern void _IO_file_finish_internal __P ((_IO_FILE *, int));
-
-extern _IO_size_t _IO_wfile_xsputn_internal __P ((_IO_FILE *, const void *,
-						  _IO_size_t));
-extern _IO_off64_t _IO_wfile_seekoff_internal __P ((_IO_FILE *, _IO_off64_t,
-						    int, int));
-extern wint_t _IO_wfile_sync_internal __P ((_IO_FILE *));
-
-extern int _IO_str_underflow_internal __P ((_IO_FILE *));
-extern int _IO_str_overflow_internal __P ((_IO_FILE *, int));
-extern int _IO_str_pbackfail_internal __P ((_IO_FILE *, int));
-extern _IO_off64_t _IO_str_seekoff_internal __P ((_IO_FILE *, _IO_off64_t,
-						  int, int));
-extern void _IO_str_init_static_internal __P ((struct _IO_strfile_ *, char *,
-					       _IO_size_t, char *));
+extern int _IO_flush_all_internal (void) __THROW;
+extern unsigned _IO_adjust_column_internal (unsigned, const char *, int)
+     __THROW;
+
+extern int _IO_default_uflow_internal (_IO_FILE *) __THROW;
+extern void _IO_default_finish_internal (_IO_FILE *, int) __THROW;
+extern int _IO_default_pbackfail_internal (_IO_FILE *, int) __THROW;
+extern _IO_size_t _IO_default_xsputn_internal (_IO_FILE *, const void *,
+					       _IO_size_t) __THROW;
+extern _IO_size_t _IO_default_xsgetn_internal (_IO_FILE *, void *, _IO_size_t)
+     __THROW;
+extern int _IO_default_doallocate_internal (_IO_FILE *) __THROW;
+extern void _IO_wdefault_finish_internal (_IO_FILE *, int) __THROW;
+extern wint_t _IO_wdefault_pbackfail_internal (_IO_FILE *, wint_t) __THROW;
+extern _IO_size_t _IO_wdefault_xsputn_internal (_IO_FILE *, const void *,
+						_IO_size_t) __THROW;
+extern _IO_size_t _IO_wdefault_xsgetn_internal (_IO_FILE *, void *,
+						_IO_size_t) __THROW;
+extern int _IO_wdefault_doallocate_internal (_IO_FILE *) __THROW;
+extern wint_t _IO_wdefault_uflow_internal (_IO_FILE *) __THROW;
+
+extern int _IO_file_doallocate_internal (_IO_FILE *) __THROW;
+extern _IO_FILE* _IO_file_setbuf_internal (_IO_FILE *, char *, _IO_ssize_t)
+     __THROW;
+extern _IO_off64_t _IO_file_seekoff_internal (_IO_FILE *, _IO_off64_t,
+					      int, int) __THROW;
+extern _IO_size_t _IO_file_xsputn_internal (_IO_FILE *, const void *,
+					    _IO_size_t) __THROW;
+extern _IO_size_t _IO_file_xsgetn_internal (_IO_FILE *, void *, _IO_size_t)
+     __THROW;
+extern int _IO_file_stat_internal (_IO_FILE *, void *) __THROW;
+extern int _IO_file_close_internal (_IO_FILE *) __THROW;
+extern int _IO_file_close_it_internal (_IO_FILE *) __THROW;
+extern int _IO_file_underflow_internal (_IO_FILE *) __THROW;
+extern int _IO_file_overflow_internal (_IO_FILE *, int) __THROW;
+extern void _IO_file_init_internal (struct _IO_FILE_plus *) __THROW;
+extern _IO_FILE* _IO_file_attach_internal (_IO_FILE *, int) __THROW;
+extern _IO_FILE* _IO_file_fopen_internal (_IO_FILE *, const char *,
+					  const char *, int) __THROW;
+extern _IO_ssize_t _IO_file_read_internal (_IO_FILE *, void *,
+					   _IO_ssize_t) __THROW;
+extern int _IO_file_sync_internal (_IO_FILE *) __THROW;
+extern _IO_off64_t _IO_file_seek_internal (_IO_FILE *, _IO_off64_t, int)
+     __THROW;
+extern void _IO_file_finish_internal (_IO_FILE *, int) __THROW;
+
+extern _IO_size_t _IO_wfile_xsputn_internal (_IO_FILE *, const void *,
+					     _IO_size_t) __THROW;
+extern _IO_off64_t _IO_wfile_seekoff_internal (_IO_FILE *, _IO_off64_t,
+					       int, int) __THROW;
+extern wint_t _IO_wfile_sync_internal (_IO_FILE *) __THROW;
+
+extern int _IO_str_underflow_internal (_IO_FILE *) __THROW;
+extern int _IO_str_overflow_internal (_IO_FILE *, int) __THROW;
+extern int _IO_str_pbackfail_internal (_IO_FILE *, int) __THROW;
+extern _IO_off64_t _IO_str_seekoff_internal (_IO_FILE *, _IO_off64_t,
+					     int, int) __THROW;
+extern void _IO_str_init_static_internal (struct _IO_strfile_ *, char *,
+					  _IO_size_t, char *) __THROW;
 
 extern struct _IO_jump_t _IO_file_jumps_internal attribute_hidden;
 extern struct _IO_jump_t _IO_wfile_jumps_internal attribute_hidden;
 
 extern struct _IO_FILE_plus *_IO_list_all_internal attribute_hidden;
 
-extern void _IO_link_in_internal __P ((struct _IO_FILE_plus *));
-extern int _IO_sputbackc_internal __P ((_IO_FILE *, int));
-extern void _IO_wdoallocbuf_internal __P ((_IO_FILE *));
-
-extern _IO_size_t _IO_sgetn_internal (_IO_FILE *, void *, _IO_size_t);
-extern void _IO_flush_all_linebuffered_internal __P ((void));
-extern int _IO_switch_to_wget_mode_internal __P ((_IO_FILE *));
-extern void _IO_unsave_markers_internal __P ((_IO_FILE *));
-extern void _IO_switch_to_main_wget_area_internal __P ((_IO_FILE *));
-extern int _IO_wdo_write_internal __P ((_IO_FILE *, const wchar_t *,
-					_IO_size_t));
-extern int _IO_do_write_internal __P ((_IO_FILE *, const char *, _IO_size_t));
-extern _IO_ssize_t _IO_padn_internal (_IO_FILE *, int, _IO_ssize_t);
-extern _IO_size_t _IO_getline_info_internal __P ((_IO_FILE *,char *,
-						  _IO_size_t, int, int,
-						  int *));
-extern _IO_size_t _IO_getline_internal __P ((_IO_FILE *, char *, _IO_size_t,
-					     int, int));
-extern void _IO_free_wbackup_area_internal (_IO_FILE *);
-extern void _IO_free_backup_area_internal (_IO_FILE *);
-extern void _IO_switch_to_wbackup_area_internal __P ((_IO_FILE *));
-extern void _IO_setb_internal __P ((_IO_FILE *, char *, char *, int));
-extern wint_t _IO_sputbackwc_internal __P ((_IO_FILE *, wint_t));
-extern int _IO_switch_to_get_mode_internal __P ((_IO_FILE *));
+extern void _IO_link_in_internal (struct _IO_FILE_plus *) __THROW;
+extern int _IO_sputbackc_internal (_IO_FILE *, int) __THROW;
+extern void _IO_wdoallocbuf_internal (_IO_FILE *) __THROW;
+
+extern _IO_size_t _IO_sgetn_internal (_IO_FILE *, void *, _IO_size_t) __THROW;
+extern void _IO_flush_all_linebuffered_internal (void) __THROW;
+extern int _IO_switch_to_wget_mode_internal (_IO_FILE *) __THROW;
+extern void _IO_unsave_markers_internal (_IO_FILE *) __THROW;
+extern void _IO_switch_to_main_wget_area_internal (_IO_FILE *) __THROW;
+extern int _IO_wdo_write_internal (_IO_FILE *, const wchar_t *, _IO_size_t)
+     __THROW;
+extern int _IO_do_write_internal (_IO_FILE *, const char *, _IO_size_t)
+     __THROW;
+extern _IO_ssize_t _IO_padn_internal (_IO_FILE *, int, _IO_ssize_t) __THROW;
+extern _IO_size_t _IO_getline_info_internal (_IO_FILE *,char *, _IO_size_t,
+					     int, int, int *) __THROW;
+extern _IO_size_t _IO_getline_internal (_IO_FILE *, char *, _IO_size_t, int,
+					int) __THROW;
+extern void _IO_free_wbackup_area_internal (_IO_FILE *) __THROW;
+extern void _IO_free_backup_area_internal (_IO_FILE *) __THROW;
+extern void _IO_switch_to_wbackup_area_internal (_IO_FILE *) __THROW;
+extern void _IO_setb_internal (_IO_FILE *, char *, char *, int) __THROW;
+extern wint_t _IO_sputbackwc_internal (_IO_FILE *, wint_t) __THROW;
+extern int _IO_switch_to_get_mode_internal (_IO_FILE *) __THROW;
 extern int _IO_vfscanf_internal (_IO_FILE * __restrict,
 				 const char * __restrict,
 				 _IO_va_list, int *__restrict);
 extern int _IO_vfprintf_internal (_IO_FILE *__restrict, const char *__restrict,
-				  _IO_va_list);
-extern void _IO_doallocbuf_internal __P ((_IO_FILE *));
-extern void _IO_wsetb_internal __P ((_IO_FILE *, wchar_t *, wchar_t *, int));
+				  _IO_va_list) __THROW;
+extern void _IO_doallocbuf_internal (_IO_FILE *) __THROW;
+extern void _IO_wsetb_internal (_IO_FILE *, wchar_t *, wchar_t *, int)
+     __THROW;
 extern _IO_off64_t _IO_seekoff_unlocked (_IO_FILE *, _IO_off64_t, int, int)
-     attribute_hidden;
+     attribute_hidden __THROW;
 extern _IO_off64_t _IO_seekpos_unlocked (_IO_FILE *, _IO_off64_t, int)
-     attribute_hidden;
-extern int _IO_putc_internal (int __c, _IO_FILE *__fp);
-extern void _IO_init_internal __P ((_IO_FILE *, int));
-extern void _IO_un_link_internal __P ((struct _IO_FILE_plus *));
+     attribute_hidden __THROW;
+extern int _IO_putc_internal (int __c, _IO_FILE *__fp) __THROW;
+extern void _IO_init_internal (_IO_FILE *, int) __THROW;
+extern void _IO_un_link_internal (struct _IO_FILE_plus *) __THROW;
 
 #ifndef EOF
 # define EOF (-1)
@@ -856,12 +871,12 @@ extern void _IO_un_link_internal __P ((struct _IO_FILE_plus *));
 # define OS_FSTAT fstat
 #endif
 struct stat;
-extern _IO_ssize_t _IO_read __P ((int, void *, _IO_size_t));
-extern _IO_ssize_t _IO_write __P ((int, const void *, _IO_size_t));
-extern _IO_off64_t _IO_lseek __P ((int, _IO_off64_t, int));
-extern int _IO_close __P ((int));
-extern int _IO_fstat __P ((int, struct stat *));
-extern int _IO_vscanf __P ((const char *, _IO_va_list));
+extern _IO_ssize_t _IO_read (int, void *, _IO_size_t) __THROW;
+extern _IO_ssize_t _IO_write (int, const void *, _IO_size_t) __THROW;
+extern _IO_off64_t _IO_lseek (int, _IO_off64_t, int) __THROW;
+extern int _IO_close (int) __THROW;
+extern int _IO_fstat (int, struct stat *) __THROW;
+extern int _IO_vscanf (const char *, _IO_va_list) __THROW;
 
 /* _IO_pos_BAD is an _IO_off64_t value indicating error, unknown, or EOF. */
 #ifndef _IO_pos_BAD
diff --git a/libio/memstream.c b/libio/memstream.c
index 8c1280468f..4cc9ab2dfc 100644
--- a/libio/memstream.c
+++ b/libio/memstream.c
@@ -30,8 +30,8 @@ struct _IO_FILE_memstream
 };
 
 
-static int _IO_mem_sync __P ((_IO_FILE* fp));
-static void _IO_mem_finish __P ((_IO_FILE* fp, int));
+static int _IO_mem_sync (_IO_FILE* fp) __THROW;
+static void _IO_mem_finish (_IO_FILE* fp, int) __THROW;
 
 
 static const struct _IO_jump_t _IO_mem_jumps =
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index 20413978a0..b9efca7aa8 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -271,7 +271,7 @@ _IO_old_file_setbuf (fp, p, len)
     return fp;
 }
 
-static int old_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
+static int old_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
 
 /* Write TO_DO bytes from DATA to FP.
    Then mark FP as having empty buffers. */
diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c
index a06769dbb4..2fa1ac5a37 100644
--- a/libio/oldiopopen.c
+++ b/libio/oldiopopen.c
@@ -49,7 +49,7 @@
 #else
 #define _IO_fork fork /* defined in libiberty, if needed */
 #endif
-extern _IO_pid_t _IO_fork __P ((void));
+extern _IO_pid_t _IO_fork (void) __THROW;
 #endif
 
 #endif /* _IO_HAVE_SYS_WAIT */
@@ -63,7 +63,7 @@ extern _IO_pid_t _IO_fork __P ((void));
 #else
 #define _IO_pipe pipe
 #endif
-extern int _IO_pipe __P ((int des[2]));
+extern int _IO_pipe (int des[2]) __THROW;
 #endif
 
 #ifndef _IO_dup2
@@ -72,7 +72,7 @@ extern int _IO_pipe __P ((int des[2]));
 #else
 #define _IO_dup2 dup2
 #endif
-extern int _IO_dup2 __P ((int fd, int fd2));
+extern int _IO_dup2 (int fd, int fd2) __THROW;
 #endif
 
 #ifndef _IO_waitpid
diff --git a/libio/oldstdfiles.c b/libio/oldstdfiles.c
index 83749db871..642d59dd05 100644
--- a/libio/oldstdfiles.c
+++ b/libio/oldstdfiles.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,94,96,97,99,2000,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,94,96,97,99,2000,2002,2004 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
@@ -67,7 +67,7 @@ extern FILE *stdin;
 extern FILE *stdout;
 extern FILE *stderr;
 
-static void _IO_check_libio __P ((void)) __attribute__ ((constructor));
+static void _IO_check_libio (void) __THROW __attribute__ ((constructor));
 
 /* This function determines which shared C library the application
    was linked against. We then set up the stdin/stdout/stderr and
diff --git a/libio/vsnprintf.c b/libio/vsnprintf.c
index e5920438fa..e2cfb16d8a 100644
--- a/libio/vsnprintf.c
+++ b/libio/vsnprintf.c
@@ -38,7 +38,7 @@ typedef struct
 } _IO_strnfile;
 
 
-static int _IO_strn_overflow __P ((_IO_FILE *fp, int c));
+static int _IO_strn_overflow (_IO_FILE *fp, int c) __THROW;
 
 static int
 _IO_strn_overflow (fp, c)
diff --git a/libio/vswprintf.c b/libio/vswprintf.c
index 0fa9f68873..3cf01e2c84 100644
--- a/libio/vswprintf.c
+++ b/libio/vswprintf.c
@@ -38,7 +38,7 @@ typedef struct
 } _IO_strnfile;
 
 
-static wint_t _IO_wstrn_overflow __P ((_IO_FILE *fp, wint_t c));
+static wint_t _IO_wstrn_overflow (_IO_FILE *fp, wint_t c) __THROW;
 
 static wint_t
 _IO_wstrn_overflow (fp, c)
diff --git a/libio/wgenops.c b/libio/wgenops.c
index 1eb9fb26c9..a9cc7bf210 100644
--- a/libio/wgenops.c
+++ b/libio/wgenops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1995,1997-2001,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1995,1997-2001,2002,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@cygnus.com>.
    Based on the single byte version by Per Bothner <bothner@cygnus.com>.
@@ -42,7 +42,7 @@
 #endif
 
 
-static int save_for_wbackup __P ((_IO_FILE *fp, wchar_t *end_p))
+static int save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) __THROW
 #ifdef _LIBC
      internal_function
 #endif
@@ -50,7 +50,7 @@ static int save_for_wbackup __P ((_IO_FILE *fp, wchar_t *end_p))
 
 /* Return minimum _pos markers
    Assumes the current get area is the main get area. */
-_IO_ssize_t _IO_least_wmarker __P ((_IO_FILE *fp, wchar_t *end_p));
+_IO_ssize_t _IO_least_wmarker (_IO_FILE *fp, wchar_t *end_p) __THROW;
 
 _IO_ssize_t
 _IO_least_wmarker (fp, end_p)
diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c
index c365bacf98..9f3c2c1cd1 100644
--- a/locale/programs/xmalloc.c
+++ b/locale/programs/xmalloc.c
@@ -1,5 +1,5 @@
 /* xmalloc.c -- malloc with out of memory checking
-   Copyright (C) 1990,91,92,93,94,95,96,97 Free Software Foundation, Inc.
+   Copyright (C) 1990,91,92,93,94,95,96,97,2004 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
@@ -31,10 +31,10 @@
 
 #if STDC_HEADERS || _LIBC
 #include <stdlib.h>
-static VOID *fixup_null_alloc __P ((size_t n));
-VOID *xmalloc __P ((size_t n));
-VOID *xcalloc __P ((size_t n, size_t s));
-VOID *xrealloc __P ((VOID *p, size_t n));
+static VOID *fixup_null_alloc (size_t n) __THROW;
+VOID *xmalloc (size_t n) __THROW;
+VOID *xcalloc (size_t n, size_t s) __THROW;
+VOID *xrealloc (VOID *p, size_t n) __THROW;
 #else
 VOID *calloc ();
 VOID *malloc ();
diff --git a/locale/programs/xstrdup.c b/locale/programs/xstrdup.c
index 38c012c0fc..7838d201ab 100644
--- a/locale/programs/xstrdup.c
+++ b/locale/programs/xstrdup.c
@@ -1,5 +1,5 @@
 /* xstrdup.c -- copy a string with out of memory checking
-   Copyright (C) 1990, 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1996, 1997, 1999, 2004 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,8 +26,8 @@
 #else
 # include <strings.h>
 #endif
-void *xmalloc __P ((size_t n));
-char *xstrdup __P ((char *string));
+void *xmalloc (size_t n) __THROW;
+char *xstrdup (char *string) __THROW;
 
 /* Return a newly allocated copy of STRING.  */
 
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index 3ae9e8d88f..1a9522b09d 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -78,7 +78,7 @@ static __ptr_t (*tr_old_memalign_hook) (__malloc_size_t __alignment,
    set "mallwatch" to the address of interest, then put a breakpoint on
    tr_break.  */
 
-extern void tr_break __P ((void));
+extern void tr_break (void) __THROW;
 libc_hidden_proto (tr_break)
 void
 tr_break ()
@@ -86,7 +86,7 @@ tr_break ()
 }
 libc_hidden_def (tr_break)
 
-static void tr_where __P ((const __ptr_t)) internal_function;
+static void tr_where (const __ptr_t) __THROW internal_function;
 static void
 internal_function
 tr_where (caller)
@@ -134,7 +134,7 @@ tr_where (caller)
     }
 }
 
-static void tr_freehook __P ((__ptr_t, const __ptr_t));
+static void tr_freehook (__ptr_t, const __ptr_t) __THROW;
 static void
 tr_freehook (ptr, caller)
      __ptr_t ptr;
@@ -159,7 +159,7 @@ tr_freehook (ptr, caller)
   __libc_lock_unlock (lock);
 }
 
-static __ptr_t tr_mallochook __P ((__malloc_size_t, const __ptr_t));
+static __ptr_t tr_mallochook (__malloc_size_t, const __ptr_t) __THROW;
 static __ptr_t
 tr_mallochook (size, caller)
      __malloc_size_t size;
@@ -188,7 +188,8 @@ tr_mallochook (size, caller)
   return hdr;
 }
 
-static __ptr_t tr_reallochook __P ((__ptr_t, __malloc_size_t, const __ptr_t));
+static __ptr_t tr_reallochook (__ptr_t, __malloc_size_t, const __ptr_t)
+     __THROW;
 static __ptr_t
 tr_reallochook (ptr, size, caller)
      __ptr_t ptr;
@@ -234,8 +235,8 @@ tr_reallochook (ptr, size, caller)
   return hdr;
 }
 
-static __ptr_t tr_memalignhook __P ((__malloc_size_t, __malloc_size_t,
-				     const __ptr_t));
+static __ptr_t tr_memalignhook (__malloc_size_t, __malloc_size_t,
+				const __ptr_t) __THROW;
 static __ptr_t
 tr_memalignhook (alignment, size, caller)
      __malloc_size_t alignment, size;
diff --git a/misc/getttyent.c b/misc/getttyent.c
index 2ff0a7b5c2..7560170890 100644
--- a/misc/getttyent.c
+++ b/misc/getttyent.c
@@ -59,8 +59,8 @@ getttynam(tty)
 	return (t);
 }
 
-static char *skip __P((char *)) internal_function;
-static char *value __P((char *)) internal_function;
+static char *skip (char *) __THROW internal_function;
+static char *value (char *) __THROW internal_function;
 
 struct ttyent *
 getttyent()
diff --git a/misc/getusershell.c b/misc/getusershell.c
index 96ab5c8be1..95f0eab5e2 100644
--- a/misc/getusershell.c
+++ b/misc/getusershell.c
@@ -48,7 +48,7 @@ static char sccsid[] = "@(#)getusershell.c	8.1 (Berkeley) 6/4/93";
 
 static const char *okshells[] = { _PATH_BSHELL, _PATH_CSHELL, NULL };
 static char **curshell, **shells, *strings;
-static char **initshells __P((void));
+static char **initshells (void) __THROW;
 
 /*
  * Get a list of shells from _PATH_SHELLS, if it exists.
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 2271e10fdc..65e0aa3cc4 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -54,10 +54,11 @@
 #   define __NTH(fct)	fct
 #  endif
 # endif
-# define __P(args)	args __THROW
-/* This macro will be used for functions which might take C++ callback
-   functions.  */
-# define __PMT(args)	args
+/* These two macros are not usde in glibc anymore.  They are kept here
+   only because some other projects expect the macros to be
+   defined.  */
+# define __P(args)	BROKEN BROKEN args
+# define __PMT(args)	BROKEN BROKEN args
 
 #else	/* Not GCC.  */
 
diff --git a/nis/rpcsvc/ypupd.h b/nis/rpcsvc/ypupd.h
index 40e8b75c79..c53e69d0e0 100644
--- a/nis/rpcsvc/ypupd.h
+++ b/nis/rpcsvc/ypupd.h
@@ -74,7 +74,7 @@ extern  bool_t xdr_ypdelete_args (XDR *, ypdelete_args*);
 
 #define YPU_CHANGE 1
 extern  u_int * ypu_change_1 (ypupdate_args *, CLIENT *);
-extern  u_int * ypu_change_1_svc __P((ypupdate_args *, struct svc_req *));
+extern  u_int * ypu_change_1_svc (ypupdate_args *, struct svc_req *);
 #define YPU_INSERT 2
 extern  u_int * ypu_insert_1 (ypupdate_args *, CLIENT *);
 extern  u_int * ypu_insert_1_svc (ypupdate_args *, struct svc_req *);
diff --git a/posix/fnmatch.h b/posix/fnmatch.h
index c0fd6a9207..aefb007fba 100644
--- a/posix/fnmatch.h
+++ b/posix/fnmatch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,96,97,98,99,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991-93,96,97,98,99,2001,2004 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
@@ -23,19 +23,6 @@
 extern "C" {
 #endif
 
-#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
-# if !defined __GLIBC__ || !defined __P
-#  undef	__P
-#  define __P(protos)	protos
-# endif
-#else /* Not C++ or ANSI C.  */
-# undef	__P
-# define __P(protos)	()
-/* We can get away without defining `const' here only because in this file
-   it is used only inside the prototype for `fnmatch', which is elided in
-   non-ANSI C where `const' is problematical.  */
-#endif /* C++ or ANSI C.  */
-
 #ifndef const
 # if (defined __STDC__ && __STDC__) || defined __cplusplus
 #  define __const	const
@@ -75,8 +62,8 @@ extern "C" {
 
 /* Match NAME against the filename pattern PATTERN,
    returning zero if it matches, FNM_NOMATCH if not.  */
-extern int fnmatch __P ((__const char *__pattern, __const char *__name,
-			 int __flags));
+extern int fnmatch (__const char *__pattern, __const char *__name,
+		    int __flags);
 
 #ifdef	__cplusplus
 }
diff --git a/posix/glob.h b/posix/glob.h
index 6bb7c7e8c0..f8aeb22426 100644
--- a/posix/glob.h
+++ b/posix/glob.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,95,96,97,98,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,95-98,2000,2001,2004 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,11 +25,7 @@ extern "C" {
 
 #undef	__ptr_t
 #if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
-# if !defined __GLIBC__ || !defined __P
-#  undef __P
-#  undef __PMT
-#  define __P(protos)	protos
-#  define __PMT(protos)	protos
+# ifndef __GLIBC__
 #  if !defined __GNUC__ || __GNUC__ < 2
 #   undef __const
 #   define __const const
@@ -37,10 +33,6 @@ extern "C" {
 # endif
 # define __ptr_t	void *
 #else /* Not C++ or ANSI C.  */
-# undef	__P
-# undef __PMT
-# define __P(protos)	()
-# define __PMT(protos)	()
 # undef	__const
 # define __const
 # define __ptr_t	char *
@@ -120,20 +112,19 @@ typedef struct
 
     /* If the GLOB_ALTDIRFUNC flag is set, the following functions
        are used instead of the normal file access functions.  */
-    void (*gl_closedir) __PMT ((void *));
+    void (*gl_closedir) (void *);
 #ifdef _GNU_SOURCE
-    struct dirent *(*gl_readdir) __PMT ((void *));
+    struct dirent *(*gl_readdir) (void *);
 #else
-    void *(*gl_readdir) __PMT ((void *));
+    void *(*gl_readdir) (void *);
 #endif
-    __ptr_t (*gl_opendir) __PMT ((__const char *));
+    __ptr_t (*gl_opendir) (__const char *);
 #ifdef _GNU_SOURCE
-    int (*gl_lstat) __PMT ((__const char *__restrict,
-			    struct stat *__restrict));
-    int (*gl_stat) __PMT ((__const char *__restrict, struct stat *__restrict));
+    int (*gl_lstat) (__const char *__restrict, struct stat *__restrict);
+    int (*gl_stat) (__const char *__restrict, struct stat *__restrict);
 #else
-    int (*gl_lstat) __PMT ((__const char *__restrict, void *__restrict));
-    int (*gl_stat) __PMT ((__const char *__restrict, void *__restrict));
+    int (*gl_lstat) (__const char *__restrict, void *__restrict);
+    int (*gl_stat) (__const char *__restrict, void *__restrict);
 #endif
   } glob_t;
 
@@ -150,21 +141,19 @@ typedef struct
 
     /* If the GLOB_ALTDIRFUNC flag is set, the following functions
        are used instead of the normal file access functions.  */
-    void (*gl_closedir) __PMT ((void *));
+    void (*gl_closedir) (void *);
 # ifdef _GNU_SOURCE
-    struct dirent64 *(*gl_readdir) __PMT ((void *));
+    struct dirent64 *(*gl_readdir) (void *);
 # else
-    void *(*gl_readdir) __PMT ((void *));
+    void *(*gl_readdir) (void *);
 # endif
-    __ptr_t (*gl_opendir) __PMT ((__const char *));
+    __ptr_t (*gl_opendir) (__const char *);
 # ifdef _GNU_SOURCE
-    int (*gl_lstat) __PMT ((__const char *__restrict,
-			    struct stat64 *__restrict));
-    int (*gl_stat) __PMT ((__const char *__restrict,
-			   struct stat64 *__restrict));
+    int (*gl_lstat) (__const char *__restrict, struct stat64 *__restrict);
+    int (*gl_stat) (__const char *__restrict, struct stat64 *__restrict);
 # else
-    int (*gl_lstat) __PMT ((__const char *__restrict, void *__restrict));
-    int (*gl_stat) __PMT ((__const char *__restrict, void *__restrict));
+    int (*gl_lstat) (__const char *__restrict, void *__restrict);
+    int (*gl_stat) (__const char *__restrict, void *__restrict);
 # endif
   } glob64_t;
 #endif
@@ -183,26 +172,27 @@ typedef struct
    If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
    Otherwise, `glob' returns zero.  */
 #if _FILE_OFFSET_BITS != 64 || __GNUC__ < 2
-extern int glob __P ((__const char *__restrict __pattern, int __flags,
-		      int (*__errfunc) (__const char *, int),
-		      glob_t *__restrict __pglob));
+extern int glob (__const char *__restrict __pattern, int __flags,
+		 int (*__errfunc) (__const char *, int),
+		 glob_t *__restrict __pglob) __THROW;
 
 /* Free storage allocated in PGLOB by a previous `glob' call.  */
-extern void globfree __P ((glob_t *__pglob));
+extern void globfree (glob_t *__pglob) __THROW;
 #else
-extern int glob __P ((__const char *__restrict __pattern, int __flags,
-		      int (*__errfunc) (__const char *, int),
-		      glob_t *__restrict __pglob)) __asm__ ("glob64");
+extern int __REDIRECT_NTH (glob, (__const char *__restrict __pattern,
+				  int __flags,
+				  int (*__errfunc) (__const char *, int),
+				  glob_t *__restrict __pglob), glob64);
 
-extern void globfree __P ((glob_t *__pglob)) __asm__ ("globfree64");
+extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
 #endif
 
 #ifdef _LARGEFILE64_SOURCE
-extern int glob64 __P ((__const char *__restrict __pattern, int __flags,
-			int (*__errfunc) (__const char *, int),
-			glob64_t *__restrict __pglob));
+extern int glob64 (__const char *__restrict __pattern, int __flags,
+		   int (*__errfunc) (__const char *, int),
+		   glob64_t *__restrict __pglob) __THROW;
 
-extern void globfree64 __P ((glob64_t *__pglob));
+extern void globfree64 (glob64_t *__pglob) __THROW;
 #endif
 
 
@@ -212,7 +202,7 @@ extern void globfree64 __P ((glob64_t *__pglob));
 
    This function is not part of the interface specified by POSIX.2
    but several programs want to use it.  */
-extern int glob_pattern_p __P ((__const char *__pattern, int __quote));
+extern int glob_pattern_p (__const char *__pattern, int __quote) __THROW;
 #endif
 
 #ifdef	__cplusplus
diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
index 6ae1bc61ea..496c8dbe85 100644
--- a/resolv/arpa/nameser.h
+++ b/resolv/arpa/nameser.h
@@ -1,7 +1,7 @@
 /*
  * Copyright (c) 1983, 1989, 1993
  *    The Regents of the University of California.  All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
@@ -13,7 +13,7 @@
  * 4. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -499,53 +499,55 @@ typedef enum __ns_cert_types {
 #define	ns_samename		__ns_samename
 
 __BEGIN_DECLS
-u_int		ns_get16 __P((const u_char *));
-u_long		ns_get32 __P((const u_char *));
-void		ns_put16 __P((u_int, u_char *));
-void		ns_put32 __P((u_long, u_char *));
-int		ns_initparse __P((const u_char *, int, ns_msg *));
-int		ns_skiprr __P((const u_char *, const u_char *, ns_sect, int));
-int		ns_parserr __P((ns_msg *, ns_sect, int, ns_rr *));
-int		ns_sprintrr __P((const ns_msg *, const ns_rr *,
-				 const char *, const char *, char *, size_t));
-int		ns_sprintrrf __P((const u_char *, size_t, const char *,
-				  ns_class, ns_type, u_long, const u_char *,
-				  size_t, const char *, const char *,
-				  char *, size_t));
-int		ns_format_ttl __P((u_long, char *, size_t));
-int		ns_parse_ttl __P((const char *, u_long *));
-u_int32_t	ns_datetosecs __P((const char *cp, int *errp));
-int		ns_name_ntol __P((const u_char *, u_char *, size_t));
-int		ns_name_ntop __P((const u_char *, char *, size_t));
-int		ns_name_pton __P((const char *, u_char *, size_t));
-int		ns_name_unpack __P((const u_char *, const u_char *,
-				    const u_char *, u_char *, size_t));
-int		ns_name_pack __P((const u_char *, u_char *, int,
-				  const u_char **, const u_char **));
-int		ns_name_uncompress __P((const u_char *, const u_char *,
-					const u_char *, char *, size_t));
-int		ns_name_compress __P((const char *, u_char *, size_t,
-				      const u_char **, const u_char **));
-int		ns_name_skip __P((const u_char **, const u_char *));
-void		ns_name_rollback __P((const u_char *, const u_char **,
-				      const u_char **));
-int		ns_sign __P((u_char *, int *, int, int, void *,
-			     const u_char *, int, u_char *, int *, time_t));
-int		ns_sign_tcp __P((u_char *, int *, int, int,
-				 ns_tcp_tsig_state *, int));
-int		ns_sign_tcp_init __P((void *, const u_char *, int,
-					ns_tcp_tsig_state *));
-u_char		*ns_find_tsig __P((u_char *, u_char *));
-int		ns_verify __P((u_char *, int *, void *,
-			       const u_char *, int, u_char *, int *,
-			       time_t *, int));
-int		ns_verify_tcp __P((u_char *, int *, ns_tcp_tsig_state *, int));
-int		ns_verify_tcp_init __P((void *, const u_char *, int,
-					ns_tcp_tsig_state *));
-int		ns_samedomain __P((const char *, const char *));
-int		ns_subdomain __P((const char *, const char *));
-int		ns_makecanon __P((const char *, char *, size_t));
-int		ns_samename __P((const char *, const char *));
+u_int		ns_get16 (const u_char *) __THROW;
+u_long		ns_get32 (const u_char *) __THROW;
+void		ns_put16 (u_int, u_char *) __THROW;
+void		ns_put32 (u_long, u_char *) __THROW;
+int		ns_initparse (const u_char *, int, ns_msg *) __THROW;
+int		ns_skiprr (const u_char *, const u_char *, ns_sect, int)
+     __THROW;
+int		ns_parserr (ns_msg *, ns_sect, int, ns_rr *) __THROW;
+int		ns_sprintrr (const ns_msg *, const ns_rr *,
+			     const char *, const char *, char *, size_t)
+     __THROW;
+int		ns_sprintrrf (const u_char *, size_t, const char *,
+			      ns_class, ns_type, u_long, const u_char *,
+			      size_t, const char *, const char *,
+			      char *, size_t) __THROW;
+int		ns_format_ttl (u_long, char *, size_t) __THROW;
+int		ns_parse_ttl (const char *, u_long *) __THROW;
+u_int32_t	ns_datetosecs (const char *cp, int *errp) __THROW;
+int		ns_name_ntol (const u_char *, u_char *, size_t) __THROW;
+int		ns_name_ntop (const u_char *, char *, size_t) __THROW;
+int		ns_name_pton (const char *, u_char *, size_t) __THROW;
+int		ns_name_unpack (const u_char *, const u_char *,
+				const u_char *, u_char *, size_t) __THROW;
+int		ns_name_pack (const u_char *, u_char *, int,
+			      const u_char **, const u_char **) __THROW;
+int		ns_name_uncompress (const u_char *, const u_char *,
+				    const u_char *, char *, size_t) __THROW;
+int		ns_name_compress (const char *, u_char *, size_t,
+				  const u_char **, const u_char **) __THROW;
+int		ns_name_skip (const u_char **, const u_char *) __THROW;
+void		ns_name_rollback (const u_char *, const u_char **,
+				  const u_char **) __THROW;
+int		ns_sign (u_char *, int *, int, int, void *,
+			 const u_char *, int, u_char *, int *, time_t) __THROW;
+int		ns_sign_tcp (u_char *, int *, int, int,
+			     ns_tcp_tsig_state *, int) __THROW;
+int		ns_sign_tcp_init (void *, const u_char *, int,
+				  ns_tcp_tsig_state *) __THROW;
+u_char		*ns_find_tsig (u_char *, u_char *) __THROW;
+int		ns_verify (u_char *, int *, void *, const u_char *, int,
+			   u_char *, int *, time_t *, int) __THROW;
+int		ns_verify_tcp (u_char *, int *, ns_tcp_tsig_state *, int)
+     __THROW;
+int		ns_verify_tcp_init (void *, const u_char *, int,
+				    ns_tcp_tsig_state *) __THROW;
+int		ns_samedomain (const char *, const char *) __THROW;
+int		ns_subdomain (const char *, const char *) __THROW;
+int		ns_makecanon (const char *, char *, size_t) __THROW;
+int		ns_samename (const char *, const char *) __THROW;
 __END_DECLS
 
 #ifdef BIND_4_COMPAT
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index ac636711a5..1a4b08ecdc 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -108,11 +108,11 @@ static u_char host_addr[16];	/* IPv4 or IPv6 */
 static FILE *hostf = NULL;
 static int stayopen = 0;
 
-static void map_v4v6_address __P((const char *src, char *dst));
-static void map_v4v6_hostent __P((struct hostent *hp, char **bp, int *len));
+static void map_v4v6_address (const char *src, char *dst) __THROW;
+static void map_v4v6_hostent (struct hostent *hp, char **bp, int *len) __THROW;
 
 #ifdef RESOLVSORT
-extern void addrsort __P((char **, int));
+extern void addrsort (char **, int) __THROW;
 #endif
 
 #if PACKETSZ > 65536
diff --git a/resolv/inet_net_ntop.c b/resolv/inet_net_ntop.c
index ac7160532e..e50c6a049b 100644
--- a/resolv/inet_net_ntop.c
+++ b/resolv/inet_net_ntop.c
@@ -35,8 +35,8 @@ static const char rcsid[] = "$BINDId: inet_net_ntop.c,v 1.6 1999/01/08 19:23:42
 # define SPRINTF(x) ((size_t)sprintf x)
 #endif
 
-static char *	inet_net_ntop_ipv4 __P((const u_char *src, int bits,
-					char *dst, size_t size));
+static char *	inet_net_ntop_ipv4 (const u_char *src, int bits,
+				    char *dst, size_t size) __THROW;
 
 /*
  * char *
diff --git a/resolv/inet_net_pton.c b/resolv/inet_net_pton.c
index a7e597ab92..14916f83f8 100644
--- a/resolv/inet_net_pton.c
+++ b/resolv/inet_net_pton.c
@@ -37,8 +37,8 @@ static const char rcsid[] = "$BINDId: inet_net_pton.c,v 1.11 1999/01/08 19:23:44
 # define SPRINTF(x) ((size_t)sprintf x)
 #endif
 
-static int	inet_net_pton_ipv4 __P((const char *src, u_char *dst,
-					size_t size));
+static int	inet_net_pton_ipv4 (const char *src, u_char *dst,
+				    size_t size) __THROW;
 
 /*
  * static int
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index a5d2c7945f..6ff60f3119 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -94,9 +94,9 @@ typedef union querybuf
 
 /* These functions are defined in res_comp.c.  */
 #define NS_MAXCDNAME	255	/* maximum compressed domain name */
-extern int __ns_name_ntop __P ((const u_char *, char *, size_t));
-extern int __ns_name_unpack __P ((const u_char *, const u_char *,
-				  const u_char *, u_char *, size_t));
+extern int __ns_name_ntop (const u_char *, char *, size_t) __THROW;
+extern int __ns_name_unpack (const u_char *, const u_char *,
+			     const u_char *, u_char *, size_t) __THROW;
 
 
 /* Prototypes for local functions.  */
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 3d3e5725e6..4087597a87 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -99,7 +99,7 @@ static void res_setoptions (res_state, const char *, const char *)
 #ifdef RESOLVSORT
 static const char sort_mask_chars[] = "/&";
 #define ISSORTMASK(ch) (strchr(sort_mask_chars, ch) != NULL)
-static u_int32_t net_mask __P((struct in_addr));
+static u_int32_t net_mask (struct in_addr) __THROW;
 #endif
 
 #if !defined(isascii)	/* XXX - could be a function */
diff --git a/resolv/resolv.h b/resolv/resolv.h
index 1b2ea7f0fe..d7cda117fd 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -253,20 +253,20 @@ __END_DECLS
 #define res_send		__res_send
 
 __BEGIN_DECLS
-void		fp_nquery __P((const u_char *, int, FILE *));
-void		fp_query __P((const u_char *, FILE *));
-const char *	hostalias __P((const char *));
-void		p_query __P((const u_char *));
-void		res_close __P((void));
-int		res_init __P((void));
-int		res_isourserver __P((const struct sockaddr_in *));
-int		res_mkquery __P((int, const char *, int, int, const u_char *,
-				 int, const u_char *, u_char *, int));
-int		res_query __P((const char *, int, int, u_char *, int));
-int		res_querydomain __P((const char *, const char *, int, int,
-				     u_char *, int));
-int		res_search __P((const char *, int, int, u_char *, int));
-int		res_send __P((const u_char *, int, u_char *, int));
+void		fp_nquery (const u_char *, int, FILE *) __THROW;
+void		fp_query (const u_char *, FILE *) __THROW;
+const char *	hostalias (const char *) __THROW;
+void		p_query (const u_char *) __THROW;
+void		res_close (void) __THROW;
+int		res_init (void) __THROW;
+int		res_isourserver (const struct sockaddr_in *) __THROW;
+int		res_mkquery (int, const char *, int, int, const u_char *,
+			     int, const u_char *, u_char *, int) __THROW;
+int		res_query (const char *, int, int, u_char *, int) __THROW;
+int		res_querydomain (const char *, const char *, int, int,
+				 u_char *, int) __THROW;
+int		res_search (const char *, int, int, u_char *, int) __THROW;
+int		res_send (const u_char *, int, u_char *, int) __THROW;
 __END_DECLS
 #endif
 
@@ -313,62 +313,64 @@ __END_DECLS
 #define sym_ntos		__sym_ntos
 #define sym_ston		__sym_ston
 __BEGIN_DECLS
-int		res_hnok __P((const char *));
-int		res_ownok __P((const char *));
-int		res_mailok __P((const char *));
-int		res_dnok __P((const char *));
-int		sym_ston __P((const struct res_sym *, const char *, int *));
-const char *	sym_ntos __P((const struct res_sym *, int, int *));
-const char *	sym_ntop __P((const struct res_sym *, int, int *));
-int		b64_ntop __P((u_char const *, size_t, char *, size_t));
-int		b64_pton __P((char const *, u_char *, size_t));
-int		loc_aton __P((const char *ascii, u_char *binary));
-const char *	loc_ntoa __P((const u_char *binary, char *ascii));
-int		dn_skipname __P((const u_char *, const u_char *));
-void		putlong __P((u_int32_t, u_char *));
-void		putshort __P((u_int16_t, u_char *));
-const char *	p_class __P((int));
-const char *	p_time __P((u_int32_t));
-const char *	p_type __P((int));
-const char *	p_rcode __P((int));
-const u_char *	p_cdnname __P((const u_char *, const u_char *, int, FILE *));
-const u_char *	p_cdname __P((const u_char *, const u_char *, FILE *));
-const u_char *	p_fqnname __P((const u_char *cp, const u_char *msg,
-			       int, char *, int));
-const u_char *	p_fqname __P((const u_char *, const u_char *, FILE *));
-const char *	p_option __P((u_long option));
-char *		p_secstodate __P((u_long));
-int		dn_count_labels __P((const char *));
-int		dn_comp __P((const char *, u_char *, int,
-			     u_char **, u_char **));
-int		dn_expand __P((const u_char *, const u_char *, const u_char *,
-			       char *, int));
-u_int		res_randomid __P((void));
-int		res_nameinquery __P((const char *, int, int,
-				     const u_char *, const u_char *));
-int		res_queriesmatch __P((const u_char *, const u_char *,
-				      const u_char *, const u_char *));
-const char *	p_section __P((int section, int opcode));
+int		res_hnok (const char *) __THROW;
+int		res_ownok (const char *) __THROW;
+int		res_mailok (const char *) __THROW;
+int		res_dnok (const char *) __THROW;
+int		sym_ston (const struct res_sym *, const char *, int *) __THROW;
+const char *	sym_ntos (const struct res_sym *, int, int *) __THROW;
+const char *	sym_ntop (const struct res_sym *, int, int *) __THROW;
+int		b64_ntop (u_char const *, size_t, char *, size_t) __THROW;
+int		b64_pton (char const *, u_char *, size_t) __THROW;
+int		loc_aton (const char *ascii, u_char *binary) __THROW;
+const char *	loc_ntoa (const u_char *binary, char *ascii) __THROW;
+int		dn_skipname (const u_char *, const u_char *) __THROW;
+void		putlong (u_int32_t, u_char *) __THROW;
+void		putshort (u_int16_t, u_char *) __THROW;
+const char *	p_class (int) __THROW;
+const char *	p_time (u_int32_t) __THROW;
+const char *	p_type (int) __THROW;
+const char *	p_rcode (int) __THROW;
+const u_char *	p_cdnname (const u_char *, const u_char *, int, FILE *)
+     __THROW;
+const u_char *	p_cdname (const u_char *, const u_char *, FILE *) __THROW;
+const u_char *	p_fqnname (const u_char *cp, const u_char *msg,
+			   int, char *, int) __THROW;
+const u_char *	p_fqname (const u_char *, const u_char *, FILE *) __THROW;
+const char *	p_option (u_long option) __THROW;
+char *		p_secstodate (u_long) __THROW;
+int		dn_count_labels (const char *) __THROW;
+int		dn_comp (const char *, u_char *, int, u_char **, u_char **)
+     __THROW;
+int		dn_expand (const u_char *, const u_char *, const u_char *,
+			   char *, int) __THROW;
+u_int		res_randomid (void) __THROW;
+int		res_nameinquery (const char *, int, int,
+				 const u_char *, const u_char *) __THROW;
+int		res_queriesmatch (const u_char *, const u_char *,
+				  const u_char *, const u_char *) __THROW;
+const char *	p_section (int section, int opcode) __THROW;
 /* Things involving a resolver context. */
-int		res_ninit __P((res_state));
-int		res_nisourserver __P((const res_state,
-				      const struct sockaddr_in *));
-void		fp_resstat __P((const res_state, FILE *));
-void		res_npquery __P((const res_state, const u_char *, int, FILE *));
-const char *	res_hostalias __P((const res_state, const char *,
-				   char *, size_t));
-int		res_nquery __P((res_state,
-				const char *, int, int, u_char *, int));
-int		res_nsearch __P((res_state, const char *, int,
-				 int, u_char *, int));
-int		res_nquerydomain __P((res_state,
-				      const char *, const char *, int, int,
-				      u_char *, int));
-int		res_nmkquery __P((res_state,
-				  int, const char *, int, int, const u_char *,
-				  int, const u_char *, u_char *, int));
-int		res_nsend __P((res_state, const u_char *, int, u_char *, int));
-void		res_nclose __P((res_state));
+int		res_ninit (res_state) __THROW;
+int		res_nisourserver (const res_state,
+				  const struct sockaddr_in *) __THROW;
+void		fp_resstat (const res_state, FILE *) __THROW;
+void		res_npquery (const res_state, const u_char *, int, FILE *)
+     __THROW;
+const char *	res_hostalias (const res_state, const char *, char *, size_t)
+     __THROW;
+int		res_nquery (res_state, const char *, int, int, u_char *, int)
+     __THROW;
+int		res_nsearch (res_state, const char *, int, int, u_char *, int)
+     __THROW;
+int		res_nquerydomain (res_state, const char *, const char *, int,
+				  int, u_char *, int) __THROW;
+int		res_nmkquery (res_state, int, const char *, int, int,
+			      const u_char *, int, const u_char *, u_char *,
+			      int) __THROW;
+int		res_nsend (res_state, const u_char *, int, u_char *, int)
+     __THROW;
+void		res_nclose (res_state) __THROW;
 __END_DECLS
 #endif
 
diff --git a/stdio-common/reg-printf.c b/stdio-common/reg-printf.c
index 826035ca6d..dbb6234e5f 100644
--- a/stdio-common/reg-printf.c
+++ b/stdio-common/reg-printf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1996,1997,2002,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1996,1997,2002,2003,2004 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,8 +27,8 @@ libc_freeres_ptr (printf_arginfo_function **__printf_arginfo_table)
   attribute_hidden;
 printf_function **__printf_function_table attribute_hidden;
 
-int __register_printf_function __P ((int, printf_function,
-                                     printf_arginfo_function));
+int __register_printf_function (int, printf_function,
+				printf_arginfo_function) __THROW;
 
 /* Register FUNC to be called to format SPEC specifiers.  */
 int
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index ee0326e43b..38da382efa 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -157,20 +157,20 @@ static const CHAR_T null[] = L_("(null)");
 
 
 /* Helper function to provide temporary buffering for unbuffered streams.  */
-static int buffered_vfprintf __P ((FILE *stream, const CHAR_T *fmt, va_list))
-     __attribute__ ((noinline)) internal_function;
+static int buffered_vfprintf (FILE *stream, const CHAR_T *fmt, va_list)
+     __THROW __attribute__ ((noinline)) internal_function;
 
 /* Handle unknown format specifier.  */
-static int printf_unknown __P ((FILE *, const struct printf_info *,
-				const void *const *));
+static int printf_unknown (FILE *, const struct printf_info *,
+			   const void *const *) __THROW;
 
 /* Group digits of number string.  */
 #ifdef COMPILE_WPRINTF
-static CHAR_T *group_number __P ((CHAR_T *, CHAR_T *, const char *, wchar_t))
-     internal_function;
+static CHAR_T *group_number (CHAR_T *, CHAR_T *, const char *, wchar_t)
+     __THROW internal_function;
 #else
-static CHAR_T *group_number __P ((CHAR_T *, CHAR_T *, const char *,
-				  const char *)) internal_function;
+static CHAR_T *group_number (CHAR_T *, CHAR_T *, const char *, const char *)
+     __THROW internal_function;
 #endif
 
 
diff --git a/sysdeps/generic/chflags.c b/sysdeps/generic/chflags.c
index e791e1caeb..b678121265 100644
--- a/sysdeps/generic/chflags.c
+++ b/sysdeps/generic/chflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2004 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
@@ -22,7 +22,7 @@
 
 /* Change the flags of FILE to FLAGS.  */
 
-int chflags __P ((const char *file, int flags));
+int chflags (const char *file, int flags) __THROW;
 
 int
 chflags (file, flags)
diff --git a/sysdeps/generic/fchflags.c b/sysdeps/generic/fchflags.c
index 77359fe155..f191194c12 100644
--- a/sysdeps/generic/fchflags.c
+++ b/sysdeps/generic/fchflags.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2004 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
@@ -22,7 +22,7 @@
 
 /* Change the flags of the file FD refers to to FLAGS.  */
 
-int fchflags __P ((int fd, int flags));
+int fchflags (int fd, int flags) __THROW;
 
 int
 fchflags (fd, flags)
diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c
index 53e17330f4..a6d6ada8bd 100644
--- a/sysdeps/generic/glob.c
+++ b/sysdeps/generic/glob.c
@@ -334,23 +334,22 @@ extern char *alloca ();
 #include <glob.h>
 
 #ifdef HAVE_GETLOGIN_R
-extern int getlogin_r __PMT ((char *, size_t));
+extern int getlogin_r (char *, size_t);
 #else
-extern char *getlogin __PMT ((void));
+extern char *getlogin (void);
 #endif
 
-static const char *next_brace_sub __P ((const char *begin, int flags));
+static const char *next_brace_sub (const char *begin, int flags) __THROW;
 
 #endif /* GLOB_ONLY_P */
 
-static int glob_in_dir __PMT ((const char *pattern, const char *directory,
-			       int flags,
-			       int (*errfunc) (const char *, int),
-			       glob_t *pglob));
+static int glob_in_dir (const char *pattern, const char *directory,
+			int flags, int (*errfunc) (const char *, int),
+			glob_t *pglob);
 
 #if !defined _LIBC || !defined GLOB_ONLY_P
-static int prefix_array __P ((const char *prefix, char **array, size_t n));
-static int collated_compare __P ((const __ptr_t, const __ptr_t));
+static int prefix_array (const char *prefix, char **array, size_t n) __THROW;
+static int collated_compare (const __ptr_t, const __ptr_t) __THROW;
 
 
 /* Find the end of the sub-pattern in a brace expression.  */
@@ -396,7 +395,7 @@ GLOB_ATTRIBUTE
 glob (pattern, flags, errfunc, pglob)
      const char *pattern;
      int flags;
-     int (*errfunc) __PMT ((const char *, int));
+     int (*errfunc) (const char *, int);
      glob_t *pglob;
 {
   const char *filename;
@@ -1283,7 +1282,7 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
      const char *pattern;
      const char *directory;
      int flags;
-     int (*errfunc) __PMT ((const char *, int));
+     int (*errfunc) (const char *, int);
      glob_t *pglob;
 {
   __ptr_t stream = NULL;
diff --git a/sysdeps/generic/memcmp.c b/sysdeps/generic/memcmp.c
index 212098a906..2f8cf344af 100644
--- a/sysdeps/generic/memcmp.c
+++ b/sysdeps/generic/memcmp.c
@@ -31,14 +31,6 @@
 # define __ptr_t	char *
 #endif /* C++ or ANSI C.  */
 
-#ifndef __P
-# if defined __GNUC__ || (defined __STDC__ && __STDC__)
-#  define __P(args) args
-# else
-#  define __P(args) ()
-# endif  /* GCC.  */
-#endif  /* Not __P.  */
-
 #if defined HAVE_STRING_H || defined _LIBC
 # include <string.h>
 #endif
@@ -102,7 +94,7 @@ typedef unsigned char byte;
    A and B are known to be different.
    This is needed only on little-endian machines.  */
 
-static int memcmp_bytes __P((op_t, op_t));
+static int memcmp_bytes (op_t, op_t) __THROW;
 
 # ifdef  __GNUC__
 __inline
@@ -127,7 +119,7 @@ memcmp_bytes (a, b)
 }
 #endif
 
-static int memcmp_common_alignment __P((long, long, size_t));
+static int memcmp_common_alignment (long, long, size_t) __THROW;
 
 /* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
    objects (not LEN bytes!).  Both SRCP1 and SRCP2 should be aligned for
@@ -214,7 +206,7 @@ memcmp_common_alignment (srcp1, srcp2, len)
   return 0;
 }
 
-static int memcmp_not_common_alignment __P((long, long, size_t));
+static int memcmp_not_common_alignment (long, long, size_t) __THROW;
 
 /* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
    `op_t' objects (not LEN bytes!).  SRCP2 should be aligned for memory
diff --git a/sysdeps/generic/memcopy.h b/sysdeps/generic/memcopy.h
index f6d21cfd87..bc5c18d4a5 100644
--- a/sysdeps/generic/memcopy.h
+++ b/sysdeps/generic/memcopy.h
@@ -1,5 +1,5 @@
 /* memcopy.h -- definitions for memory copy functions.  Generic C version.
-   Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 1993, 1997, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
@@ -111,8 +111,8 @@ typedef unsigned char byte;
    the assumption that DST_BP is aligned on an OPSIZ multiple.  If
    not all bytes could be easily copied, store remaining number of bytes
    in NBYTES_LEFT, otherwise store 0.  */
-extern void _wordcopy_fwd_aligned __P ((long int, long int, size_t));
-extern void _wordcopy_fwd_dest_aligned __P ((long int, long int, size_t));
+extern void _wordcopy_fwd_aligned (long int, long int, size_t) __THROW;
+extern void _wordcopy_fwd_dest_aligned (long int, long int, size_t) __THROW;
 #define WORD_COPY_FWD(dst_bp, src_bp, nbytes_left, nbytes)		      \
   do									      \
     {									      \
@@ -131,8 +131,8 @@ extern void _wordcopy_fwd_dest_aligned __P ((long int, long int, size_t));
    DST_END_PTR is aligned on an OPSIZ multiple.  If not all bytes could be
    easily copied, store remaining number of bytes in NBYTES_REMAINING,
    otherwise store 0.  */
-extern void _wordcopy_bwd_aligned __P ((long int, long int, size_t));
-extern void _wordcopy_bwd_dest_aligned __P ((long int, long int, size_t));
+extern void _wordcopy_bwd_aligned (long int, long int, size_t) __THROW;
+extern void _wordcopy_bwd_dest_aligned (long int, long int, size_t) __THROW;
 #define WORD_COPY_BWD(dst_ep, src_ep, nbytes_left, nbytes)		      \
   do									      \
     {									      \
diff --git a/sysdeps/generic/morecore.c b/sysdeps/generic/morecore.c
index 11a12e6d2b..0a66ef5a85 100644
--- a/sysdeps/generic/morecore.c
+++ b/sysdeps/generic/morecore.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 97, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,97,2002,2004 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
@@ -31,7 +31,7 @@
 
 #include <stddef.h>
 #include <stdlib.h>
-extern __malloc_ptr_t __sbrk __P ((ptrdiff_t increment));
+extern __malloc_ptr_t __sbrk (ptrdiff_t increment) __THROW;
 libc_hidden_proto (__sbrk)
 #endif
 
diff --git a/sysdeps/generic/printf_fphex.c b/sysdeps/generic/printf_fphex.c
index 5b18c5ebb0..fd790d5bf3 100644
--- a/sysdeps/generic/printf_fphex.c
+++ b/sysdeps/generic/printf_fphex.c
@@ -1,5 +1,5 @@
 /* Print floating point number in hexadecimal notation according to ISO C99.
-   Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+   Copyright (C) 1997-2002,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -49,7 +49,7 @@
 #else	/* ! USE_IN_LIBIO */
 # define PUT(f, s, n) fwrite (s, 1, n, f)
 # define PAD(f, c, n) __printf_pad (f, c, n)
-ssize_t __printf_pad __P ((FILE *, char pad, int n)); /* In vfprintf.c.  */
+ssize_t __printf_pad (FILE *, char pad, int n) __THROW; /* In vfprintf.c.  */
 #endif	/* USE_IN_LIBIO */
 
 /* Macros for doing the actual output.  */
diff --git a/sysdeps/generic/sstk.c b/sysdeps/generic/sstk.c
index ce5cc72d91..6cba9b7fba 100644
--- a/sysdeps/generic/sstk.c
+++ b/sysdeps/generic/sstk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2004 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
@@ -21,7 +21,7 @@
 /* Increase the size of the stack by INCREMENT,
    and return the address of the bottom of the stack.  */
 
-void *sstk __P ((int increment));
+void *sstk (int increment) __THROW;
 
 void *
 sstk (increment)
diff --git a/sysdeps/posix/sigvec.c b/sysdeps/posix/sigvec.c
index 52f514062c..22a7593325 100644
--- a/sysdeps/posix/sigvec.c
+++ b/sysdeps/posix/sigvec.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,94,95,96,97,98,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,1994-98,2002,2004 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
@@ -32,7 +32,7 @@ struct sigvec_wrapper_data
   unsigned int sw_mask;
 };
 
-static void sigvec_wrapper_handler __P ((int sig));
+static void sigvec_wrapper_handler (int sig) __THROW;
 
 static struct sigvec_wrapper_data sigvec_wrapper_data[NSIG];
 #endif
diff --git a/sysdeps/posix/ttyname_r.c b/sysdeps/posix/ttyname_r.c
index eeda429ddf..37916de268 100644
--- a/sysdeps/posix/ttyname_r.c
+++ b/sysdeps/posix/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,95,96,97,98,2004 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
@@ -32,9 +32,9 @@
 
 static const char dev[] = "/dev";
 
-static int getttyname_r __P ((int fd, char *buf, size_t buflen,
-			      dev_t mydev, ino_t myino, int save,
-			      int *dostat)) internal_function;
+static int getttyname_r (int fd, char *buf, size_t buflen,
+			 dev_t mydev, ino_t myino, int save,
+			 int *dostat) __THROW internal_function;
 
 static int
 internal_function
diff --git a/sysdeps/standalone/arm/bits/errno.h b/sysdeps/standalone/arm/bits/errno.h
index d7db91db89..8e10754330 100644
--- a/sysdeps/standalone/arm/bits/errno.h
+++ b/sysdeps/standalone/arm/bits/errno.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1994,1996,1997,1998,2004 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,4 +62,4 @@
 
 
 /* Function to get address of global `errno' variable.  */
-extern int *__errno_location __P ((void)) __attribute__ ((__const__));
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
diff --git a/sysdeps/standalone/i386/force_cpu386/_exit.c b/sysdeps/standalone/i386/force_cpu386/_exit.c
index 2b1d090fa8..2da822e99b 100644
--- a/sysdeps/standalone/i386/force_cpu386/_exit.c
+++ b/sysdeps/standalone/i386/force_cpu386/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997, 1999, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
      On-Line Applications Research Corporation.
@@ -23,7 +23,7 @@
 
 /* This returns control to FORCEbug. */
 
-void Bsp_cleanup __P ((void));
+void Bsp_cleanup (void);
 
 /* The function `_exit' should take a status argument and simply
    terminate program execution, using the low-order 8 bits of the
diff --git a/sysdeps/standalone/i386/force_cpu386/brdinit.c b/sysdeps/standalone/i386/force_cpu386/brdinit.c
index e94dc35f63..8392ce5857 100644
--- a/sysdeps/standalone/i386/force_cpu386/brdinit.c
+++ b/sysdeps/standalone/i386/force_cpu386/brdinit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
      On-Line Applications Research Corporation.
@@ -25,7 +25,7 @@
 
 This routine initializes the FORCE CPU386 board.  */
 
-void _Console_Initialize __P ((void));
+void _Console_Initialize (void);
 
 void
 _Board_Initialize ()
diff --git a/sysdeps/standalone/standalone.h b/sysdeps/standalone/standalone.h
index 4a881991a7..20a0c33806 100644
--- a/sysdeps/standalone/standalone.h
+++ b/sysdeps/standalone/standalone.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 2004 Free Software Foundation, Inc.
    Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
      On-Line Applications Research Corporation.
    This file is part of the GNU C Library.
@@ -23,9 +23,9 @@
 
 #include <sys/cdefs.h>
 
-extern void _Board_Initialize __P ((void));
+extern void _Board_Initialize (void);
 
-extern int _Console_Putc __P ((char c));
-extern int _Console_Getc __P ((int poll));
+extern int _Console_Putc (char c);
+extern int _Console_Getc (int poll);
 
 #endif
diff --git a/sysdeps/unix/arm/start.c b/sysdeps/unix/arm/start.c
index 8e291cc60f..6bf08b1d7f 100644
--- a/sysdeps/unix/arm/start.c
+++ b/sysdeps/unix/arm/start.c
@@ -1,5 +1,5 @@
 /* Special startup code for ARM a.out binaries.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2004 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
@@ -45,8 +45,8 @@ int __data_start = 0;
 weak_alias (__data_start, data_start)
 #endif
 
-extern void __libc_init __P ((int argc, char **argv, char **envp));
-extern int main __P ((int argc, char **argv, char **envp));
+extern void __libc_init (int argc, char **argv, char **envp);
+extern int main (int argc, char **argv, char **envp);
 
 /* N.B.: It is important that this be the first function.
    This file is the first thing in the text section.  */
diff --git a/sysdeps/unix/bsd/sigaction.c b/sysdeps/unix/bsd/sigaction.c
index 4b6a2742c8..ba73400af2 100644
--- a/sysdeps/unix/bsd/sigaction.c
+++ b/sysdeps/unix/bsd/sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2002,2004 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
@@ -51,7 +51,7 @@ __sigaction (sig, act, oact)
 
   if (oact != NULL)
     {
-      oact->sa_handler = (void (*) __P ((int))) ovec.sv_handler;
+      oact->sa_handler = (void (*) (int)) ovec.sv_handler;
       oact->sa_mask = ovec.sv_mask;
       oact->sa_flags = (((ovec.sv_flags & SV_ONSTACK) ? SA_ONSTACK : 0) |
 			(!(ovec.sv_flags & SV_INTERRUPT) ? SA_RESTART : 0));
diff --git a/sysdeps/unix/bsd/sun/m68k/sigtramp.c b/sysdeps/unix/bsd/sun/m68k/sigtramp.c
index bb10848beb..5a3ca3cf10 100644
--- a/sysdeps/unix/bsd/sun/m68k/sigtramp.c
+++ b/sysdeps/unix/bsd/sun/m68k/sigtramp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996, 1997, 2004 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
@@ -82,8 +82,8 @@ trampoline (sig, code, context, addr)
   /* XXX should save/restore FP regs */
 
   /* Call the user's handler.  */
-  (*((void (*) __P ((int sig, int code, struct sigcontext *context,
-		       PTR addr))) handlers[sig]))
+  (*((void (*) (int sig, int code, struct sigcontext *context,
+		PTR addr)) handlers[sig]))
     (sig, code, context, addr);
 
   /* Restore the call-clobbered registers.  */
diff --git a/sysdeps/unix/bsd/sun/sparc/sigtramp.c b/sysdeps/unix/bsd/sun/sparc/sigtramp.c
index 2b0be13159..e11f7e51d3 100644
--- a/sysdeps/unix/bsd/sun/sparc/sigtramp.c
+++ b/sysdeps/unix/bsd/sun/sparc/sigtramp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1994,1996,1997,2004 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
@@ -50,8 +50,8 @@
 #include <errno.h>
 
 /* Defined in __sigvec.S.  */
-extern int __raw_sigvec __P ((int sig, CONST struct sigvec *vec,
-			      struct sigvec *ovec));
+extern int __raw_sigvec (int sig, CONST struct sigvec *vec,
+			 struct sigvec *ovec);
 
 /* User-specified signal handlers.  */
 #define mytramp 1
@@ -146,8 +146,8 @@ trampoline (sig)
   glsave[2] = g6;
 
   /* Call the user's handler.  */
-  (*((void (*) __P ((int sig, int code, struct sigcontext *context,
-		     void *addr))) handlers[sig]))
+  (*((void (*) (int sig, int code, struct sigcontext *context,
+		void *addr)) handlers[sig]))
     (sig, code, context, addr);
 
   /* Restore the Y register.  */
diff --git a/sysdeps/unix/bsd/sun/sunos4/wait4.c b/sysdeps/unix/bsd/sun/sunos4/wait4.c
index a12823467d..097c15e7d9 100644
--- a/sysdeps/unix/bsd/sun/sunos4/wait4.c
+++ b/sysdeps/unix/bsd/sun/sunos4/wait4.c
@@ -1,7 +1,7 @@
 /* This implements wait4 with the 4.4 BSD semantics (also those documented in
    SunOS 4.1) on top of SunOS's wait4 system call, which has semantics
    different from those documented.  Go Sun!
-   Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1991,1992,1993,1995,1997,2004 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
@@ -23,8 +23,8 @@
 #include <sys/wait.h>
 #include <unistd.h>
 
-extern pid_t __wait4_syscall __P ((pid_t pid, __WAIT_STATUS_DEFN stat_loc,
-				   int options, struct rusage *usage));
+extern pid_t __wait4_syscall (pid_t pid, __WAIT_STATUS_DEFN stat_loc,
+			      int options, struct rusage *usage);
 
 pid_t
 __wait4 (pid, stat_loc, options, usage)
diff --git a/sysdeps/unix/bsd/ultrix4/mips/sigvec.c b/sysdeps/unix/bsd/ultrix4/mips/sigvec.c
index f6c8f1fe95..5775c9adb9 100644
--- a/sysdeps/unix/bsd/ultrix4/mips/sigvec.c
+++ b/sysdeps/unix/bsd/ultrix4/mips/sigvec.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1996, 1997, 2004 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
@@ -35,15 +35,15 @@
 /* The user's signal handler is called with three arguments.  */
 typedef void (*handler_type) (int sig, int code, struct sigcontext *);
 
-extern int __raw_sigvec __P ((int sig, CONST struct sigvec *vec,
-			     struct sigvec *ovec,
-			     void (*)(int sig, int code,
-				      struct sigcontext *,
-				      handler_type)));
+extern int __raw_sigvec (int sig, CONST struct sigvec *vec,
+			 struct sigvec *ovec,
+			 void (*)(int sig, int code,
+				  struct sigcontext *,
+				  handler_type));
 
-extern void __handler __P ((int sig, int code,
-			    struct sigcontext *,
-			    handler_type));
+extern void __handler (int sig, int code,
+		       struct sigcontext *,
+		       handler_type);
 
 int
 __sigvec (sig, vec, ovec)
diff --git a/sysdeps/unix/bsd/ultrix4/sysconf.c b/sysdeps/unix/bsd/ultrix4/sysconf.c
index 39e77301b0..0982fc832d 100644
--- a/sysdeps/unix/bsd/ultrix4/sysconf.c
+++ b/sysdeps/unix/bsd/ultrix4/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ian Lance Taylor (ian@airs.com).
 
@@ -27,9 +27,9 @@
 /* This is an Ultrix header file.  */
 #include <sys/sysinfo.h>
 
-extern int __getsysinfo __P ((unsigned int op, void *buffer,
-			      size_t nbytes, int *start, void *arg));
-extern long int __default_sysconf __P ((int name));
+extern int __getsysinfo (unsigned int op, void *buffer,
+			 size_t nbytes, int *start, void *arg);
+extern long int __default_sysconf (int name);
 
 long int
 __sysconf (name)
diff --git a/sysdeps/unix/sparc/start.c b/sysdeps/unix/sparc/start.c
index 96cea9cf8c..a664189bb4 100644
--- a/sysdeps/unix/sparc/start.c
+++ b/sysdeps/unix/sparc/start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,2004 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
@@ -56,13 +56,13 @@ int __data_start = 0;
 weak_alias (__data_start, data_start)
 #endif
 
-extern void __libc_init __P ((int argc, char **argv, char **envp));
-extern int main __P ((int argc, char **argv, char **envp));
+extern void __libc_init (int argc, char **argv, char **envp) __THROW;
+extern int main (int argc, char **argv, char **envp) __THROW;
 
 register long int sp asm("%sp"), fp asm("%fp");
 
 #ifndef NO_SHLIB
-static void init_shlib __P ((void));
+static void init_shlib (void) __THROW;
 #endif
 
 #ifndef NO_EXPLICIT_START
diff --git a/sysdeps/unix/sysv/getdents.c b/sysdeps/unix/sysv/getdents.c
index bec53cad41..5f8fd8f6bc 100644
--- a/sysdeps/unix/sysv/getdents.c
+++ b/sysdeps/unix/sysv/getdents.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 2004 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
@@ -21,7 +21,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-extern ssize_t __getdents __P ((int fd, char *buf, size_t nbytes));
+extern ssize_t __getdents (int fd, char *buf, size_t nbytes);
 
 ssize_t
 __getdirentries (fd, buf, nbytes, basep)
diff --git a/sysdeps/unix/sysv/irix4/fpathconf.c b/sysdeps/unix/sysv/irix4/fpathconf.c
index dbee0bbe0a..236eb1a6bc 100644
--- a/sysdeps/unix/sysv/irix4/fpathconf.c
+++ b/sysdeps/unix/sysv/irix4/fpathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1997, 2004 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
@@ -21,7 +21,7 @@
 #include <unistd.h>
 #include <sys/syssgi.h>
 
-extern int __syssgi __P ((int, ...));
+extern int __syssgi (int, ...);
 
 /* Get file-specific information about descriptor FD.  */
 long int
diff --git a/sysdeps/unix/sysv/irix4/getgroups.c b/sysdeps/unix/sysv/irix4/getgroups.c
index 520805314b..4c859eac83 100644
--- a/sysdeps/unix/sysv/irix4/getgroups.c
+++ b/sysdeps/unix/sysv/irix4/getgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1997, 2004 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
@@ -20,7 +20,7 @@
 #include <sys/types.h>
 #include <grp.h>
 
-extern int __syssgi __P ((int, ...));
+extern int __syssgi (int, ...);
 
 /* Set the group set for the current user to GROUPS (N of them).  */
 int
diff --git a/sysdeps/unix/sysv/irix4/getpriority.c b/sysdeps/unix/sysv/irix4/getpriority.c
index baf945e54c..807ac2fba7 100644
--- a/sysdeps/unix/sysv/irix4/getpriority.c
+++ b/sysdeps/unix/sysv/irix4/getpriority.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994,96,97,2000,02 Free Software Foundation, Inc.
+/* Copyright (C) 1994,96,97,2000,02, 2004 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
@@ -20,7 +20,7 @@
 #include <sys/resource.h>
 #include <sys/sysmp.h>
 
-extern int __sysmp __P ((int, ...));
+extern int __sysmp (int, ...);
 
 /* Return the highest priority of any process specified by WHICH and WHO
    (see <sys/resource.h>); if WHO is zero, the current process, process group,
diff --git a/sysdeps/unix/sysv/irix4/getrusage.c b/sysdeps/unix/sysv/irix4/getrusage.c
index 8d0c4008c9..3cabbdf3e2 100644
--- a/sysdeps/unix/sysv/irix4/getrusage.c
+++ b/sysdeps/unix/sysv/irix4/getrusage.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1997, 2004 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
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <sys/syssgi.h>
 
-extern int __syssgi __P ((int, ...));
+extern int __syssgi (int, ...);
 
 /* Return resource usage information on process indicated by WHO
    and put it in *USAGE.  Returns 0 for success, -1 for failure.  */
diff --git a/sysdeps/unix/sysv/irix4/pathconf.c b/sysdeps/unix/sysv/irix4/pathconf.c
index 7439c73157..51da0c5635 100644
--- a/sysdeps/unix/sysv/irix4/pathconf.c
+++ b/sysdeps/unix/sysv/irix4/pathconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1997, 2004 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
@@ -21,7 +21,7 @@
 #include <unistd.h>
 #include <sys/syssgi.h>
 
-extern int __syssgi __P ((int, ...));
+extern int __syssgi (int, ...);
 
 /* Get file-specific information about PATH.  */
 long int
diff --git a/sysdeps/unix/sysv/irix4/setgroups.c b/sysdeps/unix/sysv/irix4/setgroups.c
index 8f5b379ac5..cca816bcff 100644
--- a/sysdeps/unix/sysv/irix4/setgroups.c
+++ b/sysdeps/unix/sysv/irix4/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994,97,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1994,97,2002, 2004 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
@@ -20,7 +20,7 @@
 #include <sys/types.h>
 #include <grp.h>
 
-extern int __syssgi __P ((int, ...));
+extern int __syssgi (int, ...);
 
 /* Set the group set for the current user to GROUPS (N of them).  */
 int
diff --git a/sysdeps/unix/sysv/irix4/sigtramp.c b/sysdeps/unix/sysv/irix4/sigtramp.c
index d6cfd33915..f8de75a7cd 100644
--- a/sysdeps/unix/sysv/irix4/sigtramp.c
+++ b/sysdeps/unix/sysv/irix4/sigtramp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1997, 2004 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
@@ -36,14 +36,13 @@
 typedef void (*handler_type) (int sig, int code, struct sigcontext *);
 
 /* Defined in signal.S.  */
-extern __sighandler_t __raw_signal __P((int sig, __sighandler_t func,
-					void (*)(int sig, int code,
-						 struct sigcontext *,
-						 handler_type)));
-
-extern void __handler __P((int sig, int code,
-			   struct sigcontext *,
-			   handler_type));
+extern __sighandler_t __raw_signal (int sig, __sighandler_t func,
+				    void (*)(int sig, int code,
+					     struct sigcontext *,
+					     handler_type));
+
+extern void __handler (int sig, int code, struct sigcontext *,
+		       handler_type);
 
 __sighandler_t
 signal (sig, func)
diff --git a/sysdeps/unix/sysv/irix4/start.c b/sysdeps/unix/sysv/irix4/start.c
index 6b4b00a66f..fdda8809e6 100644
--- a/sysdeps/unix/sysv/irix4/start.c
+++ b/sysdeps/unix/sysv/irix4/start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1995,1996,1997,2004 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
@@ -44,8 +44,8 @@
 /* The first piece of initialized data.  */
 int __data_start = 0;
 
-extern void __libc_init __P ((int argc, char **argv, char **envp));
-extern int main __P ((int argc, char **argv, char **envp));
+extern void __libc_init (int argc, char **argv, char **envp);
+extern int main (int argc, char **argv, char **envp);
 
 /* Use the stack pointer to access the arguments.  This assumes that
    we can guess how big the frame will be.  */
diff --git a/sysdeps/unix/sysv/irix4/sysconf.c b/sysdeps/unix/sysv/irix4/sysconf.c
index 2f89491fda..ef7606edad 100644
--- a/sysdeps/unix/sysv/irix4/sysconf.c
+++ b/sysdeps/unix/sysv/irix4/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1997, 2002, 2004 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
@@ -19,7 +19,7 @@
 #include <unistd.h>
 #include <sys/syssgi.h>
 
-extern int __syssgi __P ((int, ...));
+extern int __syssgi ((int, ...);
 
 /* Get the value of the system variable NAME.  */
 long int
diff --git a/sysdeps/unix/sysv/sco3.2.4/__setpgid.c b/sysdeps/unix/sysv/sco3.2.4/__setpgid.c
index e58f22e7a9..d51fa602c9 100644
--- a/sysdeps/unix/sysv/sco3.2.4/__setpgid.c
+++ b/sysdeps/unix/sysv/sco3.2.4/__setpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 2002, 2004 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
@@ -20,7 +20,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-extern int __pgrpsys __P ((int type, ...));
+extern int __pgrpsys (int type, ...);
 
 /* Get the process group ID of process PID.  */
 int
diff --git a/sysdeps/unix/sysv/sco3.2.4/getgroups.c b/sysdeps/unix/sysv/sco3.2.4/getgroups.c
index ef27df2a76..2aac40bddd 100644
--- a/sysdeps/unix/sysv/sco3.2.4/getgroups.c
+++ b/sysdeps/unix/sysv/sco3.2.4/getgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1997, 2004 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
@@ -21,7 +21,7 @@
 #include <limits.h>
 #include <alloca.h>
 
-extern int __sco_getgroups __P ((int size, unsigned short int *list));
+extern int __sco_getgroups (int size, unsigned short int *list);
 
 int
 __getgroups (size, list)
diff --git a/sysdeps/unix/sysv/sysv4/__getpgid.c b/sysdeps/unix/sysv/sysv4/__getpgid.c
index ea9a23876c..74ca3e0f9a 100644
--- a/sysdeps/unix/sysv/sysv4/__getpgid.c
+++ b/sysdeps/unix/sysv/sysv4/__getpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -21,7 +21,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-extern int __pgrpsys __P ((int type, ...));
+extern int __pgrpsys (int type, ...);
 
 /* Get the process group ID of process PID.  */
 int
diff --git a/sysdeps/unix/sysv/sysv4/__setpgid.c b/sysdeps/unix/sysv/sysv4/__setpgid.c
index ac096a4516..36ad5cc77b 100644
--- a/sysdeps/unix/sysv/sysv4/__setpgid.c
+++ b/sysdeps/unix/sysv/sysv4/__setpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -21,7 +21,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-extern int __pgrpsys __P ((int type, ...));
+extern int __pgrpsys (int type, ...);
 
 /* Get the process group ID of process PID.  */
 int
diff --git a/sysdeps/unix/sysv/sysv4/getpgid.c b/sysdeps/unix/sysv/sysv4/getpgid.c
index 39fb728d1b..95f96417cc 100644
--- a/sysdeps/unix/sysv/sysv4/getpgid.c
+++ b/sysdeps/unix/sysv/sysv4/getpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997, 1999, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1995,1997,1999,2002,2004 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
@@ -19,7 +19,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-extern pid_t __pgrpsys __P ((int type, ...));
+extern pid_t __pgrpsys (int type, ...);
 
 /* Get the process group ID of process PID.  */
 pid_t
diff --git a/sysdeps/unix/sysv/sysv4/sethostname.c b/sysdeps/unix/sysv/sysv4/sethostname.c
index f4e7b4e936..d74b0f4f3b 100644
--- a/sysdeps/unix/sysv/sysv4/sethostname.c
+++ b/sysdeps/unix/sysv/sysv4/sethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -22,7 +22,7 @@
 #include <sys/types.h>
 #include <sys/systeminfo.h>
 
-extern int __sysinfo __P ((int command, const char *buf, long count));
+extern int __sysinfo (int command, const char *buf, long count);
 
 int
 sethostname (name, namelen)
diff --git a/sysdeps/unix/sysv/sysv4/setpgid.c b/sysdeps/unix/sysv/sysv4/setpgid.c
index 1ffb182d4a..80f4ad6430 100644
--- a/sysdeps/unix/sysv/sysv4/setpgid.c
+++ b/sysdeps/unix/sysv/sysv4/setpgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1995,1996,1997,1999,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1995-1997,1999,2002,2004 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
@@ -19,7 +19,7 @@
 #include <errno.h>
 #include <unistd.h>
 
-extern int __pgrpsys __P ((pid_t type, ...));
+extern int __pgrpsys (pid_t type, ...);
 
 /* Set the process group ID of the process matching PID to PGID.
    If PID is zero, the current process's process group ID is set.
diff --git a/sysdeps/unix/sysv/sysv4/setsid.c b/sysdeps/unix/sysv/sysv4/setsid.c
index 44cbaf07cb..faa2c42d7d 100644
--- a/sysdeps/unix/sysv/sysv4/setsid.c
+++ b/sysdeps/unix/sysv/sysv4/setsid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 1999, 2004 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
@@ -19,7 +19,7 @@
 #include <errno.h>
 #include <unistd.h>
 
-extern pid_t __pgrpsys __P ((int type, ...));
+extern pid_t __pgrpsys (int type, ...);
 
 /* Create a new session with the calling process as its leader.
    The process group IDs of the session and the calling process
diff --git a/sysdeps/unix/sysv/sysv4/solaris2/getdents.c b/sysdeps/unix/sysv/sysv4/solaris2/getdents.c
index 8627245542..ab782ffaac 100644
--- a/sysdeps/unix/sysv/sysv4/solaris2/getdents.c
+++ b/sysdeps/unix/sysv/sysv4/solaris2/getdents.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,95,96,97,98 Free Software Foundation, Inc.
+/* Copyright (C) 1993,95,96,97,98, 2004 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 @@
 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
 
 
-extern int __getdents __P ((int fd, char *buf, size_t nbytes));
+extern int __getdents (int fd, char *buf, size_t nbytes);
 
 /* For Solaris we need a special version of this file since the
    definition of `struct dirent' is not the same for the kernel and
diff --git a/sysdeps/unix/sysv/sysv4/sysconf.c b/sysdeps/unix/sysv/sysv4/sysconf.c
index d8ffafcc41..bfe7823c4c 100644
--- a/sysdeps/unix/sysv/sysv4/sysconf.c
+++ b/sysdeps/unix/sysv/sysv4/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1995,1996,1997,2002,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -24,7 +24,7 @@
 #include <time.h>
 #include <sysconfig.h>
 
-extern int __sysconfig __P ((int));
+extern int __sysconfig (int);
 
 /* Get the value of the system variable NAME.  */
 long int
diff --git a/sysdeps/unix/sysv/sysv4/waitpid.c b/sysdeps/unix/sysv/sysv4/waitpid.c
index f4700c6cd1..23f9ceb029 100644
--- a/sysdeps/unix/sysv/sysv4/waitpid.c
+++ b/sysdeps/unix/sysv/sysv4/waitpid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,94,95,96,97,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1993,94,95,96,97,2002,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -35,9 +35,9 @@ typedef enum __idtype
     P_ALL = 7,
   } __idtype_t;
 
-extern __pid_t __getpgid __P ((__pid_t pid));
-extern int __waitid __P ((__idtype_t idtype, __pid_t id,
-			  __siginfo_t *infop, int options));
+extern __pid_t __getpgid (__pid_t pid);
+extern int __waitid (__idtype_t idtype, __pid_t id,
+		     __siginfo_t *infop, int options);
 
 /* Wait for a child matching PID to die.
    If PID is greater than 0, match any process whose process ID is PID.
diff --git a/time/strftime_l.c b/time/strftime_l.c
index 6cae85d32f..0fd3f7764f 100644
--- a/time/strftime_l.c
+++ b/time/strftime_l.c
@@ -122,14 +122,6 @@ extern char *tzname[];
 # endif
 #endif
 
-#ifndef __P
-# if defined __GNUC__ || (defined __STDC__ && __STDC__)
-#  define __P(args) args
-# else
-#  define __P(args) ()
-# endif  /* GCC.  */
-#endif  /* Not __P.  */
-
 #ifndef PTR
 # ifdef __STDC__
 #  define PTR void *
@@ -340,8 +332,8 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */
    more reliable way to accept other sets of digits.  */
 #define ISDIGIT(Ch) ((unsigned int) (Ch) - L_('0') <= 9)
 
-static CHAR_T *memcpy_lowcase __P ((CHAR_T *dest, const CHAR_T *src,
-				    size_t len LOCALE_PARAM_PROTO));
+static CHAR_T *memcpy_lowcase (CHAR_T *dest, const CHAR_T *src,
+			       size_t len LOCALE_PARAM_PROTO) __THROW;
 
 static CHAR_T *
 memcpy_lowcase (dest, src, len LOCALE_PARAM)
@@ -355,8 +347,8 @@ memcpy_lowcase (dest, src, len LOCALE_PARAM)
   return dest;
 }
 
-static CHAR_T *memcpy_uppcase __P ((CHAR_T *dest, const CHAR_T *src,
-				    size_t len LOCALE_PARAM_PROTO));
+static CHAR_T *memcpy_uppcase (CHAR_T *dest, const CHAR_T *src,
+			       size_t len LOCALE_PARAM_PROTO) __THROW;
 
 static CHAR_T *
 memcpy_uppcase (dest, src, len LOCALE_PARAM)
@@ -375,7 +367,7 @@ memcpy_uppcase (dest, src, len LOCALE_PARAM)
 /* Yield the difference between *A and *B,
    measured in seconds, ignoring leap seconds.  */
 # define tm_diff ftime_tm_diff
-static int tm_diff __P ((const struct tm *, const struct tm *));
+static int tm_diff (const struct tm *, const struct tm *) __THROW;
 static int
 tm_diff (a, b)
      const struct tm *a;
@@ -409,7 +401,7 @@ tm_diff (a, b)
 #define ISO_WEEK_START_WDAY 1 /* Monday */
 #define ISO_WEEK1_WDAY 4 /* Thursday */
 #define YDAY_MINIMUM (-366)
-static int iso_week_days __P ((int, int));
+static int iso_week_days (int, int) __THROW;
 #ifdef __GNUC__
 __inline__
 #endif
@@ -464,8 +456,8 @@ static CHAR_T const month_name[][10] =
 #if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET
   /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime.
      Work around this bug by copying *tp before it might be munged.  */
-  size_t _strftime_copytm __P ((char *, size_t, const char *,
-			        const struct tm * ut_argument_spec_iso));
+  size_t _strftime_copytm (char *, size_t, const char *,
+			   const struct tm * ut_argument_spec_iso) __THROW;
   size_t
   my_strftime (s, maxsize, format, tp ut_argument)
       CHAR_T *s;
diff --git a/time/tzset.c b/time/tzset.c
index 79cc610b38..48a4e4b140 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -69,10 +69,10 @@ typedef struct
 static tz_rule tz_rules[2];
 
 
-static void compute_change __P ((tz_rule *rule, int year)) internal_function;
-static void tz_compute __P ((const struct tm *tm))
-     internal_function;
-static void tzset_internal __P ((int always, int explicit)) internal_function;
+static void compute_change (tz_rule *rule, int year) __THROW internal_function;
+static void tz_compute (const struct tm *tm) __THROW internal_function;
+static void tzset_internal (int always, int explicit)
+     __THROW internal_function;
 
 /* List of buffers containing time zone strings. */
 struct tzstring_l