public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] PLT reducation, take 2
@ 2002-08-02 14:20 Jakub Jelinek
  2002-08-03  0:09 ` Ulrich Drepper
  0 siblings, 1 reply; 5+ messages in thread
From: Jakub Jelinek @ 2002-08-02 14:20 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Glibc hackers

Hi!

I've added the configure check plus a bunch of new macros from PLT-reduce
list and converted a bunch from INTUSE/INTDEF etc. too.
Tested by make check, comparing nm -D output and readelf -r output before
and after the patch.

2002-08-02  Jakub Jelinek  <jakub@redhat.com>

	* assert/assert.c (__assert_fail): Remove undef.
	Replace INTDEF with libc_hidden_def.
	* assert/__assert.c (__assert): Remove INTUSE.
	* elf/dl-minimal.c (__assert_fail): Replace INTDEF with
	libc_hidden_weak.
	* include/libc-symbols.h (hidden_proto, hidden_def, hidden_weak,
	hidden_ver, libc_hidden_proto, libc_hidden_def, libc_hidden_weak,
	libc_hidden_ver, rtld_hidden_proto, rtld_hidden_def, rtld_hidden_weak,
	rltd_hidden_ver, libm_hidden_proto, libm_hidden_def, libm_hidden_weak,
	libm_hiden_ver): Define.
	* include/assert.h (__assert_fail_internal): Remove.
	(__assert_fail): Add prototype.  Add hidden_proto.
	* include/libc-internal.h (__libc_freeres, __profile_frequency): Add
	libc_hidden_proto.
	* include/wchar.h (__mbrtowc_internal, __mbrlen_internal): Remove.
	(__mbrtowc, __mbrlen): Use libc_hidden_proto.  Remove macros.
	* include/string.h (__mempcpy, __stpncpy, __rawmemchr, __strcasecmp):
	Add libc_hidden_proto.
	* include/fcntl.h (__open64, __libc_open, __libc_fcntl, __open,
	__fcntl): Add libc_hidden_proto.  Remove macros.
	(__open_internal, __fcntl_internal): Remove.
	* libio/iofdopen.c (_IO_fcntl): Remove INTUSE from __fcntl.
	* malloc/set-freeres.c (__libc_freeres): Add libc_hidden_def.
	* nss/nsswitch.h (__nss_database_lookup, __nss_next): Add
	libc_hiden_proto.
	* nss/nsswitch.c (__nss_database_lookup, __nss_next): Add
	libc_hidden_def.
	* sysdeps/generic/mempcpy.c (__mempcpy): Remove undef.
	Add libc_hidden_def.
	* sysdeps/generic/open64.c (__open64): Add libc_hidden_def.
	* sysdeps/generic/open.c (__open): Remove undef.
	Add libc_hidden_def.  Remove INTDEF.
	* sysdeps/generic/fcntl.c (__fcntl): Remove undef.
	Add libc_hidden_def.
	* sysdeps/i386/i586/mempcpy.S (__mempcpy): Add libc_hidden_def.
	* sysdeps/i386/i686/mempcpy.S (__mempcpy): Likewise.
	* sysdeps/mach/hurd/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
	(__fcntl): Remove INTDEF2.  Add libc_hidden_weak.
	(__libc_fcntl): Add libc_hidden_def.
	* sysdeps/mach/hurd/open.c (__libc_open, __open): Remove undef.
	(__open): Remove INTDEF2.  Add libc_hidden_weak.
	(__libc_open): Add libc_hidden_def.
	* sysdeps/posix/open64.c (__open64): Add libc_hidden_weak.
	* sysdeps/standalone/open.c (__open): Add libc_hidden_def.
	* sysdeps/unix/sysv/aix/fcntl.c (__libc_fcntl, __fcntl): Remove undef.
	Add libc_hidden_def.
	* sysdeps/unix/sysv/aix/open.c (__libc_open, __open): Remove undef.
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl, __fcntl): Remove
	undef.
	(__fcntl): Remove INTDEF2.  Add libc_hidden_weak.
	(__libc_fcntl): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/syscalls.list (__fcntl_internal,
	__getpgid_internal, __chown_internal): Remove.
	(__GI___fcntl, __GI___libc_fcntl, __GI___getpgid, __GI___pipe,
	__GI___sched_setscheduler, __GI___select, __GI___setpgid,
	__GI___chown): Add.
	* sysdeps/unix/syscalls.list (__close_internal, __dup2_internal,
	__getpid_internal, __open_internal, __write_internal): Remove.
	(__GI___fcntl, __GI___libc_fcntl, __GI___open, __GI___libc_open,
	__GI___chown, __GI___close, __GI___dup2, __GI___getpid,
	__GI___libc_open, __GI___open, __GI___read, __GI___libc_read,
	__GI___select, __GI___statfs, __GI___write, __GI___libc_write): Add.
	* wcsmbs/mbrlen.c (__mbrlen): Remove undef.
	Replace INTDEF with libc_hidden_def.
	* wcsmbs/mbrtowc.c (__mbrtowc): Likewise.
	* catgets/catgetsinfo.h (__open_catalog): Add libc_hidden_proto.
	* catgets/open_catalog.c (__open_catalog): Add libc_hidden_def.
	* elf/dl-profile.c (__profile_frequency): Add libc_hidden_proto.
	* include/rpc/rpc.h (__rpc_thread_svc_fdset, __rpc_thread_createerr):
	Add libc_hidden_proto.
	* include/sys/poll.h (__poll): Add libc_hidden_proto.
	* include/sys/select.h (__select): Likewise.
	* include/sys/socket.h (__send): Likewise.
	* include/sys/statfs.h (__statfs): Likewise.
	* include/unistd.h (__pwrite64, __libc_read, __pipe, __chown, __dup2,
	__getpid, __getpgid, __setpgid, __close, __read, __write,
	__getpagesize, __sbrk): Likewise.
	(__chown_internal, __dup2_internal, __getpid_internal,
	__getpgid_internal, __close_internal, __write_internal,
	__getpagesize_internal): Remove.
	(__close, __dup2, __getpagesize, __getpgid, __getpid, __libc_write):
	Remove macros.
	* include/printf.h (__printf_fp): Add libc_hidden_proto.
	* include/sched.h (__sched_setscheduler): Likewise.
	* include/resolv.h (__res_ninit, __res_randomid): Likewise.
	* include/stdlib.h (__secure_getenv): Likewise.
	* include/signal.h (__sigaction, __sigsuspend): Likewise.
	* inet/getaliasent_r.c (NSS_attribute_hidden): Remove.
	* inet/getaliasname_r.c (NSS_attribute_hidden): Remove.
	* inet/getnetbyad_r.c (NSS_attribute_hidden): Remove.
	* inet/getnetbynm_r.c (NSS_attribute_hidden): Remove.
	* inet/getnetent_r.c (NSS_attribute_hidden): Remove.
	* inet/getproto_r.c (NSS_attribute_hidden): Remove.
	* inet/getprtent_r.c (NSS_attribute_hidden): Remove.
	* inet/getprtname_r.c (NSS_attribute_hidden): Remove.
	* inet/getrpcbyname_r.c (NSS_attribute_hidden): Remove.
	* inet/getrpcbynumber_r.c (NSS_attribute_hidden): Remove.
	* inet/getrpcent_r.c (NSS_attribute_hidden): Remove.
	* inet/getservent_r.c (NSS_attribute_hidden): Remove.
	* inet/getsrvbynm_r.c (NSS_attribute_hidden): Remove.
	* inet/getsrvbypt_r.c (NSS_attribute_hidden): Remove.
	* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Remove INTUSE.
	* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
	* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
	* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
	* libio/genops.c (__overflow): Add libc_hidden_def.
	* libio/iovdprintf.c: Remove libio.h include.
	* libio/libioP.h (libc_hidden_proto, libc_hidden_def,
	libc_hidden_weak): Define to nothing if not defined.
	(__overflow, __woverflow): Add libc_hidden_proto.
	* libio/wgenops.c (__woverflow): Add libc_hidden_def.
	* nss/getXXent_r.c (NSS_attribute_hidden): Remove.
	(DB_LOOKUP_FCT): Add libc_hidden_proto.
	* nss/getXXbyYY_r.c (NSS_attribute_hidden): Remove.
	(DB_LOOKUP_FCT): Add libc_hidden_proto.
	* nss/XXX-lookup.c (DB_LOOKUP_FCT): Add libc_hidden_proto
	and libc_hidden_def.
	* nss/hosts-lookup.c (__nss_hosts_lookup): Remove INTDEF.
	* posix/bsd-getpgrp.c (__getpgid_internal): Remove.
	(__getpgid): Add libc_hidden_proto. 
	(__bsd_getpgrp): Remove INTUSE.
	* resolv/res_init.c (__res_ninit, __res_randomid): Add
	libc_hidden_def.
	* shadow/getspent_r.c (NSS_attribute_hidden): Remove.
	* shadow/getspnam_r.c (NSS_attribute_hidden): Remove.
	* stdio-common/printf_fp.c (__printf_fp): Add libc_hidden_def.
	* stdlib/strfmon.c (__printf_fp): Add libc_hidden_proto.
	* stdlib/secure-getenv.c (__secure_getenv): Add libc_hidden_def.
	* sunrpc/rpc_thread.c (__rpc_thread_svc_fdset,
	__rpc_thread_createerr): Add libc_hidden_def.
	* sysdeps/alpha/alphaev67/rawmemchr.S (__rawmemchr): Add
	libc_hidden_def.
	* sysdeps/alpha/alphaev67/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/alpha/rawmemchr.S (__rawmemchr): Likewise.
	* sysdeps/alpha/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/generic/chown.c (__chown): Likewise.
	* sysdeps/generic/close.c (__close): Likewise.
	* sysdeps/generic/dup2.c (__dup2): Likewise.
	* sysdeps/generic/pipe.c (__pipe): Likewise.
	* sysdeps/generic/prof-freq.c (__profile_frequency): Likewise.
	* sysdeps/generic/pwrite64.c (__pwrite64): Likewise.
	* sysdeps/generic/rawmemchr.c (__rawmemchr): Likewise.
	* sysdeps/generic/read.c (__libc_read): Likewise.
	(__read): Add libc_hidden_weak.
	* sysdeps/generic/sbrk.c (__sbrk): Add libc_hidden_def.
	* sysdeps/generic/sched_sets.c (__sched_setscheduler: Likewise.
	* sysdeps/generic/select.c (__select): Likewise.
	* sysdeps/generic/send.c (__send): Likewise.
	* sysdeps/generic/setpgid.c (__setpgid): Likewise.
	* sysdeps/generic/sigaction.c (__sigaction): Likewise.
	* sysdeps/generic/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/generic/statfs.c (__statfs): Likewise.
	* sysdeps/generic/stpncpy.c (__stpncpy): Likewise.
	* sysdeps/generic/strcasecmp.c (__strcasecmp): Likewise.
	* sysdeps/generic/getpagesize.c (__getpagesize): Likewise.
	Remove undef and INTDEF.
	* sysdeps/generic/getpgid.c (__getpgid): Likewise.
	* sysdeps/generic/getpid.c (__getpid): Likewise.
	* sysdeps/generic/write.c (__libc_write): Likewise.
	(__write): Add libc_hidden_weak.  Remove undef and INTDEF.
	* sysdeps/i386/rawmemchr.S (__rawmemchr): Add libc_hidden_def.
	* sysdeps/i386/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/m68k/rawmemchr.S (__rawmemchr): Likewise.
	* sysdeps/mach/hurd/chown.c (__chown): Likewise.  Remove INTDEF.
	* sysdeps/mach/hurd/close.c (__close): Add libc_hidden_def.
	Remove undef and INTDEF.
	* sysdeps/mach/hurd/dup2.c (__dup2): Likewise.
	* sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
	* sysdeps/mach/hurd/getpid.c (__getpid): Likewise.
	* sysdeps/mach/getpagesize.c (__getpagesize): Likewise.
	* sysdeps/mach/hurd/write.c (__libc_write): Likewise.
	(__write): Add libc_hidden_weak.  Remove undef and INTDEF.
	* sysdeps/mach/hurd/pipe.c: Include unistd.h.
	(__pipe): Add libc_hidden_def.
	* sysdeps/mach/hurd/dl-sysdep.c (__libc_read, __libc_write): Add
	libc_hidden_weak.
	* sysdeps/mach/hurd/poll.c (__poll): Add libc_hidden_def.
	* sysdeps/mach/hurd/profil.c (__profile_frequency): Likewise.
	* sysdeps/mach/hurd/read.c (__libc_read): Likewise.
	(__read): Add libc_hidden_weak.
	* sysdeps/mach/hurd/pwrite64.c (__pwrite64): Likewise.
	(__libc_pwrite64): Add libc_hidden_def.
	* sysdeps/mach/hurd/sbrk.c (__sbrk): Likewise.
	* sysdeps/mach/hurd/select.c (__select): Likewise.
	* sysdeps/mach/hurd/send.c (__send): Likewise.
	* sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
	* sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
	* sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/mach/hurd/statfs.c (__statfs): Likewise.
	* sysdeps/posix/dup2.c: Likewise.
	Remove undef and INTDEF.
	* sysdeps/posix/getpagesize.c (__getpagesize): Likewise.
	* sysdeps/posix/pwrite64.c (__libc_pwrite64): Add libc_hidden_def.
	(__pwrite64): Add libc_hidden_weak.
	* sysdeps/posix/sigsuspend.c (__sigsuspend): Add libc_hidden_def.
	* sysdeps/sparc/sparc64/rawmemchr.S (__rawmemchr): Likewise.
	* sysdeps/sparc/sparc64/stpncpy.S (__stpncpy): Likewise.
	* sysdeps/standalone/close.c (__close): Likewise.
	* sysdeps/standalone/write.c (__libc_write): Likewise.
	(__write): Add libc_hidden_weak.
	* sysdeps/standalone/read.c (__read): Likewise.
	(__libc_read): Add libc_hidden_def.
	* sysdeps/unix/grantpt.c (grantpt): Remove INTUSE.
	* sysdeps/unix/bsd/m68k/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/bsd/osf/alpha/pipe.S (__pipe): Likewise.
	* sysdeps/unix/bsd/vax/pipe.S (__pipe): Likewise.
	* sysdeps/unix/bsd/syscalls.list (__GI___getpagesize): Likewise.
	* sysdeps/unix/bsd/poll.c (__poll): Likewise.
	* sysdeps/unix/bsd/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/bsd/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/common/syscalls.list (__GI___getpgid, __GI___setpgid,
	__GI___sigaction): Add.
	* sysdeps/unix/i386/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/inet/syscalls.list (__GI___send): Add.
	* sysdeps/unix/mips/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/sparc/pipe.S (__pipe): Likewise.
	* sysdeps/unix/sysv/irix4/syscalls.list (__GI___getpgid,
	__GI___setpgid): Add.
	* sysdeps/unix/sysv/aix/chown.c (__chown): Add libc_hidden_def.
	Remove undef and INTDEF.
	* sysdeps/unix/sysv/aix/getpgid.c (__getpgid): Likewise.
	* sysdeps/unix/sysv/aix/write.c (__write, __libc_write): Likewise.
	* sysdeps/unix/sysv/aix/close.c (__close): Add libc_hidden_def.
	* sysdeps/unix/sysv/aix/getpid.c (__getpid): Likewise.
	* sysdeps/unix/sysv/aix/pipe.c (__pipe): Likewise.
	* sysdeps/unix/sysv/aix/read.c (__read, __libc_read): Likewise.
	* sysdeps/unix/sysv/aix/poll.c (__poll): Likewise.
	* sysdeps/unix/sysv/aix/sbrk.c (__sbrk): Likewise.
	* sysdeps/unix/sysv/aix/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/aix/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/sysv/aix/statfs.c (__statfs): Likewise.
	* sysdeps/unix/sysv/aix/select.c (__select): Likewise.
	* sysdeps/unix/sysv/aix/setpgid.c (__setpgid): Likewise.
	* sysdeps/unix/sysv/linux/alpha/pipe.S (__pipe): Likewise.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI___pwrite64,
	__GI___statfs, __GI___send): Add.
	* sysdeps/unix/sysv/linux/alpha/select.S (__select): Add
	libc_hidden_ver resp. libc_hidden_def.
	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__sigsuspend): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/ia64/getpagesize.c (__getpagesize):
	Likewise.  Remove undef and INTDEF.
	* sysdeps/unix/sysv/linux/ia64/pipe.S (__pipe): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___pwrite64,
	__GI___statfs, __GI___send): Add.
	* sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/pipe.S (__pipe): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown): Add
	libc_hidden_ver resp. libc_hidden_def.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___pwrite64,
	__GI___send): Add.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction):
	Add libc_hidden_weak.
	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c (__sigsuspend):
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI___send): Add.
	* sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/i386/chown.c (__chown): Add libc_hidden_ver
	resp. libc_hidden_def.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/m68k/chown.c (__chown): Likewise.  Remove
	INTDEF.
	* sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize):
	Likewise.  Remove undef.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c (__pwrite64): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/mips/syscalls.list (__GI___send): Add.
	* sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/powerpc/pwrite64.c (__pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
	Likewise.  Remove undef and INTDEF.
	* sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__pipe): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__pipe): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
	(__GI___pwrite64, __GI___statfs, __GI___select, __GI___send): Add.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c (__sigsuspend):
	Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI___pwrite64,
	__GI___statfs): Add.
	* sysdeps/unix/sysv/linux/x86_64/send.c (__send): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/linux/getpagesize.c: Add libc_hidden_def.
	Remove undef and INTDEF.
	* sysdeps/unix/sysv/linux/poll.c (__poll): Add libc_hidden_def.
	* sysdeps/unix/sysv/linux/pwrite64.c (__pwrite64): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/linux/send.S (__send): Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Add
	libc_hidden_weak.
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/sco3.2.4/__setpgid.c (__setpgid): Likewise.
	* sysdeps/unix/sysv/sco3.2.4/sigaction.S (__sigaction): Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/syscalls.list (__GI___sigaction):
	Add.
	* sysdeps/unix/sysv/sysv4/__getpgid.c (__getpgid): Add
	libc_hidden_def.  Remove undef and INTDEF.
	* sysdeps/unix/sysv/sysv4/getpgid.c (__getpgid): Likewise.
	* sysdeps/unix/sysv/sysv4/__setpgid.c (__setpgid): Add
	libc_hidden_def.
	* sysdeps/unix/sysv/sysv4/setpgid.c (__setpgid): Likewise.
	* sysdeps/unix/sysv/sysv4/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/getpagesize.c (__getpagesize): Add libc_hidden_def.
	Remove undef and INTDEF.
	* configure.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add check for
	broken visibility attribute handling.
	* configure: Rebuilt.
	* config.h.in (HAVE_BROKEN_VISIBILITY_ATTRIBUTE): Add.

--- libc/assert/assert.c.jj	2002-07-29 15:14:49.000000000 +0200
+++ libc/assert/assert.c	2002-08-02 14:24:31.000000000 +0200
@@ -42,7 +42,6 @@ extern const char *__progname;
 # include FATAL_PREPARE_INCLUDE
 #endif
 
-#undef __assert_fail
 void
 __assert_fail (const char *assertion, const char *file, unsigned int line,
 	       const char *function)
@@ -82,4 +81,4 @@ __assert_fail (const char *assertion, co
 
   abort ();
 }
-INTDEF(__assert_fail)
+libc_hidden_def(__assert_fail)
--- libc/assert/__assert.c.jj	2002-04-30 12:51:29.000000000 +0200
+++ libc/assert/__assert.c	2002-08-02 14:24:31.000000000 +0200
@@ -23,5 +23,5 @@
 void
 __assert (const char *assertion, const char *file, int line)
 {
-  INTUSE(__assert_fail) (assertion, file, line, (const char *) 0);
+  __assert_fail (assertion, file, line, (const char *) 0);
 }
--- libc/catgets/catgetsinfo.h.jj	2001-08-23 18:47:04.000000000 +0200
+++ libc/catgets/catgetsinfo.h	2002-08-02 19:18:35.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
@@ -54,3 +54,4 @@ typedef struct catalog_info
 /* Prototypes for helper functions.  */
 extern int __open_catalog (const char *cat_name, const char *nlspath,
 			   const char *env_var, __nl_catd __catalog);
+libc_hidden_proto (__open_catalog)
--- libc/catgets/open_catalog.c.jj	2002-02-28 12:31:20.000000000 +0100
+++ libc/catgets/open_catalog.c	2002-08-02 15:14:41.000000000 +0200
@@ -332,3 +332,4 @@ __open_catalog (const char *cat_name, co
 
   return result;
 }
+libc_hidden_def (__open_catalog)
--- libc/elf/dl-minimal.c.jj	2002-07-29 15:14:50.000000000 +0200
+++ libc/elf/dl-minimal.c	2002-08-02 14:24:31.000000000 +0200
@@ -209,7 +209,7 @@ Inconsistency detected by ld.so: %s: %u:
 		    assertion);
 
 }
-INTDEF(__assert_fail)
+rtld_hidden_weak(__assert_fail)
 
 #endif
 
--- libc/elf/dl-profile.c.jj	2002-04-07 18:27:23.000000000 +0200
+++ libc/elf/dl-profile.c	2002-08-02 17:32:20.000000000 +0200
@@ -122,6 +122,7 @@
    entries in the call graph table and add it to the appropriate list.  */
 
 extern int __profile_frequency (void);
+libc_hidden_proto (__profile_frequency)
 
 /* We define a special type to address the elements of the arc table.
    This is basically the `gmon_cg_arc_record' format but it includes
