summaryrefslogtreecommitdiff
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))