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.
This commit is contained in:
Ulrich Drepper 2004-07-10 20:00:44 +00:00
parent d199bfb222
commit ee600e3f76
13 changed files with 66 additions and 10 deletions

View File

@ -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> 2004-07-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Move attribute * sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Move attribute

View File

@ -17,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */ 02111-1307 USA. */
#define PROCINFO_CLASS static
#include <alloca.h> #include <alloca.h>
#include <argp.h> #include <argp.h>
#include <dirent.h> #include <dirent.h>

View File

@ -2229,6 +2229,7 @@ process_envvars (enum mode *modep)
/* Print the various times we collected. */ /* Print the various times we collected. */
static void static void
__attribute ((noinline))
print_statistics (hp_timing_t *rtld_total_timep) print_statistics (hp_timing_t *rtld_total_timep)
{ {
#ifndef HP_TIMING_NONAVAIL #ifndef HP_TIMING_NONAVAIL

View File

@ -80,6 +80,9 @@ libc_hidden_proto (basename)
libc_hidden_proto (strcoll) libc_hidden_proto (strcoll)
libc_hidden_proto (__strcoll_l) libc_hidden_proto (__strcoll_l)
libc_hidden_proto (__strxfrm_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 (memchr)
libc_hidden_builtin_proto (memcpy) libc_hidden_builtin_proto (memcpy)

View File

@ -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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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; 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) internal_setnetgrent (const char *group, struct __netgrent *datap)
{ {
/* Free list of all netgroup names from last run. */ /* 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); return __internal_setnetgrent_reuse (group, datap, &errno);
} }
libc_hidden_def (internal_setnetgrent)
strong_alias (internal_setnetgrent, __internal_setnetgrent) strong_alias (internal_setnetgrent, __internal_setnetgrent)
int 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) internal_endnetgrent (struct __netgrent *datap)
{ {
service_user *old_nip; service_user *old_nip;
@ -186,6 +193,7 @@ internal_endnetgrent (struct __netgrent *datap)
/* Now free list of all netgroup names from last run. */ /* Now free list of all netgroup names from last run. */
free_memory (datap); free_memory (datap);
} }
libc_hidden_def (internal_endnetgrent)
strong_alias (internal_endnetgrent, __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, internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
struct __netgrent *datap, struct __netgrent *datap,
char *buffer, size_t buflen, int *errnop) 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; return status == NSS_STATUS_SUCCESS ? 1 : 0;
} }
libc_hidden_def (internal_getnetgrent_r)
strong_alias (internal_getnetgrent_r, __internal_getnetgrent_r) strong_alias (internal_getnetgrent_r, __internal_getnetgrent_r)
/* The real entry point. */ /* The real entry point. */

View File

@ -424,7 +424,9 @@ struct rtld_global_ro
/* Get architecture specific definitions. */ /* Get architecture specific definitions. */
#define PROCINFO_DECL #define PROCINFO_DECL
#define PROCINFO_CLASS EXTERN #ifndef PROCINFO_CLASS
# define PROCINFO_CLASS EXTERN
#endif
#include <dl-procinfo.c> #include <dl-procinfo.c>
/* Names of shared object for which the RPATH should be ignored. */ /* Names of shared object for which the RPATH should be ignored. */

View File

@ -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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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) weak_alias (__strsep, strsep)
strong_alias (__strsep, __strsep_g) strong_alias (__strsep, __strsep_g)
libc_hidden_def (__strsep_g)

View File

@ -1,5 +1,5 @@
/* Reentrant string tokenizer. Generic version. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or 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; return token;
} }
libc_hidden_def (__strtok_r)
weak_alias (__strtok_r, strtok_r) weak_alias (__strtok_r, strtok_r)

View File

@ -389,6 +389,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc,
MAP is the object containing the reloc. */ MAP is the object containing the reloc. */
static inline void static inline void
__attribute ((always_inline))
elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
const Elf32_Sym *sym, const struct r_found_version *version, const Elf32_Sym *sym, const struct r_found_version *version,
void *const reloc_addr_arg) void *const reloc_addr_arg)
@ -639,6 +640,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
#endif /* !RTLD_BOOTSTRAP */ #endif /* !RTLD_BOOTSTRAP */
static inline void static inline void
__attribute ((always_inline))
elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc, elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
void *const reloc_addr_arg) void *const reloc_addr_arg)
{ {

View File

@ -1,5 +1,5 @@
/* Data for i386 version of processor capability information. /* 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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001. 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 If anything should be added here check whether the size of each string
is still ok with the given array size. 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 necessary if we want to avoid duplicating the information. There
are three different modes: are three different modes:
@ -41,7 +41,7 @@
*/ */
#ifndef PROCINFO_CLASS #ifndef PROCINFO_CLASS
#define PROCINFO_CLASS # define PROCINFO_CLASS
#endif #endif
#if !defined PROCINFO_DECL && defined SHARED #if !defined PROCINFO_DECL && defined SHARED

View File

@ -2,3 +2,4 @@
#define USE_AS_STRTOK_R 1 #define USE_AS_STRTOK_R 1
#include <sysdeps/i386/i686/strtok.S> #include <sysdeps/i386/i686/strtok.S>
weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r)) weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))

View File

@ -2,3 +2,4 @@
#define USE_AS_STRTOK_R 1 #define USE_AS_STRTOK_R 1
#include <sysdeps/i386/strtok.S> #include <sysdeps/i386/strtok.S>
weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r)) weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))

View File

@ -2,3 +2,4 @@
#define USE_AS_STRTOK_R 1 #define USE_AS_STRTOK_R 1
#include <sysdeps/x86_64/strtok.S> #include <sysdeps/x86_64/strtok.S>
weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r)) weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))