--- libc/include/rpc/rpc.h.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/include/rpc/rpc.h	2002-08-02 18:25:45.000000000 +0200
@@ -46,6 +46,9 @@ extern void __rpc_thread_destroy (void);
 
 #define RPC_THREAD_VARIABLE(x) (__rpc_thread_variables()->x)
 
+libc_hidden_proto (__rpc_thread_svc_fdset)
+libc_hidden_proto (__rpc_thread_createerr)
+
 #endif /* _RPC_THREAD_SAFE_ */
 
 #endif
--- libc/include/sys/poll.h.jj	2000-08-22 10:12:50.000000000 +0200
+++ libc/include/sys/poll.h	2002-08-02 17:27:10.000000000 +0200
@@ -3,4 +3,6 @@
 
 extern int __poll (struct pollfd *__fds, unsigned long int __nfds,
 		   int __timeout);
+libc_hidden_proto (__poll)
+
 #endif
--- libc/include/sys/select.h.jj	2001-01-31 16:34:58.000000000 +0100
+++ libc/include/sys/select.h	2002-08-02 20:39:26.000000000 +0200
@@ -11,4 +11,6 @@ extern int __select (int __nfds, fd_set 
 		     fd_set *__restrict __writefds,
 		     fd_set *__restrict __exceptfds,
 		     struct timeval *__restrict __timeout);
+libc_hidden_proto (__select)
+
 #endif
--- libc/include/sys/socket.h.jj	2002-07-23 10:05:32.000000000 +0200
+++ libc/include/sys/socket.h	2002-08-02 18:41:44.000000000 +0200
@@ -27,6 +27,7 @@ extern int __getpeername (int __fd, __SO
 
 /* Send N bytes of BUF to socket FD.  Returns the number sent or -1.  */
 extern ssize_t __send (int __fd, __const void *__buf, size_t __n, int __flags);
+libc_hidden_proto (__send)
 
 /* Send N bytes of BUF on socket FD to peer at address ADDR (which is
    ADDR_LEN bytes long).  Returns the number sent, or -1 for errors.  */
--- libc/include/sys/statfs.h.jj	2000-04-18 08:13:13.000000000 +0200
+++ libc/include/sys/statfs.h	2002-08-02 18:42:28.000000000 +0200
@@ -3,6 +3,7 @@
 
 /* Now define the internal interfaces.  */
 extern int __statfs (__const char *__file, struct statfs *__buf);
+libc_hidden_proto (__statfs)
 extern int __fstatfs (int __fildes, struct statfs *__buf);
 extern int __statfs64 (__const char *__file, struct statfs64 *__buf);
 extern int __fstatfs64 (int __fildes, struct statfs64 *__buf);
--- libc/include/libc-symbols.h.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/include/libc-symbols.h	2002-08-02 19:03:11.000000000 +0200
@@ -381,4 +381,179 @@
 # define INTVARDEF2(name, newname)
 #endif
 
+/* The following macros are used for PLT bypassing within libc.so
+   (and if needed other libraries similarly).
+   First of all, you need to have the function prototyped somewhere,
+   say in foo/foo.h:
+
+   int foo (int __bar);
+
+   If calls to foo within libc.so should always go to foo defined in libc.so,
+   then in include/foo.h you add:
+
+   libc_hidden_proto (foo)
+
+   line and after the foo function definition:
+   
+   int foo (int __bar)
+   {
+     return __bar;
+   }
+   libc_hidden_def (foo)
+
+   or
+
+   int foo (int __bar)
+   {
+     return __bar;
+   }
+   libc_hidden_weak (foo)
+
+   If foo is normally just an alias (strong or weak) of some other function,
+   you should use the normal strong_alias first, then add libc_hidden_def
+   or libc_hidden_weak:
+
+   int baz (int __bar)
+   {
+     return __bar;
+   }
+   strong_alias (baz, foo)
+   libc_hidden_weak (foo)
+
+   If the function should be internal to multiple objects, say ld.so and
+   libc.so, the best way is to use:
+ 
+   #if !defined NOT_IN_libc || defined IS_IN_rtld
+   hidden_proto (foo)
+   #endif
+
+   in include/foo.h and the normal macros at all function definitions
+   depending on what DSO they belong to.
+
+   If versioned_symbol macro is used to define foo,
+   libc_hidden_ver macro should be used, as in:
+
+   int __real_foo (int __bar)
+   {
+     return __bar;
+   }
+   versioned_symbol (libc, __real_foo, foo, GLIBC_2_1);
+   libc_hidden_ver (__real_foo, foo)  */
+
+#if defined SHARED && defined DO_VERSIONING
+# ifndef __ASSEMBLER__
+#  ifdef HAVE_BROKEN_VISIBILITY_ATTRIBUTE
+#   define __hidden_proto_hiddenattr
+#  else
+#   define __hidden_proto_hiddenattr attribute_hidden
+#  endif
+#  define hidden_proto(name) __hidden_proto (name, __GI_##name)
+#  define __hidden_proto(name, internal) \
+  __typeof (name) internal; \
+  __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
+  __hidden_proto_hiddenattr;
+#  define __hidden_asmname(name) \
+  __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
+#  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
+#  define __hidden_asmname2(prefix, name) #prefix name
+#  ifdef HAVE_ASM_SET_DIRECTIVE
+#   define __hidden_def1(original, alias)			\
+  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
+  .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
+#  else
+#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
+#    define __hidden_def1(original, alias)			\
+  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
+  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP	\
+  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
+  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
+#   else
+#    define __hidden_def1(original, alias)			\
+  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
+  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
+#   endif
+#  endif
+#  define __hidden_def2(...) #__VA_ARGS__
+#  define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
+#  define hidden_def(name)					\
+  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
+#  define hidden_ver(local, name)				\
+  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
+#  ifdef HAVE_WEAK_SYMBOLS
+#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
+#    define __hidden_weak1(original, alias)			\
+  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
+#   else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
+#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
+#     define __hidden_weak1(original, alias)			\
+  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
+  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original) ASM_LINE_SEP	\
+  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
+  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
+#    else
+#     define __hidden_weak1(original, alias)			\
+  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
+  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
+#    endif
+#   endif
+#   define hidden_weak(name)					\
+  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
+#  else
+#   define hidden_weak(name) hidden_def (name)
+#  endif
+# else
+/* For assembly, we need to do the opposite of what we do in C:
+   in assembly gcc __REDIRECT stuff is not in place, so functions
+   are defined by its normal name and we need to create the
+   __GI_* alias to it, in C __REDIRECT causes the function definition
+   to use __GI_* name and we need to add alias to the real name.
+   hidden_proto and hidden_weak don't make sense for assembly.  */
+#  define hidden_def(name) strong_alias (name, __GI_##name)
+#  define hidden_ver(local, name) strong_alias (local, __GI_##name)
+# endif
+#else
+# ifndef __ASSEMBLY__
+#  define hidden_proto(name)
+#  define hidden_weak(name)
+# endif
+# define hidden_def(name)
+# define hidden_ver(local, name)
+#endif
+
+#if !defined NOT_IN_libc
+# define libc_hidden_proto(name) hidden_proto (name)
+# define libc_hidden_def(name) hidden_def (name)
+# define libc_hidden_weak(name) hidden_weak (name)
+# define libc_hidden_ver(local, name) hidden_ver (local, name)
+#else
+# define libc_hidden_proto(name)
+# define libc_hidden_def(name)
+# define libc_hidden_weak(name)
+# define libc_hidden_ver(local, name)
+#endif
+
+#if defined NOT_IN_libc && defined IS_IN_rtld
+# define rtld_hidden_proto(name) hidden_proto (name)
+# define rtld_hidden_def(name) hidden_def (name)
+# define rtld_hidden_weak(name) hidden_weak (name)
+# define rtld_hidden_ver(local, name) hidden_ver (local, name)
+#else
+# define rtld_hidden_proto(name)
+# define rtld_hidden_def(name)
+# define rtld_hidden_weak(name)
+# define rtld_hidden_ver(local, name)
+#endif
+
+#if defined NOT_IN_libc && defined IS_IN_libm
+# define libm_hidden_proto(name) hidden_proto (name)
+# define libm_hidden_def(name) hidden_def (name)
+# define libm_hidden_weak(name) hidden_weak (name)
+# define libm_hidden_ver(local, name) hidden_ver (local, name)
+#else
+# define libm_hidden_proto(name)
+# define libm_hidden_def(name)
+# define libm_hidden_weak(name)
+# define libm_hidden_ver(local, name)
+#endif
+
 #endif /* libc-symbols.h */
--- libc/include/assert.h.jj	2002-07-29 15:14:50.000000000 +0200
+++ libc/include/assert.h	2002-08-02 14:24:31.000000000 +0200
@@ -1,10 +1,12 @@
 #include <assert/assert.h>
 
-extern void __assert_fail_internal (__const char *__assertion,
-				    __const char *__file,
-				    unsigned int __line,
-				    __const char *__function)
-     __attribute__ ((__noreturn__)) attribute_hidden;
-#if defined SHARED && !defined NOT_IN_libc
-# define __assert_fail __assert_fail_internal
+/* This prints an "Assertion failed" message and aborts.
+   In installed assert.h this is only conditionally declared,
+   so it has to be repeated here.  */
+extern void __assert_fail (__const char *__assertion, __const char *__file,
+			   unsigned int __line, __const char *__function)
+  __THROW __attribute__ ((__noreturn__));
+
+#if !defined NOT_IN_libc || defined IS_IN_rtld
+hidden_proto (__assert_fail)
 #endif
--- libc/include/libc-internal.h.jj	2002-03-23 11:50:27.000000000 +0100
+++ libc/include/libc-internal.h	2002-08-02 17:27:50.000000000 +0200
@@ -15,6 +15,7 @@ extern void __libc_global_ctors (void);
 /* Discover the tick frequency of the machine if something goes wrong,
    we return 0, an impossible hertz.  */
 extern int __profile_frequency (void);
+libc_hidden_proto (__profile_frequency)
 
 /* Hooks for the instrumenting functions.  */
 extern void __cyg_profile_func_enter (void *this_fn, void *call_site);
