about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-23 23:36:47 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-23 23:36:47 +0000
commit647eb037f3d9dee0bf6e9410c6445c4223cf832a (patch)
treefc725d27ed5ffef239f38f7aabb08227b285dfd2 /sysdeps/generic
parente515fbc5fd53ff4186249a2c070f41fd73aa1c2c (diff)
downloadglibc-647eb037f3d9dee0bf6e9410c6445c4223cf832a.tar.gz
glibc-647eb037f3d9dee0bf6e9410c6445c4223cf832a.tar.xz
glibc-647eb037f3d9dee0bf6e9410c6445c4223cf832a.zip
Update.
2001-08-23  Jakub Jelinek  <jakub@redhat.com>

	* elf/ldconfig.c (search_dir): Remove stale symlinks.

2001-08-23  Jakub Jelinek  <jakub@redhat.com>

	* 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  <drepper@redhat.com>

	* stdlib/tst-random.c (main): Swap parameters in fail call.
	Patch by Pete Bevin <pete@petebevin.com>.

2001-08-23  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/inttypes.h: Use __gwchar_t instead of __wchar_t.

	* malloc/obstack.c: Indent preprocessor directives.
	Patch by Jim Meyering <meyering@ascend.com>.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/inttypes.h40
-rw-r--r--sysdeps/generic/ldsodefs.h15
2 files changed, 35 insertions, 20 deletions
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 <stdint.h>
 
 /* 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 <stddef.h>
-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