From 647eb037f3d9dee0bf6e9410c6445c4223cf832a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 23 Aug 2001 23:36:47 +0000 Subject: Update. 2001-08-23 Jakub Jelinek * elf/ldconfig.c (search_dir): Remove stale symlinks. 2001-08-23 Jakub Jelinek * elf/dl-lookup.c (lookup_cache, lookup_cache_versioned): New. (_dl_lookup_symbol): Lookup relocations in cache and store successfull lookups in cache. (_dl_lookup_versioned_symbol): Likewise. * elf/dl-reloc.c (_dl_relocate_object): Initialize cache for relocation lookup. * elf/rtld.c (print_statistics): Output _dl_num_cache_relocations. * sysdeps/generic/ldsodefs.h (struct lookup_cache): New definition. (lookup_cache, lookup_cache_versioned): Add declarations. 2001-08-23 Ulrich Drepper * stdlib/tst-random.c (main): Swap parameters in fail call. Patch by Pete Bevin . 2001-08-23 Jakub Jelinek * sysdeps/generic/inttypes.h: Use __gwchar_t instead of __wchar_t. * malloc/obstack.c: Indent preprocessor directives. Patch by Jim Meyering . --- sysdeps/generic/inttypes.h | 40 ++++++++++++++++++++-------------------- sysdeps/generic/ldsodefs.h | 15 +++++++++++++++ 2 files changed, 35 insertions(+), 20 deletions(-) (limited to 'sysdeps/generic') diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h index 29830ea2fb..0549a6accc 100644 --- a/sysdeps/generic/inttypes.h +++ b/sysdeps/generic/inttypes.h @@ -28,15 +28,15 @@ #include /* Get a definition for wchar_t. But we must not define wchar_t itself. */ -#ifndef ____wchar_t_defined +#ifndef ____gwchar_t_defined # ifdef __WCHAR_TYPE__ -typedef __WCHAR_TYPE__ __wchar_t; +typedef __WCHAR_TYPE__ __gwchar_t; # else # defined __need_wchar_t # include -typedef wchar_t __wchar_t; +typedef wchar_t __gwchar_t; # endif -# define ____wchar_t_defined 1 +# define ____gwchar_t_defined 1 #endif @@ -308,13 +308,13 @@ extern uintmax_t strtoumax (__const char *__restrict __nptr, char ** __restrict __endptr, int __base) __THROW; /* Like `wcstol' but convert to `intmax_t'. */ -extern intmax_t wcstoimax (__const __wchar_t *__restrict __nptr, - __wchar_t **__restrict __endptr, int __base) +extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, + __gwchar_t **__restrict __endptr, int __base) __THROW; /* Like `wcstoul' but convert to `uintmax_t'. */ -extern uintmax_t wcstoumax (__const __wchar_t *__restrict __nptr, - __wchar_t ** __restrict __endptr, int __base) +extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, + __gwchar_t ** __restrict __endptr, int __base) __THROW; #ifdef __USE_EXTERN_INLINES @@ -352,13 +352,13 @@ strtoumax (__const char *__restrict nptr, char **__restrict endptr, /* Like `wcstol' but convert to `intmax_t'. */ # ifndef __wcstol_internal_defined -extern long int __wcstol_internal (__const __wchar_t * __restrict __nptr, - __wchar_t **__restrict __endptr, +extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr, + __gwchar_t **__restrict __endptr, int __base, int __group) __THROW; # define __wcstol_internal_defined 1 # endif extern __inline intmax_t -wcstoimax (__const __wchar_t *__restrict nptr, __wchar_t **__restrict endptr, +wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) __THROW { return __wcstol_internal (nptr, endptr, base, 0); @@ -367,15 +367,15 @@ wcstoimax (__const __wchar_t *__restrict nptr, __wchar_t **__restrict endptr, /* Like `wcstoul' but convert to `uintmax_t'. */ # ifndef __wcstoul_internal_defined -extern unsigned long int __wcstoul_internal (__const __wchar_t * +extern unsigned long int __wcstoul_internal (__const __gwchar_t * __restrict __nptr, - __wchar_t ** + __gwchar_t ** __restrict __endptr, int __base, int __group) __THROW; # define __wcstoul_internal_defined 1 # endif extern __inline uintmax_t -wcstoumax (__const __wchar_t *__restrict nptr, __wchar_t **__restrict endptr, +wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) __THROW { return __wcstoul_internal (nptr, endptr, base, 0); @@ -419,14 +419,14 @@ strtoumax (__const char *__restrict nptr, char **__restrict endptr, /* Like `wcstol' but convert to `intmax_t'. */ # ifndef __wcstoll_internal_defined __extension__ -extern long long int __wcstoll_internal (__const __wchar_t * +extern long long int __wcstoll_internal (__const __gwchar_t * __restrict __nptr, - __wchar_t **__restrict __endptr, + __gwchar_t **__restrict __endptr, int __base, int __group) __THROW; # define __wcstoll_internal_defined 1 # endif extern __inline intmax_t -wcstoimax (__const __wchar_t *__restrict nptr, __wchar_t **__restrict endptr, +wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) __THROW { return __wcstoll_internal (nptr, endptr, base, 0); @@ -436,16 +436,16 @@ wcstoimax (__const __wchar_t *__restrict nptr, __wchar_t **__restrict endptr, /* Like `wcstoul' but convert to `uintmax_t'. */ # ifndef __wcstoull_internal_defined __extension__ -extern unsigned long long int __wcstoull_internal (__const __wchar_t * +extern unsigned long long int __wcstoull_internal (__const __gwchar_t * __restrict __nptr, - __wchar_t ** + __gwchar_t ** __restrict __endptr, int __base, int __group) __THROW; # define __wcstoull_internal_defined 1 # endif extern __inline uintmax_t -wcstoumax (__const __wchar_t *__restrict nptr, __wchar_t **__restrict endptr, +wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) __THROW { return __wcstoull_internal (nptr, endptr, base, 0); diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index 6d196c7379..5e093fcdd5 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -327,6 +327,21 @@ extern void _dl_map_object_deps (struct link_map *map, /* Cache the locations of MAP's hash table. */ extern void _dl_setup_hash (struct link_map *map) internal_function; +/* This holds symbol lookup cache. */ +struct lookup_cache + { + const ElfW(Sym) *sym; + struct link_map *map; + const struct r_found_version *version; + int noexec; + int noplt; + lookup_t value; + const ElfW(Sym) *ret; + }; + +extern struct lookup_cache _dl_lookup_cache; +extern struct lookup_cache _dl_lookup_cache_versioned; + /* Search loaded objects' symbol tables for a definition of the symbol referred to by UNDEF. *SYM is the symbol table entry containing the -- cgit v1.2.3