about summary refs log tree commit diff
path: root/elf/dl-lookup.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-02-07 21:21:33 +0000
committerUlrich Drepper <drepper@redhat.com>1999-02-07 21:21:33 +0000
commit48f6496e3fdb55c66088c5122779d400f2b3ac39 (patch)
tree113b269feb61866faad367f3fa0cc71def662237 /elf/dl-lookup.c
parente1f601e87837e586eb6acc1de087aedbc85ea7d4 (diff)
downloadglibc-48f6496e3fdb55c66088c5122779d400f2b3ac39.tar.gz
glibc-48f6496e3fdb55c66088c5122779d400f2b3ac39.tar.xz
glibc-48f6496e3fdb55c66088c5122779d400f2b3ac39.zip
Update.
1999-02-07  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-lookup.c: Increment _dl_num_relocations in the four entry
	point functions, not do_lookup since the later can be called more
	than once.
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r--elf/dl-lookup.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 01d71678b4..ef953c5475 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -1,5 +1,5 @@
 /* Look up a symbol in the loaded objects.
-   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 1999 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
@@ -74,8 +74,6 @@ do_lookup (const char *undef_name, unsigned long int hash,
   size_t n = scope->r_nlist;
   struct link_map *map;
 
-  ++_dl_num_relocations;
-
   for (; i < n; ++i)
     {
       const ElfW(Sym) *symtab;
@@ -189,7 +187,7 @@ do_lookup (const char *undef_name, unsigned long int hash,
 	  goto found_it;
 	}
 
-      /* If we have seem exactly one versioned symbol while we are
+      /* If we have seen exactly one versioned symbol while we are
 	 looking for an unversioned symbol and the version is not the
 	 default version we still accept this symbol since there are
 	 no possible ambiguities.  */
@@ -244,6 +242,8 @@ _dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
   struct sym_val current_value = { NULL, NULL };
   struct r_scope_elem **scope;
 
+  ++_dl_num_relocations;
+
   /* Search the relevant loaded objects for a definition.  */
   for (scope = symbol_scope; *scope; ++scope)
     if (do_lookup (undef_name, hash, *ref, &current_value,
@@ -293,6 +293,8 @@ _dl_lookup_symbol_skip (const char *undef_name, const ElfW(Sym) **ref,
   struct r_scope_elem **scope;
   size_t i;
 
+  ++_dl_num_relocations;
+
   /* Search the relevant loaded objects for a definition.  */
   scope = symbol_scope;
   for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i)
@@ -342,6 +344,8 @@ _dl_lookup_versioned_symbol (const char *undef_name, const ElfW(Sym) **ref,
   struct sym_val current_value = { NULL, NULL };
   struct r_scope_elem **scope;
 
+  ++_dl_num_relocations;
+
   /* Search the relevant loaded objects for a definition.  */
   for (scope = symbol_scope; *scope; ++scope)
     {
@@ -409,6 +413,8 @@ _dl_lookup_versioned_symbol_skip (const char *undef_name,
   struct r_scope_elem **scope;
   size_t i;
 
+  ++_dl_num_relocations;
+
   /* Search the relevant loaded objects for a definition.  */
   scope = symbol_scope;
   for (i = 0; (*scope)->r_duplist[i] != skip_map; ++i)