about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog28
-rw-r--r--elf/ldconfig.c1
-rw-r--r--elf/rtld.c1
-rw-r--r--include/string.h3
-rw-r--r--inet/getnetgrent_r.c22
-rw-r--r--sysdeps/generic/ldsodefs.h4
-rw-r--r--sysdeps/generic/strsep.c3
-rw-r--r--sysdeps/generic/strtok_r.c3
-rw-r--r--sysdeps/i386/dl-machine.h2
-rw-r--r--sysdeps/i386/dl-procinfo.c6
-rw-r--r--sysdeps/i386/i686/strtok_r.S1
-rw-r--r--sysdeps/i386/strtok_r.S1
-rw-r--r--sysdeps/x86_64/strtok_r.S1
13 files changed, 66 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 479773a86f..5c23113ad9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2004-07-10  Ulrich Drepper  <drepper@redhat.com>
+
+	* elf/ldconfig.c: Define PROCINFO_CLASS as static before including
+	ldsodefs.h.
+	* sysdeps/generic/ldsodefs.h: Only define PROCINFO_CLASS if it is not
+	already defined.
+	* sysdeps/i386/dl-procinfo.c: Define PROCINFO_CALLS only if not
+	already defined.
+
+	* elf/rtld.c (print_statistics): Mark with noinline attribute.
+	* sysdeps/i386/dl-machine.h (elf_machine_rel): Mark with always_inline
+	attribute.
+	(elf_machine_rel_relative): Likewise.
+
+	* include/string.h: Add libc_hidden_proto for __strtok_r and
+	__strsep_g.
+	* sysdeps/generic/strsep.c: Add libc_hidden_def.
+	* sysdeps/generic/strtok_r.c: Likewise.
+	* sysdeps/i386/strtok_r.S: Add alias for internal symbol.
+	* sysdeps/i386/i686/strtok_r.S: Likewise.
+	* sysdeps/x86_64/strtok_r.S: Likewise.
+
+2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
+
+	* inet/getnetgrent_r.c (internal_setnetgrent): Make it hidden
+	instead of internal-linkage, such that we can alias to it.
+	(internal_endnetgrent, internal_getnetgrent_r): Likewise.
+
 2004-07-09  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Move attribute
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index d85bbc8f05..448857ef9a 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#define PROCINFO_CLASS static
 #include <alloca.h>
 #include <argp.h>
 #include <dirent.h>
diff --git a/elf/rtld.c b/elf/rtld.c
index 3def0306e2..a65e9c4c7c 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -2229,6 +2229,7 @@ process_envvars (enum mode *modep)
 
 /* Print the various times we collected.  */
 static void
+__attribute ((noinline))
 print_statistics (hp_timing_t *rtld_total_timep)
 {
 #ifndef HP_TIMING_NONAVAIL
diff --git a/include/string.h b/include/string.h
index 7c05abf7d0..afc6adfbda 100644
--- a/include/string.h
+++ b/include/string.h
@@ -80,6 +80,9 @@ libc_hidden_proto (basename)
 libc_hidden_proto (strcoll)
 libc_hidden_proto (__strcoll_l)
 libc_hidden_proto (__strxfrm_l)
+libc_hidden_proto (__strtok_r)
+extern char *__strsep_g (char **__stringp, __const char *__delim);
+libc_hidden_proto (__strsep_g)
 
 libc_hidden_builtin_proto (memchr)
 libc_hidden_builtin_proto (memcpy)
diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
index dee90ad389..5531844d14 100644
--- a/inet/getnetgrent_r.c
+++ b/inet/getnetgrent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2002,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -133,7 +133,10 @@ __internal_setnetgrent_reuse (const char *group, struct __netgrent *datap,
   return status == NSS_STATUS_SUCCESS;
 }
 
-static int
+int internal_setnetgrent (const char *group, struct __netgrent *datap);
+libc_hidden_proto (internal_setnetgrent)
+
+int
 internal_setnetgrent (const char *group, struct __netgrent *datap)
 {
   /* Free list of all netgroup names from last run.  */
@@ -141,6 +144,7 @@ internal_setnetgrent (const char *group, struct __netgrent *datap)
 
   return __internal_setnetgrent_reuse (group, datap, &errno);
 }
+libc_hidden_def (internal_setnetgrent)
 strong_alias (internal_setnetgrent, __internal_setnetgrent)
 
 int
@@ -158,7 +162,10 @@ setnetgrent (const char *group)
 }
 
 
-static void
+void internal_endnetgrent (struct __netgrent *datap);
+libc_hidden_proto (internal_endnetgrent)
+
+void
 internal_endnetgrent (struct __netgrent *datap)
 {
   service_user *old_nip;
@@ -186,6 +193,7 @@ internal_endnetgrent (struct __netgrent *datap)
   /* Now free list of all netgroup names from last run.  */
   free_memory (datap);
 }
+libc_hidden_def (internal_endnetgrent)
 strong_alias (internal_endnetgrent, __internal_endnetgrent)
 
 