@@ -25,6 +26,7 @@ extern hp_timing_t __get_clockfreq (void
 
 /* Free all allocated resources.  */
 extern void __libc_freeres (void);
+libc_hidden_proto (__libc_freeres)
 
 /* Define and initialize `__progname' et. al.  */
 extern void __init_misc (int, char **, char **);
--- libc/include/wchar.h.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/include/wchar.h	2002-08-02 14:24:32.000000000 +0200
@@ -18,12 +18,8 @@ extern int __mbsinit (__const __mbstate_
 extern size_t __mbrtowc (wchar_t *__restrict __pwc,
 			 __const char *__restrict __s, size_t __n,
 			 __mbstate_t *__restrict __p);
-extern size_t __mbrtowc_internal (wchar_t *__restrict __pwc,
-				  __const char *__restrict __s, size_t __n,
-				  __mbstate_t *__restrict __p)
-     attribute_hidden;
-extern size_t __mbrlen_internal (__const char *__restrict __s, size_t __n,
-				 mbstate_t *__restrict __ps) attribute_hidden;
+libc_hidden_proto (__mbrtowc)
+libc_hidden_proto (__mbrlen)
 extern size_t __wcrtomb (char *__restrict __s, wchar_t __wc,
 			 __mbstate_t *__restrict __ps);
 extern size_t __mbsrtowcs (wchar_t *__restrict __dst,
@@ -68,10 +64,5 @@ extern int __vfwprintf (__FILE *__restri
 			__gnuc_va_list __arg)
      /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
 
-#  ifndef NOT_IN_libc
-#   define __mbrlen(s, n, ps) INTUSE(__mbrlen) (s, n, ps)
-#   define __mbrtowc(pwc, s, n, p) INTUSE(__mbrtowc) (pwc, s, n, p)
-#  endif
-
 # endif
 #endif
--- libc/include/string.h.jj	2001-09-12 09:56:44.000000000 +0200
+++ libc/include/string.h	2002-08-02 20:15:29.000000000 +0200
@@ -60,3 +60,8 @@ extern char *__strerror_r (int __errnum,
       (char *) memcpy (__new, __old, __len);				      \
     }))
 #endif
+
+libc_hidden_proto (__mempcpy)
+libc_hidden_proto (__stpncpy)
+libc_hidden_proto (__rawmemchr)
+libc_hidden_proto (__strcasecmp)
--- libc/include/fcntl.h.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/include/fcntl.h	2002-08-02 14:24:32.000000000 +0200
@@ -3,23 +3,15 @@
 
 /* Now define the internal interfaces.  */
 extern int __open64 (__const char *__file, int __oflag, ...);
+libc_hidden_proto (__open64)
 extern int __libc_open64 (const char *file, int oflag, ...);
 extern int __libc_open (const char *file, int oflag, ...);
+libc_hidden_proto (__libc_open)
 extern int __libc_fcntl (int fd, int cmd, ...);
+libc_hidden_proto (__libc_fcntl)
 extern int __open (__const char *__file, int __oflag, ...);
-extern int __open_internal (__const char *__file, int __oflag, ...)
-     attribute_hidden;
+libc_hidden_proto (__open)
 extern int __fcntl (int __fd, int __cmd, ...);
-extern int __fcntl_internal (int __fd, int __cmd, ...) attribute_hidden;
-
-#ifndef NOT_IN_libc
-# define __fcntl(fd, cmd, args...) INTUSE(__fcntl) (fd, cmd, ##args)
-# define __open(file, oflag, args...) INTUSE(__open) (file, oflag, ##args)
-# ifdef SHARED
-#  define __libc_fcntl(fd, cmd, args...) __fcntl_internal (fd, cmd, ##args)
-#  define __libc_open(file, oflag, args...) \
-  __open_internal (file, oflag, ##args)
-# endif
-#endif
+libc_hidden_proto (__fcntl)
 
 #endif
--- libc/include/unistd.h.jj	2002-06-21 11:36:31.000000000 +0200
+++ libc/include/unistd.h	2002-08-02 18:40:22.000000000 +0200
@@ -22,17 +22,19 @@ extern ssize_t __libc_pwrite (int __fd, 
 			      __off_t __offset);
 extern ssize_t __pwrite64 (int __fd, __const void *__buf, size_t __n,
 			   __off64_t __offset);
+libc_hidden_proto (__pwrite64)
 extern ssize_t __libc_pwrite64 (int __fd, __const void *__buf, size_t __n,
 				__off64_t __offset);
 extern ssize_t __libc_read (int __fd, void *__buf, size_t __n);
+libc_hidden_proto (__libc_read)
 extern ssize_t __libc_write (int __fd, __const void *__buf, size_t __n);
+libc_hidden_proto (__libc_write)
 extern int __pipe (int __pipedes[2]);
+libc_hidden_proto (__pipe)
 extern unsigned int __sleep (unsigned int __seconds);
 extern int __chown (__const char *__file,
 		    __uid_t __owner, __gid_t __group);
-extern int __chown_internal (__const char *__file,
-			     __uid_t __owner, __gid_t __group)
-     attribute_hidden;
+libc_hidden_proto (__chown)
 extern int __fchown (int __fd,
 		     __uid_t __owner, __gid_t __group);
 extern int __lchown (__const char *__file, __uid_t __owner,
@@ -54,14 +56,14 @@ char *__canonicalize_directory_name_inte
 
 extern int __dup (int __fd);
 extern int __dup2 (int __fd, int __fd2);
-extern int __dup2_internal (int __fd, int __fd2) attribute_hidden;
+libc_hidden_proto (__dup2)
 extern int __execve (__const char *__path, char *__const __argv[],
 		     char *__const __envp[]);
 extern long int __pathconf (__const char *__path, int __name);
 extern long int __fpathconf (int __fd, int __name);
 extern long int __sysconf (int __name);
 extern __pid_t __getpid (void);
-extern __pid_t __getpid_internal (void) attribute_hidden;
+libc_hidden_proto (__getpid)
 extern __pid_t __getppid (void);
 extern __pid_t __setsid (void);
 extern __uid_t __getuid (void);
@@ -69,12 +71,13 @@ extern __uid_t __geteuid (void);
 extern __gid_t __getgid (void);
 extern __gid_t __getegid (void);
 extern int __getgroups (int __size, __gid_t __list[]);
-extern __pid_t __getpgid_internal (__pid_t __pid) attribute_hidden;
+libc_hidden_proto (__getpgid)
 extern int __group_member (__gid_t __gid);
 extern int __setuid (__uid_t __uid);
 extern int __setreuid (__uid_t __ruid, __uid_t __euid);
 extern int __setgid (__gid_t __gid);
 extern int __setpgid (__pid_t __pid, __pid_t __pgid);
+libc_hidden_proto (__setpgid)
 extern int __setregid (__gid_t __rgid, __gid_t __egid);
 extern __pid_t __vfork (void);
 extern int __ttyname_r (int __fd, char *__buf, size_t __buflen);
@@ -89,18 +92,18 @@ extern int __profil (unsigned short int 
 extern int __getdtablesize (void);
 extern int __brk (void *__addr);
 extern int __close (int __fd);
-extern int __close_internal (int __fd) attribute_hidden;
+libc_hidden_proto (__close)
 extern ssize_t __read (int __fd, void *__buf, size_t __nbytes);
+libc_hidden_proto (__read)
 extern ssize_t __write (int __fd, __const void *__buf, size_t __n);
-extern ssize_t __write_internal (int __fd, __const void *__buf, size_t __n)
-     attribute_hidden;
+libc_hidden_proto (__write)
 extern __pid_t __fork (void);
 extern int __getpagesize (void) __attribute__ ((__const__));
-extern int __getpagesize_internal (void)
-     __attribute__ ((__const__)) attribute_hidden;
+libc_hidden_proto (__getpagesize)
 extern int __ftruncate (int __fd, __off_t __length);
 extern int __ftruncate64 (int __fd, __off64_t __length);
 extern void *__sbrk (intptr_t __delta);
+libc_hidden_proto (__sbrk)
 
 
 /* This variable is set nonzero at startup if the process's effective
@@ -118,16 +121,4 @@ extern int __libc_enable_secure_internal
 /* Various internal function.  */
 extern void __libc_check_standard_fds (void);
 
-
-#ifndef NOT_IN_libc
-# define __close(fd) INTUSE(__close) (fd)
-# define __dup2(fd, fd2) INTUSE(__dup2) (fd, fd2)
-# define __getpagesize() INTUSE(__getpagesize) ()
-# define __getpgid(pid) INTUSE(__getpgid) (pid)
-# define __getpid() INTUSE(__getpid) ()
-# ifdef SHARED
-#  define __libc_write(fd, buf, n) INTUSE(__write) (fd, buf, n)
-# endif
-#endif
-
 #endif
--- libc/include/printf.h.jj	2001-01-02 14:17:32.000000000 +0100
+++ libc/include/printf.h	2002-08-02 17:22:30.000000000 +0200
@@ -7,5 +7,6 @@ extern int __printf_fphex (FILE *, const
 			   const void *const *);
 extern int __printf_fp (FILE *, const struct printf_info *,
 			const void *const *);
+libc_hidden_proto (__printf_fp)
 
 #endif
--- libc/include/sched.h.jj	2000-08-02 21:36:17.000000000 +0200
+++ libc/include/sched.h	2002-08-02 18:09:49.000000000 +0200
@@ -7,6 +7,7 @@ extern int __sched_setparam (__pid_t __p
 extern int __sched_getparam (__pid_t __pid, struct sched_param *__param);
 extern int __sched_setscheduler (__pid_t __pid, int __policy,
 				 __const struct sched_param *__param);
+libc_hidden_proto (__sched_setscheduler)
 extern int __sched_getscheduler (__pid_t __pid);
 extern int __sched_yield (void);
 extern int __sched_get_priority_max (int __algorithm);
--- libc/include/resolv.h.jj	2002-08-02 11:47:37.000000000 +0200
+++ libc/include/resolv.h	2002-08-02 18:16:37.000000000 +0200
@@ -40,6 +40,8 @@ extern void res_send_setqhook (res_send_
 extern void res_send_setrhook (res_send_rhook __hook);
 extern int res_ourserver_p (const res_state __statp,
 			    const struct sockaddr_in6 *__inp);
+libc_hidden_proto (__res_ninit)
+libc_hidden_proto (__res_randomid)
 #endif
 
 #endif
--- libc/include/stdlib.h.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/include/stdlib.h	2002-08-02 18:31:04.000000000 +0200
@@ -8,6 +8,9 @@
 
 /* Now define the internal interfaces.  */
 #ifndef __Need_M_And_C
+
+libc_hidden_proto (__secure_getenv)
+
 extern long int __random (void);
 extern void __srandom (unsigned int __seed);
 extern char *__initstate (unsigned int __seed, char *__statebuf,
--- libc/include/signal.h.jj	2001-02-06 11:19:58.000000000 +0100
+++ libc/include/signal.h	2002-08-02 20:38:45.000000000 +0200
@@ -9,11 +9,13 @@ extern __sighandler_t __bsd_signal (int 
 extern int __kill (__pid_t __pid, int __sig);
 extern int __sigaction (int __sig, __const struct sigaction *__restrict __act,
 			struct sigaction *__restrict __oact);
+libc_hidden_proto (__sigaction)
 extern int __sigblock (int __mask);
 extern int __sigsetmask (int __mask);
 extern int __sigprocmask (int __how,
 			  __const sigset_t *__set, sigset_t *__oset);
 extern int __sigsuspend (__const sigset_t *__set);
+libc_hidden_proto (__sigsuspend)
 extern int __sigwait (__const sigset_t *__set, int *__sig);
 extern int __sigwaitinfo (__const sigset_t *__set, siginfo_t *__info);
 extern int __sigtimedwait (__const sigset_t *__set, siginfo_t *__info,
--- libc/inet/getaliasent_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getaliasent_r.c	2002-08-02 15:08:59.000000000 +0200
@@ -25,6 +25,5 @@
 #define	GETFUNC_NAME		getaliasent
 #define	ENDFUNC_NAME		endaliasent
 #define DATABASE_NAME		aliases
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXent_r.c"
--- libc/inet/getaliasname_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getaliasname_r.c	2002-08-02 15:09:34.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		aliases
 #define ADD_PARAMS		const char *name
 #define ADD_VARIABLES		name
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getnetbyad_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getnetbyad_r.c	2002-08-02 15:09:36.000000000 +0200
@@ -28,6 +28,5 @@
 #define ADD_VARIABLES		net, type
 #define NEED__RES		1
 #define NEED_H_ERRNO		1
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getnetbynm_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getnetbynm_r.c	2002-08-02 15:09:38.000000000 +0200
@@ -27,6 +27,5 @@
 #define ADD_VARIABLES		name
 #define NEED__RES		1
 #define NEED_H_ERRNO		1
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getnetent_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getnetent_r.c	2002-08-02 15:09:40.000000000 +0200
@@ -28,6 +28,5 @@
 #define STAYOPEN_VAR		stayopen
 #define NEED__RES		1
 #define NEED_H_ERRNO		1
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXent_r.c"
--- libc/inet/getproto_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getproto_r.c	2002-08-02 15:09:42.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		protocols
 #define ADD_PARAMS		int proto
 #define ADD_VARIABLES		proto
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getprtent_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getprtent_r.c	2002-08-02 15:09:44.000000000 +0200
@@ -26,6 +26,5 @@
 #define DATABASE_NAME		protocols
 #define STAYOPEN		int stayopen
 #define STAYOPEN_VAR		stayopen
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXent_r.c"
--- libc/inet/getprtname_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getprtname_r.c	2002-08-02 15:09:46.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		protocols
 #define ADD_PARAMS		const char *name
 #define ADD_VARIABLES		name
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getrpcbyname_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getrpcbyname_r.c	2002-08-02 15:09:48.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		rpc
 #define ADD_PARAMS		const char *name
 #define ADD_VARIABLES		name
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getrpcbynumber_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getrpcbynumber_r.c	2002-08-02 15:09:50.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		rpc
 #define ADD_PARAMS		int number
 #define ADD_VARIABLES		number
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getrpcent_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getrpcent_r.c	2002-08-02 15:09:52.000000000 +0200
@@ -26,6 +26,5 @@
 #define DATABASE_NAME		rpc
 #define STAYOPEN		int stayopen
 #define STAYOPEN_VAR		stayopen
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXent_r.c"
--- libc/inet/getservent_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getservent_r.c	2002-08-02 15:09:54.000000000 +0200
@@ -26,6 +26,5 @@
 #define DATABASE_NAME		services
 #define STAYOPEN		int stayopen
 #define STAYOPEN_VAR		stayopen
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXent_r.c"
--- libc/inet/getsrvbynm_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getsrvbynm_r.c	2002-08-02 15:09:57.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		services
 #define ADD_PARAMS		const char *name, const char *proto
 #define ADD_VARIABLES		name, proto
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/getsrvbypt_r.c.jj	2002-04-30 12:52:49.000000000 +0200
+++ libc/inet/getsrvbypt_r.c	2002-08-02 15:09:59.000000000 +0200
@@ -25,6 +25,5 @@
 #define DATABASE_NAME		services
 #define ADD_PARAMS		int port, const char *proto
 #define ADD_VARIABLES		port, proto
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/gethstbyad_r.c.jj	2002-02-28 12:31:49.000000000 +0100
+++ libc/inet/gethstbyad_r.c	2002-08-02 20:44:50.000000000 +0200
@@ -48,6 +48,6 @@
     }
 
 /* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT INTUSE(__nss_hosts_lookup)
+#define DB_LOOKUP_FCT __nss_hosts_lookup
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/gethstbynm2_r.c.jj	2002-02-28 12:31:49.000000000 +0100
+++ libc/inet/gethstbynm2_r.c	2002-08-02 20:45:04.000000000 +0200
@@ -41,6 +41,6 @@
 #define HAVE_AF			1
 
 /* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT INTUSE(__nss_hosts_lookup)
+#define DB_LOOKUP_FCT __nss_hosts_lookup
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/gethstbynm_r.c.jj	2002-02-28 12:31:49.000000000 +0100
+++ libc/inet/gethstbynm_r.c	2002-08-02 20:45:13.000000000 +0200
@@ -40,6 +40,6 @@
 #define HAVE_LOOKUP_BUFFER	1
 
 /* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT INTUSE(__nss_hosts_lookup)
+#define DB_LOOKUP_FCT __nss_hosts_lookup
 
 #include "../nss/getXXbyYY_r.c"
--- libc/inet/gethstent_r.c.jj	2002-02-28 12:31:49.000000000 +0100
+++ libc/inet/gethstent_r.c	2002-08-02 20:45:30.000000000 +0200
@@ -30,6 +30,6 @@
 #define NEED__RES	1
 
 /* Special name for the lookup function.  */
-#define DB_LOOKUP_FCT INTUSE(__nss_hosts_lookup)
+#define DB_LOOKUP_FCT __nss_hosts_lookup
 
 #include "../nss/getXXent_r.c"
--- libc/libio/iofdopen.c.jj	2002-08-02 11:47:37.000000000 +0200
+++ libc/libio/iofdopen.c	2002-08-02 14:24:32.000000000 +0200
@@ -37,7 +37,7 @@
 
 #ifndef _IO_fcntl
 #ifdef _LIBC
-#define _IO_fcntl INTUSE(__fcntl)
+#define _IO_fcntl __fcntl
 #else
 #define _IO_fcntl fcntl
 #endif
--- libc/libio/genops.c.jj	2002-02-28 12:31:49.000000000 +0100
+++ libc/libio/genops.c	2002-08-02 15:15:48.000000000 +0200
@@ -236,6 +236,7 @@ __overflow (f, ch)
     _IO_fwide (f, -1);
   return _IO_OVERFLOW (f, ch);
 }
+libc_hidden_def (__overflow)
 
 static int save_for_backup __P ((_IO_FILE *fp, char *end_p))
 #ifdef _LIBC
--- libc/libio/iovdprintf.c.jj	2002-02-28 12:31:50.000000000 +0100
+++ libc/libio/iovdprintf.c	2002-08-02 15:17:45.000000000 +0200
@@ -26,7 +26,6 @@
    in files containing the exception.  */
 
 #include "libioP.h"
-#include "libio.h"
 #include <stdio_ext.h>
 
 int
--- libc/libio/libioP.h.jj	2002-08-02 11:47:37.000000000 +0200
+++ libc/libio/libioP.h	2002-08-02 15:23:29.000000000 +0200
@@ -48,6 +48,18 @@
 #ifndef INTDEF2
 # define INTDEF2(name)
 #endif
+#ifndef libc_hidden_proto
+# define libc_hidden_proto(name)
+#endif
+#ifndef libc_hidden_def
+# define libc_hidden_def(name)
+#endif
+#ifndef libc_hidden_weak
+# define libc_hidden_weak(name)
+#endif
+
+libc_hidden_proto (__overflow)
+libc_hidden_proto (__woverflow)
 
 #ifdef __cplusplus
 extern "C" {
--- libc/libio/wgenops.c.jj	2002-07-01 12:31:52.000000000 +0200
+++ libc/libio/wgenops.c	2002-08-02 15:23:12.000000000 +0200
@@ -246,6 +246,7 @@ __woverflow (f, wch)
     _IO_fwide (f, 1);
   return _IO_OVERFLOW (f, wch);
 }
+libc_hidden_def (__woverflow)
 
 
 wint_t
--- libc/malloc/set-freeres.c.jj	2001-08-23 18:48:21.000000000 +0200
+++ libc/malloc/set-freeres.c	2002-08-02 19:18:54.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2000, 2001, 2002 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
@@ -43,3 +43,4 @@ __libc_freeres (void)
       RUN_HOOK (__libc_subfreeres, ());
     }
 }
+libc_hidden_def (__libc_freeres)
--- libc/nss/nsswitch.h.jj	2002-03-23 11:50:55.000000000 +0100
+++ libc/nss/nsswitch.h	2002-08-02 14:24:32.000000000 +0200
@@ -103,7 +103,7 @@ typedef struct name_database
    than one function can use the database.  */
 int __nss_database_lookup (const char *database, const char *alternative_name,
 			   const char *defconfig, service_user **ni);
-
+libc_hidden_proto (__nss_database_lookup)
 
 /* Put first function with name FCT_NAME for SERVICE in FCTP.  The
    position is remembered in NI.  The function returns a value < 0 if
@@ -125,6 +125,7 @@ int __nss_lookup (service_user **ni, con
    natural end.  */
 int __nss_next (service_user **ni, const char *fct_name, void **fctp,
 		int status, int all_values);
+libc_hidden_proto (__nss_next)
 
 /* Search for the service described in NI for a function named FCT_NAME
    and return a pointer to this function if successful.  */
--- libc/nss/nsswitch.c.jj	2002-03-23 11:50:55.000000000 +0100
+++ libc/nss/nsswitch.c	2002-08-02 14:24:32.000000000 +0200
@@ -136,6 +136,7 @@ __nss_database_lookup (const char *datab
 
   return 0;
 }
+libc_hidden_def (__nss_database_lookup)
 
 
 /* -1 == not found
@@ -199,6 +200,7 @@ __nss_next (service_user **ni, const cha
 
   return *fctp != NULL ? 0 : -1;
 }
+libc_hidden_def (__nss_next)
 
 
 int
--- libc/nss/getXXent_r.c.jj	2002-07-01 12:35:37.000000000 +0200
+++ libc/nss/getXXent_r.c	2002-08-02 15:05:16.000000000 +0200
@@ -94,10 +94,6 @@
 # define NEED__RES 0
 #endif
 
-#ifndef NSS_attribute_hidden
-# define NSS_attribute_hidden
-#endif
-
 /* This handle for the NSS data base is shared between all
    set/get/endXXXent functions.  */
 static service_user *nip;
@@ -118,7 +114,8 @@ __libc_lock_define_initialized (static, 
 
 /* The lookup function for the first entry of this service.  */
 extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp)
-     internal_function NSS_attribute_hidden;
+     internal_function;
+libc_hidden_proto (DB_LOOKUP_FCT)
 \f
 void
 SETFUNC_NAME (STAYOPEN)
--- libc/nss/getXXbyYY_r.c.jj	2002-07-01 12:32:22.000000000 +0200
+++ libc/nss/getXXbyYY_r.c	2002-08-02 15:04:38.000000000 +0200
@@ -109,17 +109,14 @@
 # define AF_VAR_P NULL
 #endif
 
-#ifndef NSS_attribute_hidden
-# define NSS_attribute_hidden
-#endif
-
 /* Type of the lookup function we need here.  */
 typedef enum nss_status (*lookup_function) (ADD_PARAMS, LOOKUP_TYPE *, char *,
 					    size_t, int * H_ERRNO_PARM);
 
 /* The lookup function for the first entry of this service.  */
 extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp)
-     internal_function NSS_attribute_hidden;
+     internal_function;
+libc_hidden_proto (DB_LOOKUP_FCT)
 
 /* Interval in which we transfer retry to contact the NSCD.  */
 #define NSS_NSCD_RETRY	100
--- libc/nss/XXX-lookup.c.jj	2002-03-23 11:50:55.000000000 +0100
+++ libc/nss/XXX-lookup.c	2002-08-02 15:06:41.000000000 +0200
@@ -57,6 +57,7 @@ service_user *DATABASE_NAME_SYMBOL attri
 
 extern int DB_LOOKUP_FCT (service_user **ni, const char *fct_name,
 			  void **fctp) internal_function;
+libc_hidden_proto (DB_LOOKUP_FCT)
 
 int
 internal_function
@@ -71,3 +72,4 @@ DB_LOOKUP_FCT (service_user **ni, const 
 
   return __nss_lookup (ni, fct_name, fctp);
 }
+libc_hidden_def (DB_LOOKUP_FCT)
--- libc/nss/hosts-lookup.c.jj	2002-02-28 12:32:03.000000000 +0100
+++ libc/nss/hosts-lookup.c	2002-08-02 20:43:10.000000000 +0200
@@ -21,5 +21,3 @@
 #define DEFAULT_CONFIG "dns [!UNAVAIL=return] files"
 
 #include "XXX-lookup.c"
-
-INTDEF(__nss_hosts_lookup)
--- libc/posix/bsd-getpgrp.c.jj	2002-04-30 12:53:17.000000000 +0200
+++ libc/posix/bsd-getpgrp.c	2002-08-02 15:34:06.000000000 +0200
@@ -22,11 +22,11 @@
 /* Don't include unistd.h because it declares a conflicting
    prototype for the POSIX.1 `getpgrp' function.  */
 extern pid_t __getpgid (pid_t);
-extern pid_t __getpgid_internal (pid_t);
+libc_hidden_proto (__getpgid)
 extern pid_t __bsd_getpgrp (pid_t);
 
 pid_t
 __bsd_getpgrp (pid_t pid)
 {
-  return INTUSE(__getpgid) (pid);
+  return __getpgid (pid);
 }
--- libc/resolv/res_init.c.jj	2002-06-05 10:27:39.000000000 +0200
+++ libc/resolv/res_init.c	2002-08-02 18:13:49.000000000 +0200
@@ -135,6 +135,9 @@ res_ninit(res_state statp) {
 
 	return (__res_vinit(statp, 0));
 }
+#ifdef _LIBC
+libc_hidden_def (__res_ninit)
+#endif
 
 /* This function has to be reachable by res_data.c but not publically. */
 int
@@ -521,6 +524,9 @@ res_randomid(void) {
 	__gettimeofday(&now, NULL);
 	return (0xffff & (now.tv_sec ^ now.tv_usec ^ __getpid()));
 }
+#ifdef _LIBC
+libc_hidden_def (__res_randomid)
+#endif
 
 /*
  * This routine is for closing the socket if a virtual circuit is used and
--- libc/shadow/getspent_r.c.jj	2002-04-30 12:53:24.000000000 +0200
+++ libc/shadow/getspent_r.c	2002-08-02 15:10:19.000000000 +0200
@@ -26,6 +26,5 @@
 #define	ENDFUNC_NAME		endspent
 #define DATABASE_NAME		shadow
 #define BUFLEN			1024
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXent_r.c"
--- libc/shadow/getspnam_r.c.jj	2002-04-30 12:53:24.000000000 +0200
+++ libc/shadow/getspnam_r.c	2002-08-02 15:10:22.000000000 +0200
@@ -26,6 +26,5 @@
 #define ADD_PARAMS		const char *name
 #define ADD_VARIABLES		name
 #define BUFLEN			1024
-#define NSS_attribute_hidden	attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
--- libc/stdio-common/printf_fp.c.jj	2002-07-23 10:05:47.000000000 +0200
+++ libc/stdio-common/printf_fp.c	2002-08-02 17:29:15.000000000 +0200
@@ -1146,6 +1146,7 @@ __printf_fp (FILE *fp,
   }
   return done;
 }
+libc_hidden_def (__printf_fp)
 \f
 /* Return the number of extra grouping characters that will be inserted
    into a number with INTDIG_MAX integer digits.  */
--- libc/stdlib/strfmon.c.jj	2002-02-28 12:32:13.000000000 +0100
+++ libc/stdlib/strfmon.c	2002-08-02 17:29:58.000000000 +0200
@@ -76,6 +76,7 @@
 
 extern int __printf_fp (FILE *, const struct printf_info *,
 			const void *const *);
+libc_hidden_proto (__printf_fp)
 /* This function determines the number of digit groups in the output.
    The definition is in printf_fp.c.  */
 extern unsigned int __guess_grouping (unsigned int intdig_max,
--- libc/stdlib/secure-getenv.c.jj	2001-08-23 18:49:14.000000000 +0200
+++ libc/stdlib/secure-getenv.c	2002-08-02 19:19:02.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1994, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1994, 1996, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,3 +28,4 @@ __secure_getenv (name)
 {
   return __libc_enable_secure ? NULL : getenv (name);
 }
+libc_hidden_def (__secure_getenv)
--- libc/sunrpc/rpc_thread.c.jj	2002-08-02 11:47:41.000000000 +0200
+++ libc/sunrpc/rpc_thread.c	2002-08-02 18:26:08.000000000 +0200
@@ -85,6 +85,7 @@ __rpc_thread_svc_fdset (void)
 		return &svc_fdset;
 	return &tvp->svc_fdset_s;
 }
+libc_hidden_def (__rpc_thread_svc_fdset)
 
 struct rpc_createerr *
 __rpc_thread_createerr (void)
@@ -96,6 +97,7 @@ __rpc_thread_createerr (void)
 		return &rpc_createerr;
 	return &tvp->rpc_createerr_s;
 }
+libc_hidden_def (__rpc_thread_createerr)
 
 struct pollfd **
 __rpc_thread_svc_pollfd (void)
--- libc/sysdeps/alpha/alphaev67/rawmemchr.S.jj	2001-08-23 18:49:20.000000000 +0200
+++ libc/sysdeps/alpha/alphaev67/rawmemchr.S	2002-08-02 17:38:03.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002 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
@@ -89,4 +89,5 @@ $found:
 
 	END(__rawmemchr)
 
+libc_hidden_def (__rawmemchr)
 weak_alias (__rawmemchr, rawmemchr)
--- libc/sysdeps/alpha/alphaev67/stpncpy.S.jj	2001-08-23 18:49:20.000000000 +0200
+++ libc/sysdeps/alpha/alphaev67/stpncpy.S	2002-08-02 19:19:08.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
    Contributed by Richard Henderson (rth@redhat.com)
    This file is part of the GNU C Library.
 
@@ -112,4 +112,5 @@ $zerocount:
 
 	END(__stpncpy)
 
+libc_hidden_def (__stpncpy)
 weak_alias (__stpncpy, stpncpy)
--- libc/sysdeps/alpha/rawmemchr.S.jj	2001-08-23 18:49:20.000000000 +0200
+++ libc/sysdeps/alpha/rawmemchr.S	2002-08-02 19:19:12.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002 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
@@ -86,4 +86,5 @@ $found:
 
 	END(__rawmemchr)
 
+libc_hidden_def (__rawmemchr)
 weak_alias (__rawmemchr, rawmemchr)
--- libc/sysdeps/alpha/stpncpy.S.jj	2001-08-23 18:49:20.000000000 +0200
+++ libc/sysdeps/alpha/stpncpy.S	2002-08-02 19:19:16.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@tamu.edu)
 
@@ -103,4 +103,5 @@ $zerocount:
 
 	END(__stpncpy)
 
+libc_hidden_def (__stpncpy)
 weak_alias (__stpncpy, stpncpy)
--- libc/sysdeps/generic/fcntl.c.jj	2002-04-30 12:53:42.000000000 +0200
+++ libc/sysdeps/generic/fcntl.c	2002-08-02 14:24:32.000000000 +0200
@@ -19,8 +19,6 @@
 #include <errno.h>
 #include <fcntl.h>
 
-#undef __fcntl
-
 /* Perform file control operations on FD.  */
 int
 __fcntl (fd, cmd)
@@ -36,6 +34,7 @@ __fcntl (fd, cmd)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__fcntl)
 stub_warning (fcntl)
 
 weak_alias (__fcntl, fcntl)
--- libc/sysdeps/generic/mempcpy.c.jj	2001-08-23 18:49:33.000000000 +0200
+++ libc/sysdeps/generic/mempcpy.c	2002-08-02 19:19:23.000000000 +0200
@@ -1,7 +1,7 @@
 /* Copy memory to memory until the specified number of bytes
    has been copied, return pointer to following byte.
    Overlap is NOT handled correctly.
-   Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1997, 1998, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
@@ -25,7 +25,6 @@
 #include <pagecopy.h>
 
 #undef mempcpy
-#undef __mempcpy
 
 void *
 __mempcpy (dstpp, srcpp, len)
@@ -64,4 +63,5 @@ __mempcpy (dstpp, srcpp, len)
 
   return (void *) dstp;
 }
+libc_hidden_def (__mempcpy)
 weak_alias (__mempcpy, mempcpy)
--- libc/sysdeps/generic/open64.c.jj	2001-08-23 18:49:33.000000000 +0200
+++ libc/sysdeps/generic/open64.c	2002-08-02 19:19:30.000000000 +0200
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 1999, 2000, 2002
+   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
@@ -49,6 +50,7 @@ __libc_open64 (file, oflag)
   return -1;
 }
 strong_alias (__libc_open64, __open64)
+libc_hidden_def (__open64)
 weak_alias (__libc_open64, BP_SYM (open64))
 
 stub_warning (open64)
--- libc/sysdeps/generic/open.c.jj	2002-04-30 12:53:42.000000000 +0200
+++ libc/sysdeps/generic/open.c	2002-08-02 14:24:32.000000000 +0200
@@ -21,8 +21,6 @@
 #include <stdarg.h>
 #include <stddef.h>
 
-#undef __open
-
 /* Open FILE with access OFLAG.  If OFLAG includes O_CREAT,
    a third argument is the file protection.  */
 int
@@ -49,8 +47,8 @@ __open (file, oflag)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__open)
 stub_warning (open)
 
-INTDEF(__open)
 weak_alias (__open, open)
 #include <stub-tag.h>
--- libc/sysdeps/generic/chown.c.jj	2001-08-23 18:49:24.000000000 +0200
+++ libc/sysdeps/generic/chown.c	2002-08-02 19:19:42.000000000 +0200
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1995, 1996, 1997, 2002
+   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
@@ -37,6 +38,7 @@ __chown (file, owner, group)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__chown)
 stub_warning (chown)
 
 weak_alias (__chown, chown)
--- libc/sysdeps/generic/close.c.jj	2001-08-23 18:49:27.000000000 +0200
+++ libc/sysdeps/generic/close.c	2002-08-02 19:19:47.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -33,6 +33,7 @@ __close (fd)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__close)
 stub_warning (close)
 
 weak_alias (__close, close)
--- libc/sysdeps/generic/dup2.c.jj	2001-08-23 18:49:27.000000000 +0200
+++ libc/sysdeps/generic/dup2.c	2002-08-02 19:19:53.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -41,6 +41,7 @@ __dup2 (fd, fd2)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__dup2)
 stub_warning (dup2)
 
 weak_alias (__dup2, dup2)
--- libc/sysdeps/generic/getpagesize.c.jj	2002-04-30 12:53:42.000000000 +0200
+++ libc/sysdeps/generic/getpagesize.c	2002-08-02 15:37:26.000000000 +0200
@@ -19,8 +19,6 @@
 #include <errno.h>
 #include <unistd.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  */
 int
 __getpagesize ()
@@ -28,8 +26,8 @@ __getpagesize ()
   __set_errno (ENOSYS);
   return 0;
 }
+libc_hidden_def (__getpagesize)
 stub_warning (getpagesize)
 
-INTDEF(__getpagesize)
 weak_alias (__getpagesize, getpagesize)
 #include <stub-tag.h>
--- libc/sysdeps/generic/getpgid.c.jj	2002-04-30 12:53:42.000000000 +0200
+++ libc/sysdeps/generic/getpgid.c	2002-08-02 15:37:49.000000000 +0200
@@ -19,8 +19,6 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-#undef __getpgid
-
 /* Get the process group ID of process PID.  */
 pid_t
 __getpgid (pid)
@@ -28,7 +26,7 @@ __getpgid (pid)
 {
   return pid;
 }
-INTDEF(__getpgid)
+libc_hidden_def (__getpgid)
 weak_alias (__getpgid, getpgid)
 
 stub_warning (getpgid)
--- libc/sysdeps/generic/getpid.c.jj	2002-04-30 12:53:42.000000000 +0200
+++ libc/sysdeps/generic/getpid.c	2002-08-02 15:39:08.000000000 +0200
@@ -19,8 +19,6 @@
 #include <errno.h>
 #include <unistd.h>
 
-#undef __getpid
-
 /* Get the process ID of the calling process.  */
 int
 __getpid ()
@@ -28,8 +26,8 @@ __getpid ()
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__getpid)
 stub_warning (getpid)
 
-INTDEF(__getpid)
 weak_alias (__getpid, getpid)
 #include <stub-tag.h>
--- libc/sysdeps/generic/pipe.c.jj	2001-08-23 18:49:33.000000000 +0200
+++ libc/sysdeps/generic/pipe.c	2002-08-02 19:19:57.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 2002 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
@@ -37,6 +37,7 @@ __pipe (__pipedes)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__pipe)
 stub_warning (pipe)
 
 weak_alias (__pipe, pipe)
--- libc/sysdeps/generic/write.c.jj	2002-04-30 12:53:43.000000000 +0200
+++ libc/sysdeps/generic/write.c	2002-08-02 15:40:22.000000000 +0200
@@ -21,9 +21,6 @@
 #include <unistd.h>
 #include <stddef.h>
 
-#undef __libc_write
-#undef __write
-
 /* Write NBYTES of BUF to FD.  Return the number written, or -1.  */
 ssize_t
 __libc_write (int fd, const void *buf, size_t nbytes)
@@ -44,9 +41,10 @@ __libc_write (int fd, const void *buf, s
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__libc_write)
 stub_warning (write)
 
 weak_alias (__libc_write, __write)
-INTDEF(__write)
+libc_hidden_weak (__write)
 weak_alias (__libc_write, write)
 #include <stub-tag.h>
--- libc/sysdeps/generic/prof-freq.c.jj	2001-01-02 14:18:03.000000000 +0100
+++ libc/sysdeps/generic/prof-freq.c	2002-08-02 17:38:40.000000000 +0200
@@ -52,3 +52,4 @@ __profile_frequency (void)
     return 0;
   return (1000000 / tim.it_interval.tv_usec);
 }
+libc_hidden_def (__profile_frequency)
--- libc/sysdeps/generic/pwrite64.c.jj	2001-08-23 18:49:33.000000000 +0200
+++ libc/sysdeps/generic/pwrite64.c	2002-08-02 19:20:13.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,1999,2002 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
@@ -41,6 +41,7 @@ __libc_pwrite64 (int fd, const void *buf
   return -1;
 }
 strong_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_def (__pwrite64)
 weak_alias (__libc_pwrite64, pwrite64)
 stub_warning (pwrite64)
 #include <stub-tag.h>
--- libc/sysdeps/generic/rawmemchr.c.jj	2001-08-23 18:49:33.000000000 +0200
+++ libc/sysdeps/generic/rawmemchr.c	2002-08-02 19:20:21.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,93,96,97,99,2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,93,96,97,99,2000,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
    with help from Dan Sahlin (dan@sics.se) and
@@ -185,4 +185,5 @@ __rawmemchr (s, c_in)
 	}
     }
 }
+libc_hidden_def (__rawmemchr)
 weak_alias (__rawmemchr, rawmemchr)
--- libc/sysdeps/generic/read.c.jj	2001-08-23 18:49:33.000000000 +0200
+++ libc/sysdeps/generic/read.c	2002-08-02 19:20:27.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -40,8 +40,10 @@ __libc_read (int fd, void *buf, size_t n
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__libc_read)
 stub_warning (read)
 
 weak_alias (__libc_read, __read)
+libc_hidden_weak (__read)
 weak_alias (__libc_read, read)
 #include <stub-tag.h>
--- libc/sysdeps/generic/sbrk.c.jj	2002-03-23 11:51:05.000000000 +0100
+++ libc/sysdeps/generic/sbrk.c	2002-08-02 18:26:55.000000000 +0200
@@ -52,5 +52,5 @@ __sbrk (intptr_t increment)
 
   return oldbrk;
 }
-
+libc_hidden_def (__sbrk)
 weak_alias (__sbrk, sbrk)
--- libc/sysdeps/generic/sched_sets.c.jj	2001-08-23 18:49:35.000000000 +0200
+++ libc/sysdeps/generic/sched_sets.c	2002-08-02 19:20:31.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,6 +28,7 @@ __sched_setscheduler (pid_t pid, int pol
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__sched_setscheduler)
 stub_warning (sched_setscheduler)
 
 weak_alias (__sched_setscheduler, sched_setscheduler)
--- libc/sysdeps/generic/select.c.jj	2001-08-23 18:49:35.000000000 +0200
+++ libc/sysdeps/generic/select.c	2002-08-02 19:20:37.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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,6 +36,7 @@ __select (nfds, readfds, writefds, excep
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__select)
 stub_warning (select)
 
 weak_alias (__select, select)
--- libc/sysdeps/generic/send.c.jj	2001-08-23 18:49:35.000000000 +0200
+++ libc/sysdeps/generic/send.c	2002-08-02 19:20:50.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2001,2002 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
@@ -30,8 +30,8 @@ __send (fd, buf, n, flags)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__send)
 weak_alias (__send, send)
 
-
 stub_warning (send)
 #include <stub-tag.h>
--- libc/sysdeps/generic/setpgid.c.jj	2001-08-23 18:49:35.000000000 +0200
+++ libc/sysdeps/generic/setpgid.c	2002-08-02 19:20:56.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -30,6 +30,7 @@ __setpgid (pid, pgid)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__setpgid)
 stub_warning (setpgid)
 
 weak_alias (__setpgid, setpgid)
--- libc/sysdeps/generic/sigaction.c.jj	2001-08-23 18:49:35.000000000 +0200
+++ libc/sysdeps/generic/sigaction.c	2002-08-02 19:21:02.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -37,6 +37,7 @@ __sigaction (sig, act, oact)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__sigaction)
 stub_warning (sigaction)
 
 weak_alias (__sigaction, sigaction)
--- libc/sysdeps/generic/sigsuspend.c.jj	2001-08-23 18:49:38.000000000 +0200
+++ libc/sysdeps/generic/sigsuspend.c	2002-08-02 19:21:11.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,1998,2002 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
@@ -29,6 +29,7 @@ __sigsuspend (set)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
 
 stub_warning (sigsuspend)
--- libc/sysdeps/generic/statfs.c.jj	2001-08-23 18:49:38.000000000 +0200
+++ libc/sysdeps/generic/statfs.c	2002-08-02 19:21:17.000000000 +0200
@@ -1,5 +1,5 @@
 /* statfs -- Return information about the filesystem on which FILE resides.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,6 +28,7 @@ __statfs (const char *file, struct statf
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__statfs)
 weak_alias (__statfs, statfs)
 
 stub_warning (statfs)
--- libc/sysdeps/generic/stpncpy.c.jj	2001-08-23 18:49:38.000000000 +0200
+++ libc/sysdeps/generic/stpncpy.c	2002-08-02 19:21:22.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1996, 1997, 2002 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
@@ -95,5 +95,6 @@ __stpncpy (dest, src, n)
   return dest - 1;
 }
 #ifdef weak_alias
+libc_hidden_def (__stpncpy)
 weak_alias (__stpncpy, stpncpy)
 #endif
--- libc/sysdeps/generic/strcasecmp.c.jj	2001-12-10 19:19:21.000000000 +0100
+++ libc/sysdeps/generic/strcasecmp.c	2002-08-02 19:21:33.000000000 +0200
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,1992,1995,1996,1997,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1995,1996,1997,2001,2002
+   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
@@ -66,5 +67,6 @@ __strcasecmp (s1, s2 LOCALE_PARAM)
   return result;
 }
 #ifndef __strcasecmp
+libc_hidden_def (__strcasecmp)
 weak_alias (__strcasecmp, strcasecmp)
 #endif
--- libc/sysdeps/i386/i586/mempcpy.S.jj	2000-07-27 15:59:51.000000000 +0200
+++ libc/sysdeps/i386/i586/mempcpy.S	2002-08-02 14:24:32.000000000 +0200
@@ -1,4 +1,5 @@
 #define memcpy __mempcpy
 #include <sysdeps/i386/i586/memcpy.S>
 
+libc_hidden_def (BP_SYM (__mempcpy))
 weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
--- libc/sysdeps/i386/i686/mempcpy.S.jj	2001-08-23 18:49:52.000000000 +0200
+++ libc/sysdeps/i386/i686/mempcpy.S	2002-08-02 19:21:43.000000000 +0200
@@ -1,7 +1,7 @@
 /* Copy memory block and return pointer to following byte.
    For Intel 80x86, x>=6.
    This file is part of the GNU C Library.
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,4 +57,5 @@ ENTRY (BP_SYM (__mempcpy))
 	LEAVE
 	RET_PTR
 END (BP_SYM (__mempcpy))
+libc_hidden_def (BP_SYM (__mempcpy))
 weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
--- libc/sysdeps/i386/rawmemchr.S.jj	2001-08-23 18:49:48.000000000 +0200
+++ libc/sysdeps/i386/rawmemchr.S	2002-08-02 17:43:35.000000000 +0200
@@ -1,6 +1,6 @@
 /* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1994,95,96,97,98,99,2000,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -222,4 +222,5 @@ L(9):
 	RET_PTR
 END (BP_SYM (__rawmemchr))
 
+libc_hidden_def (BP_SYM (__rawmemchr))
 weak_alias (BP_SYM (__rawmemchr), BP_SYM (rawmemchr))
--- libc/sysdeps/i386/stpncpy.S.jj	2001-08-23 18:49:48.000000000 +0200
+++ libc/sysdeps/i386/stpncpy.S	2002-08-02 19:21:57.000000000 +0200
@@ -1,7 +1,7 @@
 /* copy no more then N bytes from SRC to DEST, returning the address of
    the terminating '\0' in DEST.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1994,1995,1996,1997,2000,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Some bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -153,4 +153,5 @@ L(9):
 	RET_PTR
 END (BP_SYM (__stpncpy))
 
+libc_hidden_def (BP_SYM (__stpncpy))
 weak_alias (BP_SYM (__stpncpy), BP_SYM (stpncpy))
--- libc/sysdeps/m68k/rawmemchr.S.jj	2001-08-23 18:49:59.000000000 +0200
+++ libc/sysdeps/m68k/rawmemchr.S	2002-08-02 19:22:01.000000000 +0200
@@ -1,6 +1,6 @@
 /* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
    For Motorola 68000.
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Schwab <schwab@gnu.org>.
 
@@ -176,4 +176,5 @@ L(L9:)
 	rts
 END(__rawmemchr)
 
+libc_hidden_def (__rawmemchr)
 weak_alias (__rawmemchr, rawmemchr)
--- libc/sysdeps/mach/hurd/fcntl.c.jj	2002-06-05 10:27:45.000000000 +0200
+++ libc/sysdeps/mach/hurd/fcntl.c	2002-08-02 14:24:32.000000000 +0200
@@ -23,10 +23,6 @@
 #include <stdarg.h>
 #include <sys/file.h>		/* XXX for LOCK_* */
 
-#undef __libc_fcntl
-#undef __fcntl
-
-
 /* Perform file control operations on FD.  */
 int
 __libc_fcntl (int fd, int cmd, ...)
@@ -200,7 +196,7 @@ __libc_fcntl (int fd, int cmd, ...)
 
   return result;
 }
-
-INTDEF2 (__libc_fcntl, __fcntl)
+libc_hidden_def (__libc_fcntl)
 weak_alias (__libc_fcntl, __fcntl)
+libc_hidden_weak (__fcntl)
 weak_alias (__libc_fcntl, fcntl)
--- libc/sysdeps/mach/hurd/open.c.jj	2002-04-30 12:55:01.000000000 +0200
+++ libc/sysdeps/mach/hurd/open.c	2002-08-02 14:24:32.000000000 +0200
@@ -22,9 +22,6 @@
 #include <hurd.h>
 #include <hurd/fd.h>
 
-#undef __libc_open
-#undef __open
-
 /* Open FILE with access OFLAG.  If OFLAG includes O_CREAT,
    a third argument is the file protection.  */
 int
@@ -50,6 +47,7 @@ __libc_open (const char *file, int oflag
   return _hurd_intern_fd (port, oflag, 1);
 }
 
-INTDEF2(__libc_open, __open)
+libc_hidden_def (__libc_open)
 weak_alias (__libc_open, __open)
+libc_hidden_weak (__open)
 weak_alias (__libc_open, open)
--- libc/sysdeps/mach/hurd/chown.c.jj	2002-04-30 12:54:57.000000000 +0200
+++ libc/sysdeps/mach/hurd/chown.c	2002-08-02 15:59:13.000000000 +0200
@@ -38,6 +38,5 @@ __chown (file, owner, group)
     return __hurd_fail (err);
   return 0;
 }
-
-INTDEF(__chown)
+libc_hidden_def (__chown)
 weak_alias (__chown, chown)