@@ -200,7 +208,12 @@ endnetgrent (void)
 }
 
 
-static int
+int internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
+			    struct __netgrent *datap,
+			    char *buffer, size_t buflen, int *errnop);
+libc_hidden_proto (internal_getnetgrent_r)
+
+int
 internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
 			  struct __netgrent *datap,
 			  char *buffer, size_t buflen, int *errnop)
@@ -286,6 +299,7 @@ internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
 
   return status == NSS_STATUS_SUCCESS ? 1 : 0;
 }
+libc_hidden_def (internal_getnetgrent_r)
 strong_alias (internal_getnetgrent_r, __internal_getnetgrent_r)
 
 /* The real entry point.  */
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 53c3290e01..49f766642c 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -424,7 +424,9 @@ struct rtld_global_ro
 
   /* Get architecture specific definitions.  */
 #define PROCINFO_DECL
-#define PROCINFO_CLASS EXTERN
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS EXTERN
+#endif
 #include <dl-procinfo.c>
 
   /* Names of shared object for which the RPATH should be ignored.  */
diff --git a/sysdeps/generic/strsep.c b/sysdeps/generic/strsep.c
index 5761eecd31..e5342f7a22 100644
--- a/sysdeps/generic/strsep.c
+++ b/sysdeps/generic/strsep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 93, 96, 97, 98, 99, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -67,3 +67,4 @@ __strsep (char **stringp, const char *delim)
 }
 weak_alias (__strsep, strsep)
 strong_alias (__strsep, __strsep_g)
+libc_hidden_def (__strsep_g)
diff --git a/sysdeps/generic/strtok_r.c b/sysdeps/generic/strtok_r.c
index 34cc85c9e2..3a5c047b8c 100644
--- a/sysdeps/generic/strtok_r.c
+++ b/sysdeps/generic/strtok_r.c
@@ -1,5 +1,5 @@
 /* Reentrant string tokenizer.  Generic version.
-   Copyright (C) 1991, 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1991,1996-1999,2001,2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -65,4 +65,5 @@ __strtok_r (s, delim, save_ptr)
     }
   return token;
 }
+libc_hidden_def (__strtok_r)
 weak_alias (__strtok_r, strtok_r)
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 65ae53a408..4b5b8f22e7 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -389,6 +389,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc,
    MAP is the object containing the reloc.  */
 
 static inline void
+__attribute ((always_inline))
 elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
 		 const Elf32_Sym *sym, const struct r_found_version *version,
 		 void *const reloc_addr_arg)
@@ -639,6 +640,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 #endif	/* !RTLD_BOOTSTRAP */
 
 static inline void
+__attribute ((always_inline))
 elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
 			  void *const reloc_addr_arg)
 {
diff --git a/sysdeps/i386/dl-procinfo.c b/sysdeps/i386/dl-procinfo.c
index 01b24d15b1..2108f22cb9 100644
--- a/sysdeps/i386/dl-procinfo.c
+++ b/sysdeps/i386/dl-procinfo.c
@@ -1,5 +1,5 @@
 /* Data for i386 version of processor capability information.
-   Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
+   Copyright (C) 2001,2002,2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
 
@@ -24,7 +24,7 @@
    If anything should be added here check whether the size of each string
    is still ok with the given array size.
 
-   All the #ifdefs in the definitions ar equite irritating but
+   All the #ifdefs in the definitions are quite irritating but
    necessary if we want to avoid duplicating the information.  There
    are three different modes:
 
@@ -41,7 +41,7 @@
   */
 
 #ifndef PROCINFO_CLASS
-#define PROCINFO_CLASS
+# define PROCINFO_CLASS
 #endif
 
 #if !defined PROCINFO_DECL && defined SHARED
diff --git a/sysdeps/i386/i686/strtok_r.S b/sysdeps/i386/i686/strtok_r.S
index cbaeabbabe..1c24ca85f5 100644
--- a/sysdeps/i386/i686/strtok_r.S
+++ b/sysdeps/i386/i686/strtok_r.S
@@ -2,3 +2,4 @@
 #define USE_AS_STRTOK_R	1
 #include <sysdeps/i386/i686/strtok.S>
 weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
+strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
diff --git a/sysdeps/i386/strtok_r.S b/sysdeps/i386/strtok_r.S
index 621093a249..f4a6a2c409 100644
--- a/sysdeps/i386/strtok_r.S
+++ b/sysdeps/i386/strtok_r.S
@@ -2,3 +2,4 @@
 #define USE_AS_STRTOK_R	1
 #include <sysdeps/i386/strtok.S>
 weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
+strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
diff --git a/sysdeps/x86_64/strtok_r.S b/sysdeps/x86_64/strtok_r.S
index 0248f27236..8ce0089c7b 100644
--- a/sysdeps/x86_64/strtok_r.S
+++ b/sysdeps/x86_64/strtok_r.S
@@ -2,3 +2,4 @@
 #define USE_AS_STRTOK_R	1
 #include <sysdeps/x86_64/strtok.S>
 weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
+strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))