--- libc/sysdeps/mach/hurd/close.c.jj	2002-06-05 10:27:45.000000000 +0200
+++ libc/sysdeps/mach/hurd/close.c	2002-08-02 16:07:41.000000000 +0200
@@ -21,8 +21,6 @@
 #include <hurd.h>
 #include <hurd/fd.h>
 
-#undef __close
-
 /* Close the file descriptor FD.  */
 int
 __close (int fd)
@@ -33,6 +31,5 @@ __close (int fd)
 
   return err ? __hurd_fail (err) : 0;
 }
-
-INTDEF (__close)
+libc_hidden_def (__close)
 weak_alias (__close, close)
--- libc/sysdeps/mach/hurd/dup2.c.jj	2002-04-30 12:54:57.000000000 +0200
+++ libc/sysdeps/mach/hurd/dup2.c	2002-08-02 16:08:12.000000000 +0200
@@ -22,9 +22,6 @@
 #include <hurd.h>
 #include <hurd/fd.h>
 
-#undef __dup2
-
-
 /* Duplicate FD to FD2, closing the old FD2 and making FD2 be
    open on the same file as FD is.  Return FD2 or -1.  */
 int
@@ -133,6 +130,5 @@ __dup2 (fd, fd2)
 
   return fd2;
 }
-
-INTDEF(__dup2)
+libc_hidden_def (__dup2)
 weak_alias (__dup2, dup2)
--- libc/sysdeps/mach/hurd/getpgid.c.jj	2002-04-30 12:54:57.000000000 +0200
+++ libc/sysdeps/mach/hurd/getpgid.c	2002-08-02 16:08:30.000000000 +0200
@@ -21,8 +21,6 @@
 #include <hurd.h>
 #include <hurd/port.h>
 
-#undef __getpgid
-
 /* Get the process group ID of process PID.  */
 int
 __getpgid (pid)
@@ -42,6 +40,5 @@ __getpgid (pid)
 
   return err ? __hurd_fail (err) : pgrp;
 }
-
-INTDEF(__getpgid)
+libc_hidden_def (__getpgid)
 weak_alias (__getpgid, getpgid)
--- libc/sysdeps/mach/hurd/getpid.c.jj	2002-04-30 12:54:58.000000000 +0200
+++ libc/sysdeps/mach/hurd/getpid.c	2002-08-02 16:08:43.000000000 +0200
@@ -20,8 +20,6 @@
 #include <unistd.h>
 #include <hurd.h>
 
-#undef __getpid
-
 /* Get the process ID of the calling process.  */
 pid_t
 __getpid ()
@@ -29,6 +27,5 @@ __getpid ()
   /* Assumes atomic word fetch and store, so doesn't lock _hurd_pid_lock.  */
   return _hurd_pid;
 }
-
-INTDEF(__getpid)
+libc_hidden_def (__getpid)
 weak_alias (__getpid, getpid)
--- libc/sysdeps/mach/hurd/pipe.c.jj	2001-08-23 18:50:04.000000000 +0200
+++ libc/sysdeps/mach/hurd/pipe.c	2002-08-02 19:22:13.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 94, 95, 96, 99, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992,93,94,95,96,99,2000,2002 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,6 +19,7 @@
 #include <errno.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
+#include <unistd.h>
 
 /* Create a one-way communication channel (pipe).
    Actually the channel is two-way on the Hurd.
@@ -46,5 +47,5 @@ __pipe (int fds[2])
 
   return result;
 }
-
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/mach/hurd/write.c.jj	2002-04-30 12:55:02.000000000 +0200
+++ libc/sysdeps/mach/hurd/write.c	2002-08-02 16:10:46.000000000 +0200
@@ -20,9 +20,6 @@
 #include <unistd.h>
 #include <hurd/fd.h>
 
-#undef __libc_write
-#undef __write
-
 ssize_t
 __libc_write (int fd, const void *buf, size_t nbytes)
 {
@@ -30,7 +27,7 @@ __libc_write (int fd, const void *buf, s
 						 buf, &nbytes, -1));
   return err ? __hurd_dfail (fd, err) : nbytes;
 }
-
+libc_hidden_def (__libc_write)
 weak_alias (__libc_write, __write)
-INTDEF(__write)
+libc_hidden_weak (__write)
 weak_alias (__libc_write, write)
--- libc/sysdeps/mach/hurd/dl-sysdep.c.jj	2002-06-21 11:40:00.000000000 +0200
+++ libc/sysdeps/mach/hurd/dl-sysdep.c	2002-08-02 17:45:45.000000000 +0200
@@ -370,6 +370,7 @@ __libc_read (int fd, void *buf, size_t n
 
   return nread;
 }
+libc_hidden_weak (__libc_read)
 
 __ssize_t weak_function
 __libc_write (int fd, const void *buf, size_t nbytes)
@@ -385,6 +386,7 @@ __libc_write (int fd, const void *buf, s
 
   return nwrote;
 }
+libc_hidden_weak (__libc_write)
 
 /* This is only used for printing messages (see dl-misc.c).  */
 __ssize_t weak_function
--- libc/sysdeps/mach/hurd/poll.c.jj	2001-08-23 18:50:04.000000000 +0200
+++ libc/sysdeps/mach/hurd/poll.c	2002-08-02 17:46:19.000000000 +0200
@@ -1,5 +1,5 @@
 /* poll file descriptors.  Hurd version.
-   Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001, 2002 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
@@ -47,4 +47,5 @@ __poll (fds, nfds, timeout)
 
   return _hurd_select (nfds, fds, NULL, NULL, NULL, to, NULL);
 }
+libc_hidden_def (__poll)
 weak_alias (__poll, poll)
--- libc/sysdeps/mach/hurd/profil.c.jj	2001-08-23 18:50:04.000000000 +0200
+++ libc/sysdeps/mach/hurd/profil.c	2002-08-02 19:22:27.000000000 +0200
@@ -1,5 +1,5 @@
 /* Low-level statistical profiling support function.  Mach/Hurd version.
-   Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 2000, 2002 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
@@ -103,6 +103,7 @@ __profile_frequency (void)
 {
   return profile_tick;
 }
+libc_hidden_def (__profile_frequency)
 
 int
 __profil (u_short *sample_buffer, size_t size, size_t offset, u_int scale)
--- libc/sysdeps/mach/hurd/read.c.jj	2001-08-23 18:50:04.000000000 +0200
+++ libc/sysdeps/mach/hurd/read.c	2002-08-02 19:22:33.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,94,95,97,98,99,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1993,94,95,97,98,99,2001,02 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,6 +27,7 @@ __libc_read (int fd, void *buf, size_t n
   error_t err = HURD_FD_USE (fd, _hurd_fd_read (descriptor, buf, &nbytes, -1));
   return err ? __hurd_dfail (fd, err) : nbytes;
 }
-
+libc_hidden_def (__libc_read)
 weak_alias (__libc_read, __read)
+libc_hidden_weak (__read)
 weak_alias (__libc_read, read)
--- libc/sysdeps/mach/hurd/pwrite64.c.jj	2002-06-21 11:40:04.000000000 +0200
+++ libc/sysdeps/mach/hurd/pwrite64.c	2002-08-02 17:49:08.000000000 +0200
@@ -34,6 +34,8 @@ __libc_pwrite64 (int fd, const void *buf
 }
 
 #ifndef __libc_pwrite64
+libc_hidden_def (__libc_pwrite64)
 weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_weak (__pwrite64)
 weak_alias (__libc_pwrite64, pwrite64)
 #endif
--- libc/sysdeps/mach/hurd/sbrk.c.jj	2001-08-23 18:50:05.000000000 +0200
+++ libc/sysdeps/mach/hurd/sbrk.c	2002-08-02 19:22:43.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 94, 95, 97, 98, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,94,95,97,98,2000,02 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
@@ -38,5 +38,5 @@ __sbrk (intptr_t increment)
 
   return result;
 }
-
+libc_hidden_def (__sbrk)
 weak_alias (__sbrk, sbrk)
--- libc/sysdeps/mach/hurd/select.c.jj	2001-08-23 18:50:05.000000000 +0200
+++ libc/sysdeps/mach/hurd/select.c	2002-08-02 19:22:50.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98,2002 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
@@ -46,5 +46,5 @@ __select (nfds, readfds, writefds, excep
 
   return _hurd_select (nfds, NULL, readfds, writefds, exceptfds, to, NULL);
 }
-
+libc_hidden_def (__select)
 weak_alias (__select, select)
--- libc/sysdeps/mach/hurd/send.c.jj	2002-04-30 12:55:01.000000000 +0200
+++ libc/sysdeps/mach/hurd/send.c	2002-08-02 18:49:27.000000000 +0200
@@ -40,4 +40,5 @@ __send (fd, buf, n, flags)
 
   return err ? __hurd_dfail (fd, err) : wrote;
 }
+libc_hidden_def (__send)
 weak_alias (__send, send)
--- libc/sysdeps/mach/hurd/setpgid.c.jj	2001-08-23 18:50:05.000000000 +0200
+++ libc/sysdeps/mach/hurd/setpgid.c	2002-08-02 19:23:03.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1994,1995,1996,1997,2002 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
@@ -53,5 +53,5 @@ __setpgid (pid, pgid)
   return 0;
 
 }
-
+libc_hidden_def (__setpgid)
 weak_alias (__setpgid, setpgid)
--- libc/sysdeps/mach/hurd/sigaction.c.jj	2001-08-23 18:50:05.000000000 +0200
+++ libc/sysdeps/mach/hurd/sigaction.c	2002-08-02 19:23:16.000000000 +0200
@@ -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,2002 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
@@ -90,5 +90,5 @@ __sigaction (sig, act, oact)
 
   return 0;
 }
-
+libc_hidden_def (__sigaction)
 weak_alias (__sigaction, sigaction)
--- libc/sysdeps/mach/hurd/sigsuspend.c.jj	2001-08-23 18:50:05.000000000 +0200
+++ libc/sysdeps/mach/hurd/sigsuspend.c	2002-08-02 19:23:22.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98,2002 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
@@ -79,4 +79,5 @@ __sigsuspend (set)
   errno = EINTR;
   return -1;
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/mach/hurd/statfs.c.jj	2002-06-21 11:40:06.000000000 +0200
+++ libc/sysdeps/mach/hurd/statfs.c	2002-08-02 18:50:51.000000000 +0200
@@ -28,5 +28,5 @@ __statfs (const char *file, struct statf
   struct statfs64 buf64;
   return __statfs64 (file, &buf64) ?: statfs64_conv (buf, &buf64);
 }
-
+libc_hidden_def (__statfs)
 weak_alias (__statfs, statfs)
--- libc/sysdeps/mach/getpagesize.c.jj	2002-04-30 12:54:49.000000000 +0200
+++ libc/sysdeps/mach/getpagesize.c	2002-08-02 15:58:51.000000000 +0200
@@ -19,14 +19,11 @@
 #include <unistd.h>
 #include <mach.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  */
 int
 __getpagesize ()
 {
   return __vm_page_size;
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/sysdeps/posix/open64.c.jj	2001-08-23 18:50:11.000000000 +0200
+++ libc/sysdeps/posix/open64.c	2002-08-02 19:23:35.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995-1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995-1997,1999,2000,2002 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
@@ -38,4 +38,5 @@ __libc_open64 (const char *file, int ofl
   return __libc_open (file, oflag | O_LARGEFILE, mode);
 }
 weak_alias (__libc_open64, BP_SYM (__open64))
+libc_hidden_weak (BP_SYM (__open64))
 weak_alias (__libc_open64, BP_SYM (open64))
--- libc/sysdeps/posix/dup2.c.jj	2002-04-30 12:55:28.000000000 +0200
+++ libc/sysdeps/posix/dup2.c	2002-08-02 16:16:50.000000000 +0200
@@ -21,9 +21,6 @@
 #include <limits.h>
 #include <unistd.h>
 
-#undef __dup2
-
-
 /* Duplicate FD to FD2, closing the old FD2 and making FD2 be
    open the same file as FD is.  Return FD2 or -1.  */
 int
@@ -58,6 +55,5 @@ __dup2 (fd, fd2)
 
   return fcntl (fd, F_DUPFD, fd2);
 }
-
-INTDEF(__dup2)
+libc_hidden_def (__dup2)
 weak_alias (__dup2, dup2)
--- libc/sysdeps/posix/getpagesize.c.jj	2002-04-30 12:55:28.000000000 +0200
+++ libc/sysdeps/posix/getpagesize.c	2002-08-02 16:18:03.000000000 +0200
@@ -19,14 +19,11 @@
 
 #include <unistd.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  */
 int
 __getpagesize (void)
 {
   return __sysconf (_SC_PAGESIZE);
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/sysdeps/posix/pwrite64.c.jj	2001-08-23 18:50:11.000000000 +0200
+++ libc/sysdeps/posix/pwrite64.c	2002-08-02 19:23:43.000000000 +0200
@@ -1,6 +1,6 @@
 /* Write block to given position in file without changing file pointer.
    POSIX version.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -55,6 +55,8 @@ __libc_pwrite64 (int fd, const void *buf
   return result;
 }
 #ifndef __libc_pwrite64
+libc_hidden_def (__libc_pwrite64)
 weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_weak (__pwrite64)
 weak_alias (__libc_pwrite64, pwrite64)
 #endif
--- libc/sysdeps/posix/sigsuspend.c.jj	2001-08-23 18:50:12.000000000 +0200
+++ libc/sysdeps/posix/sigsuspend.c	2002-08-02 19:23:49.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1997, 1998, 2002 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
@@ -49,4 +49,5 @@ __sigsuspend (set)
   __set_errno (save);
   return -1;
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/sparc/sparc64/rawmemchr.S.jj	2001-08-23 18:50:22.000000000 +0200
+++ libc/sysdeps/sparc/sparc64/rawmemchr.S	2002-08-02 17:50:37.000000000 +0200
@@ -1,6 +1,6 @@
 /* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
    For SPARC v9.
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jj@ultra.linux.cz>.
    This version is developed using the same algorithm as the fast C
@@ -175,4 +175,5 @@ ENTRY(__rawmemchr)
 	 add		%o0, -1, %o0			/* IEU0				*/
 END(__rawmemchr)
 
+libc_hidden_def (__rawmemchr)
 weak_alias (__rawmemchr, rawmemchr)
--- libc/sysdeps/sparc/sparc64/stpncpy.S.jj	2001-08-23 18:50:22.000000000 +0200
+++ libc/sysdeps/sparc/sparc64/stpncpy.S	2002-08-02 19:23:54.000000000 +0200
@@ -2,7 +2,7 @@
    SRC to DEST, returning the address of the terminating '\0' in
    DEST, if any, or else DEST + N.
    For SPARC v9.
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jj@ultra.linux.cz> and
 		  Jan Vondrak <jvon4518@ss1000.ms.mff.cuni.cz>.
@@ -421,4 +421,5 @@ ENTRY(__stpncpy)
 	 sllx		%o4, 56, %g3			/* IEU0				*/
 END(__stpncpy)
 
-weak_alias(__stpncpy, stpncpy)
+libc_hidden_def (__stpncpy)
+weak_alias (__stpncpy, stpncpy)
--- libc/sysdeps/standalone/open.c.jj	2001-08-23 18:50:27.000000000 +0200
+++ libc/sysdeps/standalone/open.c	2002-08-02 19:24:01.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
    Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
      On-Line Applications Research Corporation.
    This file is part of the GNU C Library.
@@ -82,6 +82,7 @@ __open (file, oflag)
 
   return newfd;
 }
+libc_hidden_def (__open)
 
 /* Initialization Code for Console I/O */
 
--- libc/sysdeps/standalone/close.c.jj	2001-08-23 18:50:27.000000000 +0200
+++ libc/sysdeps/standalone/close.c	2002-08-02 16:18:58.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
    Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
      On-Line Applications Research Corporation.
    This file is part of the GNU C Library.
@@ -39,6 +39,5 @@ __close (fd)
   __FD_Table[ fd ].in_use = 0;
   return 0;
 }
-
-
+libc_hidden_def (__close)
 weak_alias (__close, close)
--- libc/sysdeps/standalone/write.c.jj	2001-08-23 18:50:27.000000000 +0200
+++ libc/sysdeps/standalone/write.c	2002-08-02 16:19:36.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
    Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
      On-Line Applications Research Corporation.
    This file is part of the GNU C Library.
@@ -67,5 +67,7 @@ __libc_write (int fd, const void *buf, s
   return count;
 }
 
+libc_hidden_def (__libc_write)
 weak_alias (__libc_write, __write)
+libc_hidden_weak (__write)
 weak_alias (__libc_write, write)
--- libc/sysdeps/standalone/read.c.jj	2001-08-23 18:50:27.000000000 +0200
+++ libc/sysdeps/standalone/read.c	2002-08-02 19:24:07.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
    Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
      On-Line Applications Research Corporation.
    This file is part of the GNU C Library.
@@ -80,6 +80,7 @@ __libc_read (int fd, void *buf, size_t n
   *buffer = data;
   return 1;
 }
-
+libc_hidden_def (__libc_read)
 weak_alias (__libc_read, __read)
+libc_hidden_weak (__read)
 weak_alias (__libc_read, read)
--- libc/sysdeps/unix/grantpt.c.jj	2002-04-30 12:56:18.000000000 +0200
+++ libc/sysdeps/unix/grantpt.c	2002-08-02 16:20:33.000000000 +0200
@@ -116,7 +116,7 @@ grantpt (int fd)
   uid = __getuid ();
   if (st.st_uid != uid)
     {
-      if (INTUSE(__chown) (buf, uid, st.st_gid) < 0)
+      if (__chown (buf, uid, st.st_gid) < 0)
 	goto helper;
     }
 
@@ -132,7 +132,7 @@ grantpt (int fd)
   /* Make sure the group of the device is that special group.  */
   if (st.st_gid != gid)
     {
-      if (INTUSE(__chown) (buf, uid, gid) < 0)
+      if (__chown (buf, uid, gid) < 0)
 	goto helper;
     }
 
--- libc/sysdeps/unix/bsd/m68k/pipe.S.jj	2001-08-23 18:50:31.000000000 +0200
+++ libc/sysdeps/unix/bsd/m68k/pipe.S	2002-08-02 16:21:44.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1993,1995,1997,2002 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
@@ -29,4 +29,5 @@ SYSCALL__ (pipe, 1)
 	clrl d0
 	rts
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/bsd/osf/alpha/pipe.S.jj	2001-08-23 18:50:31.000000000 +0200
+++ libc/sysdeps/unix/bsd/osf/alpha/pipe.S	2002-08-02 16:22:22.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -29,4 +29,5 @@ SYSCALL__ (pipe, 1)
 	ret
 	.end __pipe
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/bsd/vax/pipe.S.jj	2001-08-23 18:50:34.000000000 +0200
+++ libc/sysdeps/unix/bsd/vax/pipe.S	2002-08-02 19:24:12.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1995, 1997, 2002 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,4 +25,5 @@ SYSCALL__ (pipe, 1)
 	clrl r0
 	ret
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/bsd/syscalls.list.jj	1996-02-12 09:31:55.000000000 +0100
+++ libc/sysdeps/unix/bsd/syscalls.list	2002-08-02 17:10:56.000000000 +0200
@@ -3,7 +3,7 @@
 flock		-	flock		2	__flock		flock
 getdents	-	getdirentries	4	__getdirentries	getdirentries
 getdtsz		-	getdtablesize	0	__getdtablesize	getdtablesize
-getpagesize	-	getpagesize	0	__getpagesize	getpagesize
+getpagesize	-	getpagesize	0	__getpagesize	getpagesize __GI___getpagesize
 killpg		-	killpg		2	killpg
 sigblock	-	sigblock	1	__sigblock	sigblock
 sigpause	-	sigpause	1	__sigpause	sigpause
--- libc/sysdeps/unix/bsd/poll.c.jj	2001-08-23 18:50:29.000000000 +0200
+++ libc/sysdeps/unix/bsd/poll.c	2002-08-02 17:54:45.000000000 +0200
@@ -1,4 +1,5 @@
-/* Copyright (C) 1994,1996,1997,1998,1999,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1994,1996,1997,1998,1999,2001,2002
+   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
@@ -193,5 +194,6 @@ __poll (fds, nfds, timeout)
   return ready;
 }
 #ifndef __poll
+libc_hidden_def (__poll)
 weak_alias (__poll, poll)
 #endif
--- libc/sysdeps/unix/bsd/sigaction.c.jj	2001-08-23 18:50:29.000000000 +0200
+++ libc/sysdeps/unix/bsd/sigaction.c	2002-08-02 19:24:20.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 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
@@ -59,5 +59,5 @@ __sigaction (sig, act, oact)
 
   return 0;
 }
-
+libc_hidden_def (__sigaction)
 weak_alias (__sigaction, sigaction)
--- libc/sysdeps/unix/bsd/sigsuspend.c.jj	2001-08-23 18:50:29.000000000 +0200
+++ libc/sysdeps/unix/bsd/sigsuspend.c	2002-08-02 19:24:25.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1997, 1998, 2002 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,4 +44,5 @@ __sigsuspend (set)
 
   return __sigpause (mask, 0);
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/common/syscalls.list.jj	2002-04-30 12:56:34.000000000 +0200
+++ libc/sysdeps/unix/common/syscalls.list	2002-08-02 18:58:04.000000000 +0200
@@ -4,14 +4,14 @@ adjtime		-	adjtime		i:pp	__adjtime	adjti
 fchmod		-	fchmod		i:ii	__fchmod	fchmod
 fchown		-	fchown		i:iii	__fchown	fchown
 ftruncate	-	ftruncate	i:ii	__ftruncate	ftruncate
-getpgid		-	getpgrp		i:i	__getpgid	getpgid
+getpgid		-	getpgrp		i:i	__getpgid	getpgid __GI___getpgid
 getrusage	-	getrusage	i:ip	__getrusage	getrusage
 gettimeofday	-	gettimeofday	i:PP	__gettimeofday	gettimeofday __gettimeofday_internal
 settimeofday	-	settimeofday	i:PP	__settimeofday	settimeofday
-setpgid		-	setpgrp		i:ii	__setpgid	setpgid
+setpgid		-	setpgrp		i:ii	__setpgid	setpgid __GI___setpgid
 setregid	-	setregid	i:ii	__setregid	setregid
 setreuid	-	setreuid	i:ii	__setreuid	setreuid
-sigaction	-	sigaction	i:ipp	__sigaction	sigaction
+sigaction	-	sigaction	i:ipp	__sigaction	sigaction __GI___sigaction
 sys_lstat	lxstat	lstat		i:sp	__syscall_lstat
 truncate	-	truncate	i:si	truncate
 vhangup		-	vhangup		i:i	vhangup
--- libc/sysdeps/unix/i386/pipe.S.jj	2001-08-23 18:50:34.000000000 +0200
+++ libc/sysdeps/unix/i386/pipe.S	2002-08-02 19:24:42.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1993,1995,1997,2002 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,4 +25,5 @@ SYSCALL__ (pipe, 1)
 	xorl %eax, %eax
 	ret
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/inet/syscalls.list.jj	2002-06-05 10:27:52.000000000 +0200
+++ libc/sysdeps/unix/inet/syscalls.list	2002-08-02 18:58:31.000000000 +0200
@@ -12,7 +12,7 @@ listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	recv
 recvfrom	-	recvfrom	i:ibniBN	__libc_recvfrom __recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		i:ibni	__libc_send	__send send
+send		-	send		i:ibni	__libc_send	__send send __GI___send 
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		i:ibnibn	__libc_sendto	__sendto sendto
 sethostid	-	sethostid	i:i	sethostid
--- libc/sysdeps/unix/mips/pipe.S.jj	2001-08-23 18:50:34.000000000 +0200
+++ libc/sysdeps/unix/mips/pipe.S	2002-08-02 16:26:47.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1997, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -29,4 +29,5 @@ SYSCALL__ (pipe, 1)
 	j ra
 	.end __pipe
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/sparc/pipe.S.jj	2001-08-23 18:50:34.000000000 +0200
+++ libc/sysdeps/unix/sparc/pipe.S	2002-08-02 19:24:50.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1995, 1997, 2002 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,4 +26,5 @@ PSEUDO (__Spipe, pipe, 1)
 	retl			/* return 0; */
 	clr %o0
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/sysv/irix4/syscalls.list.jj	1996-03-18 20:38:16.000000000 +0100
+++ libc/sysdeps/unix/sysv/irix4/syscalls.list	2002-08-02 18:59:18.000000000 +0200
@@ -1,8 +1,8 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-getpgid		-	bsdgetpgrp	1	__getpgid	getpgid
+getpgid		-	bsdgetpgrp	1	__getpgid	getpgid __GI___getpgid
 msync		-	msync		3	msync
-setpgid		-	bsdsetpgrp	2	__setpgid	setpgid
+setpgid		-	bsdsetpgrp	2	__setpgid	setpgid __GI___setpgid
 signal		-	signal		3	__raw_signal
 sysmp		-	sysmp		4	__sysmp
 syssgi		-	syssgi		2	__syssgi
--- libc/sysdeps/unix/sysv/aix/fcntl.c.jj	2002-04-30 12:56:36.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/fcntl.c	2002-08-02 14:24:32.000000000 +0200
@@ -19,9 +19,6 @@
 #include <fcntl.h>
 #include <stdarg.h>
 
-#undef __libc_fcntl
-#undef __fcntl
-
 extern int kfcntl (int fdes, int cmd, unsigned long int arg);
 
 int
@@ -40,5 +37,7 @@ __fcntl (int fdes, int cmd, ...)
 
   return res;
 }
+libc_hidden_def (__fcntl)
 strong_alias (__fcntl, fcntl)
 strong_alias (__fcntl, __libc_fcntl)
+libc_hidden_def (__libc_fcntl)
--- libc/sysdeps/unix/sysv/aix/open.c.jj	2002-04-30 12:56:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/open.c	2002-08-02 14:24:32.000000000 +0200
@@ -20,9 +20,6 @@
 #include <stdarg.h>
 #include <unistd.h>
 
-#undef __libc_open
-#undef __open
-
 int
 __open (const char *file, int oflag, ...)
 {
@@ -38,5 +35,6 @@ __open (const char *file, int oflag, ...
 
   return open (file, oflag, mode);
 }
+libc_hidden_def (__open)
 strong_alias (__open, __libc_open)
-INTDEF(__open)
+libc_hidden_def (__libc_open)
--- libc/sysdeps/unix/sysv/aix/chown.c.jj	2002-04-30 12:56:36.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/chown.c	2002-08-02 16:34:05.000000000 +0200
@@ -18,11 +18,9 @@
 
 #include <unistd.h>
 
-#undef __chown
-
 int
 __chown (const char *file, uid_t owner, gid_t group)
 {
   return chown (file, owner, group);
 }
-INTDEF(__chown)
+libc_hidden_def (__chown)
--- libc/sysdeps/unix/sysv/aix/close.c.jj	2001-08-23 18:50:34.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/close.c	2002-08-02 16:34:28.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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,3 +23,4 @@ __close (int fd)
 {
   return close (fd);
 }
+libc_hidden_def (__close)
--- libc/sysdeps/unix/sysv/aix/getpgid.c.jj	2002-04-30 12:56:36.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/getpgid.c	2002-08-02 16:34:54.000000000 +0200
@@ -18,8 +18,6 @@
 
 #include <unistd.h>
 
-#undef __getpgid
-
 extern int kgetpgidx (pid_t pid);
 
 int
@@ -27,5 +25,5 @@ __getgpid (pid_t pid)
 {
   return kgetpgidx (pid);
 }
-INTDEF(__getgpid)
+libc_hidden_def (__getgpid)
 strong_alias (__getpgid, getpgid)
--- libc/sysdeps/unix/sysv/aix/getpid.c.jj	2000-03-21 02:15:50.000000000 +0100
+++ libc/sysdeps/unix/sysv/aix/getpid.c	2002-08-02 16:35:29.000000000 +0200
@@ -1,6 +1,9 @@
 /* This is a system call.  We only have to provide the wrapper.  */
+#include <unistd.h>
+
 int
 __getpid (void)
 {
   return getpid ();
 }
+libc_hidden_def (__getpid)
--- libc/sysdeps/unix/sysv/aix/pipe.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/pipe.c	2002-08-02 16:36:07.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,3 +24,4 @@ __pipe (pipedes)
 {
   return pipe (pipedes);
 }
+libc_hidden_def (__pipe)
--- libc/sysdeps/unix/sysv/aix/write.c.jj	2002-04-30 12:56:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/write.c	2002-08-02 16:36:45.000000000 +0200
@@ -21,9 +21,6 @@
 
 #include "kernel_proto.h"
 
-#undef __libc_write
-#undef __write
-
 ssize_t
 __write (fd, ptr, n)
      int fd;
@@ -32,7 +29,8 @@ __write (fd, ptr, n)
 {
   return kwrite (fd, ptr, n);
 }
-INTDEF(__write)
+libc_hidden_def (__write)
 /* AIX has no weak aliases (yet) but let's hope for better times.  */
 weak_alias (__write, write)
 strong_alias (__write, __libc_write)
+libc_hidden_def (__libc_write)
--- libc/sysdeps/unix/sysv/aix/read.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/read.c	2002-08-02 17:55:27.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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,5 +25,7 @@ __libc_read (int fd, void *buf, size_t l
 {
   return kread (fd, buf, len);
 }
+libc_hidden_def (__libc_read)
 strong_alias (__libc_read, __read)
+libc_hidden_def (__read)
 strong_alias (__libc_read, read)
--- libc/sysdeps/unix/sysv/aix/poll.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/poll.c	2002-08-02 17:55:57.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 2002 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,3 +26,4 @@ __poll (fds, nfds, timeout)
 {
   return poll (fds, nfds, timeout);
 }
+libc_hidden_def (__poll)
--- libc/sysdeps/unix/sysv/aix/sbrk.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/sbrk.c	2002-08-02 19:24:56.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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,3 +23,4 @@ __sbrk (intptr_t delta)
 {
   return sbrk (delta);
 }
+libc_hidden_def (__sbrk)
--- libc/sysdeps/unix/sysv/aix/sigaction.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/sigaction.c	2002-08-02 19:25:08.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2000,2002 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,4 +32,5 @@ __sigaction (sig, act, oact)
 {
   return _sigaction (sig, act, oact);
 }
+libc_hidden_def (__sigaction)
 strong_alias (__sigaction, sigaction)
--- libc/sysdeps/unix/sysv/aix/sigsuspend.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/sigsuspend.c	2002-08-02 19:25:14.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995-1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995-1998, 2000, 2002 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
@@ -29,4 +29,5 @@ __sigsuspend (set)
 {
   return _sigsuspend (set);
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/sysv/aix/statfs.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/statfs.c	2002-08-02 19:25:18.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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,3 +25,4 @@ __statfs (const char *file, struct statf
 {
   return statfs (file, buf);
 }
+libc_hidden_def (__statfs)
--- libc/sysdeps/unix/sysv/aix/select.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/select.c	2002-08-02 19:25:23.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,3 +28,4 @@ __select (nfds, readfds, writefds, excep
 {
   return select (nfds, readfds, writefds, exceptfds, timeout);
 }
+libc_hidden_def (__select)
--- libc/sysdeps/unix/sysv/aix/setpgid.c.jj	2001-08-23 18:50:37.000000000 +0200
+++ libc/sysdeps/unix/sysv/aix/setpgid.c	2002-08-02 19:25:28.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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,3 +25,4 @@ __setpgid (pid, pgid)
 {
   return setpgid (pid, pgid);
 }
+libc_hidden_def (__setpgid)
--- libc/sysdeps/unix/sysv/linux/alpha/pipe.S.jj	2001-08-23 18:50:48.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/alpha/pipe.S	2002-08-02 19:25:33.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger (davidm@cs.arizona.edu).
 
@@ -28,4 +28,5 @@ PSEUDO (__pipe, pipe, 0)
 	ret
 PSEUDO_END(__pipe)
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/sysv/linux/alpha/syscalls.list.jj	2002-06-21 11:42:09.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/alpha/syscalls.list	2002-08-02 19:04:46.000000000 +0200
@@ -21,9 +21,9 @@ getpriority	-	getpriority	2	__getpriorit
 mmap		-	mmap		6	__mmap		mmap __mmap64 mmap64
 llseek		EXTRA	lseek		3	__libc_lseek64	__llseek llseek __lseek64 lseek64
 pread		-	pread		4	__libc_pread	__libc_pread64 __pread pread __pread64 pread64
-pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 __GI___pwrite64
 fstatfs		-	fstatfs		2	__fstatfs	fstatfs __fstatfs64 fstatfs64
-statfs		-	statfs		2	__statfs	statfs statfs64
+statfs		-	statfs		2	__statfs	statfs statfs64 __GI___statfs
 getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
 setrlimit	-	setrlimit	2	__setrlimit	setrlimit64 setrlimit
 ftruncate	-	ftruncate	2	__ftruncate	ftruncate __ftruncate64 ftruncate64
@@ -47,7 +47,7 @@ recv		-	recv		4	__libc_recv	__recv recv
 recvfrom	-	recvfrom	6	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		3	__libc_recvmsg	__recvmsg recvmsg
 ptrace		-	ptrace		4	__ptrace	ptrace
-send		-	send		4	__libc_send	__send send
+send		-	send		4	__libc_send	__send send __GI___send
 sendmsg		-	sendmsg		3	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		6	__libc_sendto	__sendto sendto
 setsockopt	-	setsockopt	5	__setsockopt	setsockopt
--- libc/sysdeps/unix/sysv/linux/alpha/select.S.jj	2001-08-23 18:50:48.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/alpha/select.S	2002-08-02 19:25:38.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2002 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
@@ -124,6 +124,8 @@ default_symbol_version (__select_tv64, _
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__select_tv64, __select_tv64p)
 default_symbol_version (__select_tv64p, select, GLIBC_2.1)
+libc_hidden_ver (__select_tv64, __select)
 #else
 weak_alias (__select, select)
+libc_hidden_def (__select)
 #endif
--- libc/sysdeps/unix/sysv/linux/alpha/sigsuspend.S.jj	2001-08-23 18:50:48.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/alpha/sigsuspend.S	2002-08-02 19:25:45.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger <davidm@cs.arizona.edu>, 1995.
 
@@ -51,4 +51,5 @@ error:
 
 	END(__sigsuspend)
 
+libc_hidden_def (__sigsuspend)
 weak_alias(__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/sysv/linux/ia64/getpagesize.c.jj	2002-04-25 22:02:25.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/getpagesize.c	2002-08-02 16:38:01.000000000 +0200
@@ -24,8 +24,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  The return value will depend on how
    the kernel is configured.  A program must use this call to
    determine the page size to ensure proper alignment for calls such
@@ -37,6 +35,5 @@ __getpagesize ()
   assert (GL(dl_pagesize) != 0);
   return GL(dl_pagesize);
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/sysdeps/unix/sysv/linux/ia64/pipe.S.jj	2002-04-07 17:46:24.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/pipe.S	2002-08-02 16:38:18.000000000 +0200
@@ -35,4 +35,5 @@ ENTRY(__pipe)
        br.cond.spnt.few __syscall_error
 PSEUDO_END(__pipe)
 
+libc_hidden_def (__pipe)
 weak_alias (__pipe, pipe)
--- libc/sysdeps/unix/sysv/linux/ia64/syscalls.list.jj	2002-06-21 11:42:13.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/syscalls.list	2002-08-02 19:06:28.000000000 +0200
@@ -5,9 +5,9 @@ umount2		-	umount		2	__umount2	umount2
 # Whee! 64-bit systems naturally implement llseek.
 llseek		EXTRA	lseek		3	__libc_lseek64	__lseek llseek __lseek64 lseek64
 pread		-	pread		4	__libc_pread	__libc_pread64 __pread pread __pread64 pread64
-pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 __GI___pwrite64
 fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs fstatfs64 __fstatfs64
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
+statfs		-	statfs		i:sp	__statfs	statfs statfs64 __GI___statfs
 mmap		-	mmap		b:aniiii __mmap		mmap __mmap64 mmap64
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
 getpriority	-	getpriority	i:ii	__getpriority	getpriority
@@ -42,7 +42,7 @@ listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	__recv recv
 recvfrom	-	recvfrom	i:ibniBN	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		i:ibni	__libc_send	__send send
+send		-	send		i:ibni	__libc_send	__send send __GI___send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		i:ibnibn	__libc_sendto	__sendto sendto
 setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
--- libc/sysdeps/unix/sysv/linux/ia64/sigaction.c.jj	2001-08-23 18:51:06.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/sigaction.c	2002-08-02 19:25:51.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Linux/IA64 specific sigaction
    Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
@@ -51,4 +51,5 @@ __libc_sigaction (sig, act, oact)
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_def (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
--- libc/sysdeps/unix/sysv/linux/ia64/sigsuspend.c.jj	2001-08-23 18:51:06.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/ia64/sigsuspend.c	2002-08-02 19:26:05.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2002 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
@@ -37,4 +37,5 @@ __sigsuspend (set)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/sysv/linux/sh/pipe.S.jj	2001-08-23 18:51:29.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sh/pipe.S	2002-08-02 19:26:09.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 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
@@ -60,4 +60,5 @@ ENTRY (__libc_pipe)
 PSEUDO_END (__libc_pipe)
 
 weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
 weak_alias (__libc_pipe, pipe)
--- libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c.jj	2002-04-25 22:02:28.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c	2002-08-02 16:57:33.000000000 +0200
@@ -109,12 +109,12 @@ strong_alias (__chown_is_lchown, _chown_
 compat_symbol (libc, __chown_is_lchown, __chown, GLIBC_2_0);
 compat_symbol (libc, _chown_is_lchown, chown, GLIBC_2_0);
 
-INTDEF2(__real_chown, __chown)
 strong_alias (__real_chown, _real_chown)
 versioned_symbol (libc, __real_chown, __chown, GLIBC_2_1);
 versioned_symbol (libc, _real_chown, chown, GLIBC_2_1);
+libc_hidden_ver (__real_chown, __chown)
 #else
-INTDEF2(__real_chown, __chown)
 strong_alias (__real_chown, __chown)
+libc_hidden_def (__chown)
 weak_alias (__real_chown, chown)
 #endif
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list.jj	2002-06-05 10:27:56.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list	2002-08-02 19:07:39.000000000 +0200
@@ -2,7 +2,7 @@
 
 llseek		EXTRA	lseek		3	__libc_lseek64	__lseek llseek __lseek64 lseek64
 pread		-	pread		4	__libc_pread	__libc_pread64 __pread pread __pread64 pread64
-pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 __GI___pwrite64
 fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs fstatfs64 __fstatfs64
 statfs		-	statfs		i:sp	__statfs	statfs statfs64
 getpeername	-	getpeername	i:ipp	__getpeername	getpeername
@@ -35,7 +35,7 @@ listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	__recv recv
 recvfrom	-	recvfrom	i:ibniBN	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		i:ibni	__libc_send	__send send
+send		-	send		i:ibni	__libc_send	__send send __GI___send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		i:ibnibn	__libc_sendto	__sendto sendto
 setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c.jj	2001-08-23 18:51:29.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c	2002-08-02 19:26:14.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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
@@ -47,4 +47,5 @@ __libc_sigaction (sig, act, oact)
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
--- libc/sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c.jj	2001-08-23 18:51:29.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c	2002-08-02 19:26:18.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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,4 +36,5 @@ __sigsuspend (set)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/sysv/linux/hppa/syscalls.list.jj	2002-06-05 10:27:54.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/hppa/syscalls.list	2002-08-02 19:08:10.000000000 +0200
@@ -24,7 +24,7 @@ listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	__recv recv
 recvfrom	-	recvfrom	i:ibniBN	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		i:ibni	__libc_send	__send send
+send		-	send		i:ibni	__libc_send	__send send __GI___send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		i:ibnibn	__libc_sendto	__sendto sendto
 setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
--- libc/sysdeps/unix/sysv/linux/arm/sigaction.c.jj	2001-08-23 18:50:49.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/arm/sigaction.c	2002-08-02 19:26:24.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002 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
@@ -150,4 +150,5 @@ __libc_sigaction (sig, act, oact)
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
--- libc/sysdeps/unix/sysv/linux/i386/fcntl.c.jj	2002-04-25 22:02:23.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/i386/fcntl.c	2002-08-02 14:24:32.000000000 +0200
@@ -25,9 +25,6 @@
 #include <sys/syscall.h>
 #include "../kernel-features.h"
 
-#undef __libc_fcntl
-#undef __fcntl
-
 extern int __syscall_fcntl (int __fd, int __cmd, ...);
 #ifdef __NR_fcntl64
 extern int __syscall_fcntl64 (int __fd, int __cmd, ...);
@@ -133,7 +130,8 @@ __libc_fcntl (int fd, int cmd, ...)
   return -1;
 #endif  /* __ASSUME_FCNTL64  */
 }
-INTDEF2(__libc_fcntl, __fcntl);
+libc_hidden_def (__libc_fcntl)
 
 weak_alias (__libc_fcntl, __fcntl)
+libc_hidden_weak (__fcntl)
 weak_alias (__libc_fcntl, fcntl)
--- libc/sysdeps/unix/sysv/linux/i386/chown.c.jj	2002-04-25 22:02:22.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/i386/chown.c	2002-08-02 17:00:51.000000000 +0200
@@ -154,14 +154,14 @@ compat_symbol (libc, _chown_is_lchown, c
 #endif
 
 #ifdef __NR_lchown
-INTDEF2(__real_chown, __chown)
 strong_alias (__real_chown, _real_chown)
 versioned_symbol (libc, __real_chown, __chown, GLIBC_2_1);
 versioned_symbol (libc, _real_chown, chown, GLIBC_2_1);
+libc_hidden_ver (__real_chown, __chown)
 #else
-INTDEF2(__chown_is_lchown, __chown)
 strong_alias (__chown_is_lchown, __chown_is_lchown21)
 strong_alias (__chown_is_lchown, _chown_is_lchown21)
 versioned_symbol (libc, __chown_is_lchown21, __chown, GLIBC_2_1);
 versioned_symbol (libc, _chown_is_lchown21, chown, GLIBC_2_1);
+libc_hidden_ver (__chown_is_lchown, __chown)
 #endif
--- libc/sysdeps/unix/sysv/linux/i386/sigaction.c.jj	2001-08-23 18:56:50.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/i386/sigaction.c	2002-08-02 19:26:40.000000000 +0200
@@ -1,5 +1,5 @@
 /* POSIX.1 `sigaction' call for Linux/i386.
-   Copyright (C) 1991, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1991,95,96,97,98,99,2000,02 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
@@ -149,6 +149,7 @@ __libc_sigaction (int sig, const struct 
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
 
 /* NOTE: Please think twice before making any changes to the bits of
--- libc/sysdeps/unix/sysv/linux/m68k/chown.c.jj	2002-04-25 22:02:25.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/m68k/chown.c	2002-08-02 17:01:27.000000000 +0200
@@ -71,5 +71,5 @@ __chown (const char *file, uid_t owner, 
   return INLINE_SYSCALL (chown, 3, CHECK_STRING (file), owner, group);
 #endif
 }
-INTDEF(__chown)
+libc_hidden_def (__chown)
 weak_alias (__chown, chown)
--- libc/sysdeps/unix/sysv/linux/m68k/getpagesize.c.jj	2002-04-25 22:02:25.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/m68k/getpagesize.c	2002-08-02 17:05:08.000000000 +0200
@@ -25,8 +25,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  */
 int
 __getpagesize ()
@@ -47,6 +45,5 @@ __getpagesize ()
 
   return 4096;
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/sysdeps/unix/sysv/linux/mips/pwrite64.c.jj	2001-08-23 18:51:19.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/mips/pwrite64.c	2002-08-02 17:58:09.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>, 1998.
 
@@ -60,6 +60,7 @@ __libc_pwrite64 (fd, buf, count, offset)
 }
 
 weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_weak (__pwrite64)
 weak_alias (__libc_pwrite64, pwrite64)
 
 # define __libc_pwrite64(fd, buf, count, offset) \
--- libc/sysdeps/unix/sysv/linux/mips/syscalls.list.jj	2002-04-25 22:02:28.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/mips/syscalls.list	2002-08-02 19:11:20.000000000 +0200
@@ -24,7 +24,7 @@ listen		-	listen		i:ii	__listen	listen
 recv		-	recv		i:ibni	__libc_recv	__recv recv
 recvfrom	-	recvfrom	i:ibniBN __libc_recvfrom __recvfrom recvfrom
 recvmsg		-	recvmsg		i:ipi	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		i:ibni	__libc_send	__send send
+send		-	send		i:ibni	__libc_send	__send send __GI___send
 sendmsg		-	sendmsg		i:ipi	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		i:ibnibn __libc_sendto	__sendto sendto
 setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
--- libc/sysdeps/unix/sysv/linux/mips/sigaction.c.jj	2001-08-23 18:51:19.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/mips/sigaction.c	2002-08-02 19:26:48.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002 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
@@ -136,4 +136,5 @@ __libc_sigaction (sig, act, oact)
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
--- libc/sysdeps/unix/sysv/linux/powerpc/chown.c.jj	2002-04-25 22:02:28.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/powerpc/chown.c	2002-08-02 17:05:37.000000000 +0200
@@ -123,7 +123,7 @@ __chown (const char *file, uid_t owner, 
    errno = ELOOP;
    return -1;
 }
-INTDEF(__chown)
+libc_hidden_def (__chown)
 
 #include <shlib-compat.h>
 versioned_symbol (libc, __chown, chown, GLIBC_2_1);
--- libc/sysdeps/unix/sysv/linux/powerpc/pwrite64.c.jj	2001-08-23 18:51:19.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/powerpc/pwrite64.c	2002-08-02 19:26:54.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -51,6 +51,7 @@ __libc_pwrite64 (fd, buf, count, offset)
 }
 
 weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_def (__pwrite64)
 weak_alias (__libc_pwrite64, pwrite64)
 
 #define __libc_pwrite64(fd, buf, count, offset) \
--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c.jj	2002-04-25 22:02:29.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c	2002-08-02 17:05:57.000000000 +0200
@@ -20,8 +20,6 @@
 #include <sys/param.h>
 #include <ldsodefs.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  This value will either be 4k or 8k depending
    on whether or not we are running on Sparc v9 machine.  */
 
@@ -38,6 +36,5 @@ __getpagesize ()
     GL(dl_pagesize) = __syscall_getpagesize();
   return GL(dl_pagesize);
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S.jj	2001-08-23 18:51:33.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S	2002-08-02 17:06:56.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
 
@@ -34,4 +34,5 @@ ENTRY (__libc_pipe)
 
 PSEUDO_END (__libc_pipe)
 weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
 weak_alias (__libc_pipe, pipe)
--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c.jj	2001-08-23 18:51:33.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c	2002-08-02 19:27:02.000000000 +0200
@@ -1,5 +1,5 @@
 /* POSIX.1 sigaction call for Linux/SPARC.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx), 1997.
 
@@ -136,6 +136,7 @@ __libc_sigaction (int sig, __const struc
 }
 
 weak_alias (__libc_sigaction, __sigaction);
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction);
 
 static void
--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S.jj	2001-08-23 18:51:33.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S	2002-08-02 17:06:47.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
 
@@ -34,4 +34,5 @@ ENTRY (__libc_pipe)
 PSEUDO_END (__libc_pipe)
 
 weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
 weak_alias (__libc_pipe, pipe)
--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list.jj	2002-06-21 11:42:23.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list	2002-08-02 19:13:37.000000000 +0200
@@ -3,9 +3,9 @@
 # Whee! 64-bit systems naturally implement llseek.
 llseek		EXTRA	lseek		3	__llseek	llseek	__libc_lseek64 __lseek64 lseek64
 pread		-	pread		4	__libc_pread	__libc_pread64 __pread pread __pread64 pread64
-pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pwrite		-	pwrite		4	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 __GI___pwrite64
 fstatfs		-	fstatfs		2	__fstatfs	fstatfs __fstatfs64 fstatfs64
-statfs		-	statfs		2	__statfs	statfs statfs64
+statfs		-	statfs		2	__statfs	statfs statfs64 __GI___statfs
 getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
 setrlimit	-	setrlimit	2	__setrlimit	setrlimit64 setrlimit
 ftruncate	-	ftruncate	2	__ftruncate	ftruncate __ftruncate64 ftruncate64
@@ -15,7 +15,7 @@ readahead	EXTRA	readahead	3	__readahead	
 sendfile	-	sendfile	i:iipi	sendfile	sendfile64
 
 # Override select.S in parent directory:
-select		-	select		5	__select	select
+select		-	select		5	__select	select __GI___select
 accept		-	accept		3	__libc_accept	__accept accept
 bind		-	bind		3	__bind		bind
 connect		-	connect		3	__libc_connect	__connect_internal __connect connect
@@ -26,7 +26,7 @@ listen		-	listen		2	__listen	listen
 recv		-	recv		4	__libc_recv	__recv recv
 recvfrom	-	recvfrom	6	__libc_recvfrom	__recvfrom recvfrom
 recvmsg		-	recvmsg		3	__libc_recvmsg	__recvmsg recvmsg
-send		-	send		4	__libc_send	__send send
+send		-	send		4	__libc_send	__send send __GI___send
 sendmsg		-	sendmsg		3	__libc_sendmsg	__sendmsg sendmsg
 sendto		-	sendto		6	__libc_sendto	__sendto sendto
 setsockopt	-	setsockopt	5	__setsockopt	setsockopt
--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c.jj	2001-08-23 18:51:33.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c	2002-08-02 19:27:09.000000000 +0200
@@ -1,5 +1,5 @@
 /* POSIX.1 sigaction call for Linux/SPARC64.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx) and
 		  Jakub Jelinek (jj@ultra.linux.cz).
@@ -65,6 +65,7 @@ __libc_sigaction (int sig, __const struc
 }
 
 weak_alias (__libc_sigaction, __sigaction);
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction);
 
 static void
--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c.jj	2001-08-23 18:51:33.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c	2002-08-02 19:27:23.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2002 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,4 +36,5 @@ __sigsuspend (set)
      real size of the user-level sigset_t.  */
   return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list.jj	2002-06-21 11:42:27.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list	2002-08-02 19:14:06.000000000 +0200
@@ -5,9 +5,9 @@ mmap		-	mmap		b:aniiii __mmap		mmap __mm
 modify_ldt	EXTRA	modify_ldt	i:ipi	__modify_ldt	modify_ldt
 llseek		EXTRA	lseek		i:iii	__libc_lseek64	__llseek llseek __lseek64 lseek64
 pread		-	pread		i:ibni	__libc_pread	__libc_pread64 __pread pread __pread64 pread64
-pwrite		-	pwrite		i:ibni	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pwrite		-	pwrite		i:ibni	__libc_pwrite	__libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64 __GI___pwrite64
 fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs __fstatfs64 fstatfs64
-statfs		-	statfs		i:sp	__statfs	statfs statfs64
+statfs		-	statfs		i:sp	__statfs	statfs statfs64 __GI___statfs
 getresgid	-	getresgid	i:ppp	getresgid
 getresuid	-	getresuid	i:ppp	getresuid
 getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit getrlimit64
--- libc/sysdeps/unix/sysv/linux/x86_64/send.c.jj	2001-09-19 12:31:31.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/x86_64/send.c	2002-08-02 19:27:28.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,4 +28,5 @@ __libc_send (int fd, const void *buf, si
 }
 
 weak_alias (__libc_send, __send)
+libc_hidden_weak (__send)
 weak_alias (__send, send)
--- libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c.jj	2001-09-19 12:31:31.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c	2002-08-02 19:27:32.000000000 +0200
@@ -1,5 +1,5 @@
 /* POSIX.1 `sigaction' call for Linux/x86-64.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 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
@@ -75,6 +75,7 @@ __libc_sigaction (int sig, const struct 
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
 
 /* NOTE: Please think twice before making any changes to the bits of
--- libc/sysdeps/unix/sysv/linux/syscalls.list.jj	2002-07-25 14:59:41.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/syscalls.list	2002-08-02 19:10:06.000000000 +0200
@@ -12,7 +12,7 @@ fork		-	fork		i:	__libc_fork	__fork fork
 get_kernel_syms	EXTRA	get_kernel_syms	i:p	get_kernel_syms
 getegid		-	getegid		i:	__getegid	getegid
 geteuid		-	geteuid		i:	__geteuid	geteuid
-getpgid		-	getpgid		i:i	__getpgid	getpgid __getpgid_internal
+getpgid		-	getpgid		i:i	__getpgid	getpgid __GI___getpgid
 getpgrp		-	getpgrp		i:	getpgrp
 getppid		-	getppid		i:	__getppid	getppid
 getsid		-	getsid		i:i	getsid
@@ -34,7 +34,7 @@ nanosleep	-	nanosleep	i:pp	__libc_nanosl
 nfsservctl	EXTRA	nfsservctl	i:ipp	nfsservctl
 pause		-	pause		i:	__libc_pause	pause
 personality	init-first personality	i:i	__personality	personality
-pipe		-	pipe		i:f	__pipe		pipe
+pipe		-	pipe		i:f	__pipe		pipe __GI___pipe
 pivot_root	EXTRA	pivot_root	i:ss	pivot_root
 prctl		EXTRA	prctl		i:iiiii	prctl
 query_module	EXTRA	query_module	i:sipip	query_module
@@ -45,14 +45,14 @@ sched_primax	-	sched_get_priority_max	i:
 sched_primin	-	sched_get_priority_min	i:i	__sched_get_priority_min	sched_get_priority_min
 sched_rr_gi	-	sched_rr_get_interval	i:ip	__sched_rr_get_interval	sched_rr_get_interval
 sched_setp	-	sched_setparam	i:ip	__sched_setparam	sched_setparam
-sched_sets	-	sched_setscheduler	i:iip	__sched_setscheduler	sched_setscheduler
+sched_sets	-	sched_setscheduler	i:iip	__sched_setscheduler	sched_setscheduler __GI___sched_setscheduler
 sched_yield	-	sched_yield	i:	__sched_yield	sched_yield
-select		-	_newselect	i:iPPPP	__select	select
+select		-	_newselect	i:iPPPP	__select	select __GI___select
 sendfile	-	sendfile	i:iipi	sendfile
 sendfile64	-	sendfile64	i:iipi	sendfile64
 setfsgid	EXTRA	setfsgid	i:i	setfsgid
 setfsuid	EXTRA	setfsuid	i:i	setfsuid
-setpgid		-	setpgid		i:ii	__setpgid	setpgid
+setpgid		-	setpgid		i:ii	__setpgid	setpgid __GI___setpgid
 setresuid	EXTRA	setresuid	i:iii	__setresuid	setresuid
 setresgid	EXTRA	setresgid	i:iii	__setresgid	setresgid
 sigaltstack	-	sigaltstack	i:PP	__sigaltstack	sigaltstack
@@ -62,5 +62,5 @@ swapoff		-	swapoff		i:s	__swapoff	swapof
 uselib		EXTRA	uselib		i:s	uselib
 wait4		-	wait4		i:iWiP	__wait4		wait4
 
-chown		-	chown		i:sii	__chown_internal __chown chown
-fcntl		-	fcntl		i:iiF	__libc_fcntl	__fcntl_internal __fcntl fcntl
+chown		-	chown		i:sii	__GI___chown	__chown chown
+fcntl		-	fcntl		i:iiF	__libc_fcntl	__GI___libc_fcntl __fcntl __GI___fcntl fcntl
--- libc/sysdeps/unix/sysv/linux/getpagesize.c.jj	2002-04-25 22:02:20.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/getpagesize.c	2002-08-02 17:07:27.000000000 +0200
@@ -21,8 +21,6 @@
 
 #include <ldsodefs.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  */
 int
 __getpagesize ()
@@ -43,6 +41,5 @@ __getpagesize ()
 #endif	/* NBPG.  */
 #endif	/* EXEC_PAGESIZE.  */
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/sysdeps/unix/sysv/linux/poll.c.jj	2001-08-23 18:50:44.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/poll.c	2002-08-02 19:27:47.000000000 +0200
@@ -1,5 +1,5 @@
 /* Poll system call, with emulation if it is not available.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2001,2002 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
@@ -63,6 +63,7 @@ __poll (fds, nfds, timeout)
   return INLINE_SYSCALL (poll, 3, CHECK_N (fds, nfds), nfds, timeout);
 # endif
 }
+libc_hidden_def (__poll)
 weak_alias (__poll, poll)
 
 /* Get the emulation code.  */
--- libc/sysdeps/unix/sysv/linux/pwrite64.c.jj	2001-08-23 18:50:44.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/pwrite64.c	2002-08-02 19:27:53.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -61,6 +61,7 @@ __libc_pwrite64 (fd, buf, count, offset)
 }
 
 weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_weak (__pwrite64)
 weak_alias (__libc_pwrite64, pwrite64)
 
 # define __libc_pwrite64(fd, buf, count, offset) \
--- libc/sysdeps/unix/sysv/linux/send.S.jj	1998-01-21 18:02:12.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/send.S	2002-08-02 20:05:26.000000000 +0200
@@ -3,3 +3,4 @@
 #define	NARGS	4
 #include <socket.S>
 weak_alias (__libc_send, __send)
+libc_hidden_def (__send)
--- libc/sysdeps/unix/sysv/linux/sigaction.c.jj	2001-08-23 18:50:44.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sigaction.c	2002-08-02 19:28:00.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002 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
@@ -134,4 +134,5 @@ __libc_sigaction (sig, act, oact)
 }
 
 weak_alias (__libc_sigaction, __sigaction)
+libc_hidden_weak (__sigaction)
 weak_alias (__libc_sigaction, sigaction)
--- libc/sysdeps/unix/sysv/linux/sigsuspend.c.jj	2001-08-23 18:50:44.000000000 +0200
+++ libc/sysdeps/unix/sysv/linux/sigsuspend.c	2002-08-02 19:28:12.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2002 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
@@ -64,4 +64,5 @@ __sigsuspend (set)
   return INLINE_SYSCALL (sigsuspend, 3, 0, 0, set->__val[0]);
 #endif
 }
+libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
--- libc/sysdeps/unix/sysv/sco3.2.4/__setpgid.c.jj	2001-08-23 18:51:33.000000000 +0200
+++ libc/sysdeps/unix/sysv/sco3.2.4/__setpgid.c	2002-08-02 19:28:16.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 2002 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
@@ -30,3 +30,4 @@ __setpgid (pid, pgid)
 {
   return __pgrpsys (2, pid, pgid);
 }
+libc_hidden_def (__setpgid)
--- libc/sysdeps/unix/sysv/sco3.2.4/sigaction.S.jj	2001-08-23 18:51:40.000000000 +0200
+++ libc/sysdeps/unix/sysv/sco3.2.4/sigaction.S	2002-08-02 19:28:22.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1994, 1995, 1997, 2002 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,4 +26,5 @@ ENTRY (__sigaction)
 	jb syscall_error
 	ret
 
+libc_hidden_def (__sigaction)
 weak_alias (__sigaction, sigaction)
--- libc/sysdeps/unix/sysv/sysv4/solaris2/syscalls.list.jj	1998-07-20 19:23:28.000000000 +0200
+++ libc/sysdeps/unix/sysv/sysv4/solaris2/syscalls.list	2002-08-02 19:17:06.000000000 +0200
@@ -1,6 +1,6 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-sigaction	-	sigaction	3	__sigaction	sigaction
+sigaction	-	sigaction	3	__sigaction	sigaction __GI___sigaction
 sigaltstack	-	sigaltstack	2	sigaltstack
 sigpending	-	sigpending	2	__syscall_sigpending
 sigqueue	-	sigqueue	3	__sigqueue	sigqueue
--- libc/sysdeps/unix/sysv/sysv4/__getpgid.c.jj	2002-04-30 12:57:23.000000000 +0200
+++ libc/sysdeps/unix/sysv/sysv4/__getpgid.c	2002-08-02 17:08:07.000000000 +0200
@@ -21,8 +21,6 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-#undef __getpgid
-
 extern int __pgrpsys __P ((int type, ...));
 
 /* Get the process group ID of process PID.  */
@@ -32,4 +30,4 @@ __getpgid (pid)
 {
   return __pgrpsys (4, pid);
 }
-INTDEF(__getpgid)
+libc_hidden_def (__getpgid)
--- libc/sysdeps/unix/sysv/sysv4/getpgid.c.jj	2002-04-30 12:57:23.000000000 +0200
+++ libc/sysdeps/unix/sysv/sysv4/getpgid.c	2002-08-02 17:08:30.000000000 +0200
@@ -19,8 +19,6 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-#undef __getpgid
-
 extern pid_t __pgrpsys __P ((int type, ...));
 
 /* Get the process group ID of process PID.  */
@@ -30,6 +28,5 @@ __getpgid (pid)
 {
   return __pgrpsys (4, pid);
 }
-
-INTDEF(__getpgid)
+libc_hidden_def (__getpgid)
 weak_alias (__getpgid, getpgid)
--- libc/sysdeps/unix/sysv/sysv4/__setpgid.c.jj	2001-08-23 18:51:40.000000000 +0200
+++ libc/sysdeps/unix/sysv/sysv4/__setpgid.c	2002-08-02 19:28:27.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -31,3 +31,4 @@ __setpgid (pid, pgid)
 {
   return __pgrpsys (5, pid, pgid);
 }
+libc_hidden_def (__setpgid)
--- libc/sysdeps/unix/sysv/sysv4/setpgid.c.jj	2001-08-23 18:51:40.000000000 +0200
+++ libc/sysdeps/unix/sysv/sysv4/setpgid.c	2002-08-02 19:28:38.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1995,1996,1997,1999,2002 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
@@ -30,5 +30,5 @@ __setpgid (pid, pgid)
 {
   return __pgrpsys (5, pid, pgid);
 }
-
+libc_hidden_def (__setpgid)
 weak_alias (__setpgid, setpgid)
--- libc/sysdeps/unix/sysv/sysv4/sigaction.c.jj	2001-08-23 18:51:40.000000000 +0200
+++ libc/sysdeps/unix/sysv/sysv4/sigaction.c	2002-08-02 19:28:46.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994,1995,1996,1997,2002 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
@@ -76,5 +76,5 @@ __sigaction (sig, act, oact)
 
   return 0;
 }
-
+libc_hidden_def (__sigaction)
 weak_alias (__sigaction, sigaction)
--- libc/sysdeps/unix/sysv/sigaction.c.jj	2001-08-23 18:50:34.000000000 +0200
+++ libc/sysdeps/unix/sysv/sigaction.c	2002-08-02 19:28:57.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992,1994,1995,1996,1997,2002 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
@@ -80,5 +80,5 @@ __sigaction (sig, act, oact)
 
   return 0;
 }
-
+libc_hidden_def (__sigaction)
 weak_alias (__sigaction, sigaction)
--- libc/sysdeps/unix/syscalls.list.jj	2002-04-30 12:56:18.000000000 +0200
+++ libc/sysdeps/unix/syscalls.list	2002-08-02 18:56:00.000000000 +0200
@@ -4,20 +4,20 @@ access		-	access		i:si	__access	access
 acct		-	acct		i:S	acct
 chdir		-	chdir		i:s	__chdir		chdir
 chmod		-	chmod		i:si	__chmod		chmod
-chown		-	chown		i:sii	__chown		chown
+chown		-	chown		i:sii	__chown		chown __GI___chown
 chroot		-	chroot		i:s	chroot
-close		-	close		i:i	__libc_close	__close close __close_internal
+close		-	close		i:i	__libc_close	__close close __GI___close
 dup		-	dup		i:i	__dup		dup
-dup2		-	dup2		i:ii	__dup2		dup2 __dup2_internal
+dup2		-	dup2		i:ii	__dup2		dup2 __GI___dup2
 fchdir		-	fchdir		i:i	__fchdir	fchdir
-fcntl		-	fcntl		i:iiF	__libc_fcntl	__fcntl fcntl
+fcntl		-	fcntl		i:iiF	__libc_fcntl	__GI___libc_fcntl __fcntl __GI___fcntl fcntl
 fstatfs		-	fstatfs		i:ip	__fstatfs	fstatfs
 fsync		-	fsync		i:i	__libc_fsync	fsync
 getdomain	-	getdomainname	i:si	getdomainname
 getgid		-	getgid		i:	__getgid	getgid
 getgroups	-	getgroups	i:ip	__getgroups	getgroups
 getitimer	-	getitimer	i:ip	__getitimer	getitimer
-getpid		-	getpid		i:	__getpid	getpid __getpid_internal
+getpid		-	getpid		i:	__getpid	getpid __GI___getpid
 getpriority	-	getpriority	i:ii	getpriority
 getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit
 getuid		-	getuid		i:	__getuid	getuid
@@ -26,16 +26,16 @@ kill		-	kill		i:ii	__kill		kill
 link		-	link		i:ss	__link		link
 lseek		-	lseek		i:iii	__libc_lseek	__lseek lseek
 mkdir		-	mkdir		i:si	__mkdir		mkdir
-open		-	open		i:siv	__libc_open	__open open __open_internal
+open		-	open		i:siv	__libc_open	__GI___libc_open __open open __GI___open
 profil		-	profil		i:piii	profil
 ptrace		-	ptrace		i:iiii	ptrace
-read		-	read		i:ibn	__libc_read	__read read
+read		-	read		i:ibn	__libc_read	__read read __GI___read __GI___libc_read
 readlink	-	readlink	i:spi	__readlink	readlink
 readv		-	readv		i:ipi	__readv		readv
 reboot		-	reboot		i:i	reboot
 rename		-	rename		i:ss	rename
 rmdir		-	rmdir		i:s	__rmdir		rmdir
-select		-	select		i:iPPPP	__select	select
+select		-	select		i:iPPPP	__select	select __GI___select
 setdomain	-	setdomainname	i:si	setdomainname
 setegid		-	setegid		i:i	__setegid	setegid
 seteuid		-	seteuid		i:i	__seteuid	seteuid
@@ -49,7 +49,7 @@ settimeofday	-	settimeofday	i:PP	__setti
 setuid		-	setuid		i:i	__setuid	setuid
 sigsuspend	-	sigsuspend	i:p	sigsuspend
 sstk		-	sstk		b:i	sstk
-statfs		-	statfs		i:sp	__statfs	statfs
+statfs		-	statfs		i:sp	__statfs	statfs __GI___statfs
 swapoff		-	swapoff		i:s	swapoff
 swapon		-	swapon		i:s	swapon
 symlink		-	symlink		i:ss	__symlink	symlink
@@ -61,5 +61,5 @@ umask		-	umask		i:i	__umask		umask
 uname		-	uname		i:p	__uname		uname
 unlink		-	unlink		i:s	__unlink	unlink
 utimes		-	utimes		i:sp	__utimes	utimes
-write		-	write		i:ibn	__libc_write	__write write __write_internal
+write		-	write		i:ibn	__libc_write	__write write __GI___write __GI___libc_write
 writev		-	writev		i:ipi	__writev	writev
--- libc/sysdeps/unix/getpagesize.c.jj	2002-04-30 12:56:17.000000000 +0200
+++ libc/sysdeps/unix/getpagesize.c	2002-08-02 16:20:00.000000000 +0200
@@ -19,8 +19,6 @@
 #include <unistd.h>
 #include <sys/param.h>
 
-#undef __getpagesize
-
 /* Return the system page size.  */
 int
 __getpagesize ()
@@ -38,6 +36,5 @@ __getpagesize ()
 #endif	/* NBPG.  */
 #endif	/* EXEC_PAGESIZE.  */
 }
-
-INTDEF(__getpagesize)
+libc_hidden_def (__getpagesize)
 weak_alias (__getpagesize, getpagesize)
--- libc/wcsmbs/mbrlen.c.jj	2002-04-30 12:57:38.000000000 +0200
+++ libc/wcsmbs/mbrlen.c	2002-08-02 14:24:32.000000000 +0200
@@ -19,8 +19,6 @@
 
 #include <wchar.h>
 
-#undef __mbrlen
-
 /* The mbrlen function has an internal shift state which gets used if
    the PS parameter is NULL.  */
 static mbstate_t internal;
@@ -34,5 +32,5 @@ __mbrlen (s, n, ps)
 {
   return __mbrtowc (NULL, s, n, ps ?: &internal);
 }
-INTDEF(__mbrlen)
+libc_hidden_def (__mbrlen)
 weak_alias (__mbrlen, mbrlen)
--- libc/wcsmbs/mbrtowc.c.jj	2002-04-30 12:57:39.000000000 +0200
+++ libc/wcsmbs/mbrtowc.c	2002-08-02 14:24:32.000000000 +0200
@@ -29,8 +29,6 @@
 # define EILSEQ EINVAL
 #endif
 
-#undef __mbrtowc
-
 /* This is the private state used if PS is NULL.  */
 static mbstate_t state;
 
@@ -106,5 +104,5 @@ __mbrtowc (wchar_t *pwc, const char *s, 
 
   return result;
 }
-INTDEF(__mbrtowc)
+libc_hidden_def (__mbrtowc)
 weak_alias (__mbrtowc, mbrtowc)
--- libc/configure.in.jj	2002-07-29 15:14:49.000000000 +0200
+++ libc/configure.in	2002-08-02 21:46:27.000000000 +0200
@@ -1013,6 +1013,29 @@ EOF
     fi
   fi
 
+  if test $libc_cv_visibility_attribute = yes; then
+    AC_CACHE_CHECK(whether for broken __attribute__((visibility())),
+		 libc_cv_broken_visibility_attribute,
+		 [cat > conftest.c <<EOF
+		  int foo (int x);
+		  int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
+		  int bar (int x) { return x; }
+EOF
+		  libc_cv_broken_visibility_attribute=yes
+		  if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+changequote(,)dnl
+		    if grep '\.hidden[ 	_]foo' conftest.s >/dev/null; then
+changequote([,])dnl
+		      libc_cv_broken_visibility_attribute=no
+		    fi
+		  fi
+		  rm -f conftest.[cs]
+		 ])
+    if test $libc_cv_broken_visibility_attribute = yes; then
+      AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
+    fi
+  fi
+
   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
 		 libc_cv_have_sdata_section,
--- libc/configure.jj	2002-07-29 15:14:49.000000000 +0200
+++ libc/configure	2002-08-02 21:47:06.000000000 +0200
@@ -2823,6 +2823,36 @@ EOF
     fi
   fi
 
+  if test $libc_cv_visibility_attribute = yes; then
+    echo $ac_n "checking for broken __attribute__((visibility()))""... $ac_c" 1>&6
+echo "configure:2829: checking for broken __attribute__((visibility()))" >&5
+if eval "test \"`echo '$''{'libc_cv_broken_visibility_attribute'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+		  int foo (int x);
+		  int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
+		  int bar (int x) { return x; }
+EOF
+		  libc_cv_broken_visibility_attribute=yes
+		  if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+		    if grep '\.hidden[ 	_]foo' conftest.s >/dev/null; then
+		      libc_cv_broken_visibility_attribute=no
+		    fi
+		  fi
+		  rm -f conftest.cs
+		 
+fi
+
+echo "$ac_t""$libc_cv_broken_visibility_attribute" 1>&6
+    if test $libc_cv_broken_visibility_attribute = yes; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_BROKEN_VISIBILITY_ATTRIBUTE 1
+EOF
+
+    fi
+  fi
+
   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
     echo $ac_n "checking whether to put _rtld_local into .sdata section""... $ac_c" 1>&6
 echo "configure:2829: checking whether to put _rtld_local into .sdata section" >&5
--- libc/config.h.in.jj	2002-07-29 15:14:49.000000000 +0200
+++ libc/config.h.in	2002-08-02 14:39:12.000000000 +0200
@@ -117,6 +117,10 @@
 /* Define if the compiler supports __attribute__ ((visibility (...))).  */
 #undef	HAVE_VISIBILITY_ATTRIBUTE
 
+/* Define if the compiler doesn't support __attribute__ ((visibility (...)))
+   together with __asm__ redirection properly.  */
+#undef	HAVE_BROKEN_VISIBILITY_ATTRIBUTE
+
 /* Define if _rtld_local structure should be forced into .sdata section.  */
 #undef	HAVE_SDATA_SECTION
 

	Jakub

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] PLT reducation, take 2
  2002-08-02 14:20 [PATCH] PLT reducation, take 2 Jakub Jelinek
@ 2002-08-03  0:09 ` Ulrich Drepper
  2002-08-03  0:45   ` Jakub Jelinek
  0 siblings, 1 reply; 5+ messages in thread
From: Ulrich Drepper @ 2002-08-03  0:09 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Glibc hackers

Jakub Jelinek wrote:

> I've added the configure check plus a bunch of new macros from PLT-reduce
> list and converted a bunch from INTUSE/INTDEF etc. too.
> Tested by make check, comparing nm -D output and readelf -r output before
> and after the patch.

I have applied the patch now.  But while doing this I had to add a few 
more changes.  There are more gcc problems which are made visible by 
this change, not only the visibility+asm problem (see the new test in 
configure.in).

The result is new compilable again and it seems to work

What I don't see is the PLT reduction.  I might have broken something by 
getting things to compile or there are more tools problems.  This has to 
be investigated.  The design is clean and it compiles which is the most 
important thing.  Please try it with your compiler to see whether there 
are yet more problems.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] PLT reducation, take 2
  2002-08-03  0:09 ` Ulrich Drepper
@ 2002-08-03  0:45   ` Jakub Jelinek
  2002-08-03  5:11     ` [PATCH] PLT reducation, take 3 Jakub Jelinek
  0 siblings, 1 reply; 5+ messages in thread
From: Jakub Jelinek @ 2002-08-03  0:45 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Glibc hackers

On Sat, Aug 03, 2002 at 12:09:45AM -0700, Ulrich Drepper wrote:
> Jakub Jelinek wrote:
> 
> > I've added the configure check plus a bunch of new macros from PLT-reduce
> > list and converted a bunch from INTUSE/INTDEF etc. too.
> > Tested by make check, comparing nm -D output and readelf -r output before
> > and after the patch.
> 
> I have applied the patch now.  But while doing this I had to add a few 
> more changes.  There are more gcc problems which are made visible by 
> this change, not only the visibility+asm problem (see the new test in 
> configure.in).
> 
> The result is new compilable again and it seems to work
> 
> What I don't see is the PLT reduction.  I might have broken something by 
> getting things to compile or there are more tools problems.  This has to 
> be investigated.  The design is clean and it compiles which is the most 
> important thing.  Please try it with your compiler to see whether there 
> are yet more problems.

Well, with gcc-3.2-0.1.1 (ie. the compiler which no longer outputs
.hidden *foo
if visibility hidden is mixed with __REDIRECT (that patch is in CVS head too)),
I got following:

immediately before the patch:
readelf -a libc.so | grep '\(^Relocation\|RELCOUNT\)' 0x6ffffffa (RELCOUNT)                   1406
Relocation section '.rel.dyn' at offset 0x11798 contains 1525 entries:
Relocation section '.rel.plt' at offset 0x14740 contains 301 entries:

with the patch:
readelf -a libc.so | grep '\(^Relocation\|RELCOUNT\)' 0x6ffffffa (RELCOUNT)                   1405
Relocation section '.rel.dyn' at offset 0x11798 contains 1522 entries:
Relocation section '.rel.plt' at offset 0x14728 contains 270 entries:

	Jakub

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] PLT reducation, take 3
  2002-08-03  0:45   ` Jakub Jelinek
@ 2002-08-03  5:11     ` Jakub Jelinek
  2002-08-03 14:26       ` Ulrich Drepper
  0 siblings, 1 reply; 5+ messages in thread
From: Jakub Jelinek @ 2002-08-03  5:11 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Glibc hackers

Hi!

This should give the savings with gcc 3.3
and 3.2+visibility+visibility&&asm fix while allowing glibc to build
with earlier compilers.

2002-08-03  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h: Optimize if HAVE_BROKEN_ALIAS_ATTRIBUTE is
	not defined.

--- libc/include/libc-symbols.h.jj	2002-08-03 11:09:26.000000000 +0200
+++ libc/include/libc-symbols.h	2002-08-03 14:23:58.000000000 +0200
@@ -441,18 +441,14 @@
    libc_hidden_ver (__real_foo, foo)  */
 
 #if defined SHARED && defined DO_VERSIONING \
-    && defined HAVE_BROKEN_ALIAS_ATTRIBUTE
+    && !defined HAVE_BROKEN_ALIAS_ATTRIBUTE
 # ifndef __ASSEMBLER__
 #  ifdef HAVE_BROKEN_VISIBILITY_ATTRIBUTE
 #   define __hidden_proto_hiddenattr
 #  else
 #   define __hidden_proto_hiddenattr attribute_hidden
 #  endif
-#  ifndef HAVE_BROKEN_ALIAS_ATTRIBUTE
-#   define hidden_proto(name) __hidden_proto (name, __GI_##name)
-#  else
-#   define hidden_proto(name)
-#  endif
+#  define hidden_proto(name) __hidden_proto (name, __GI_##name)
 #  define __hidden_proto(name, internal) \
   __typeof (name) internal; \
   __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
@@ -525,7 +521,7 @@
 # define hidden_ver(local, name)
 #endif
 
-#if !defined NOT_IN_libc && !defined HAVE_BROKEN_ALIAS_ATTRIBUTE
+#if !defined NOT_IN_libc
 # define libc_hidden_proto(name) hidden_proto (name)
 # define libc_hidden_def(name) hidden_def (name)
 # define libc_hidden_weak(name) hidden_weak (name)
@@ -537,8 +533,7 @@
 # define libc_hidden_ver(local, name)
 #endif
 
-#if defined NOT_IN_libc && defined IS_IN_rtld \
-    && !defined HAVE_BROKEN_ALIAS_ATTRIBUTE
+#if defined NOT_IN_libc && defined IS_IN_rtld
 # define rtld_hidden_proto(name) hidden_proto (name)
 # define rtld_hidden_def(name) hidden_def (name)
 # define rtld_hidden_weak(name) hidden_weak (name)
@@ -550,8 +545,7 @@
 # define rtld_hidden_ver(local, name)
 #endif
 
-#if defined NOT_IN_libc && defined IS_IN_libm \
-    && !defined HAVE_BROKEN_ALIAS_ATTRIBUTE
+#if defined NOT_IN_libc && defined IS_IN_libm
 # define libm_hidden_proto(name) hidden_proto (name)
 # define libm_hidden_def(name) hidden_def (name)
 # define libm_hidden_weak(name) hidden_weak (name)


	Jakub

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] PLT reducation, take 3
  2002-08-03  5:11     ` [PATCH] PLT reducation, take 3 Jakub Jelinek
@ 2002-08-03 14:26       ` Ulrich Drepper
  0 siblings, 0 replies; 5+ messages in thread
From: Ulrich Drepper @ 2002-08-03 14:26 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Glibc hackers

Jakub Jelinek wrote:

> 2002-08-03  Jakub Jelinek  <jakub@redhat.com>
> 
> 	* include/libc-symbols.h: Optimize if HAVE_BROKEN_ALIAS_ATTRIBUTE is
> 	not defined.

I've applied this on top of Roland's change.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-08-03 21:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-02 14:20 [PATCH] PLT reducation, take 2 Jakub Jelinek
2002-08-03  0:09 ` Ulrich Drepper
2002-08-03  0:45   ` Jakub Jelinek
2002-08-03  5:11     ` [PATCH] PLT reducation, take 3 Jakub Jelinek
2002-08-03 14:26       ` Ulrich Drepper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).