summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-10-24 01:02:15 +0000
committerUlrich Drepper <drepper@redhat.com>2000-10-24 01:02:15 +0000
commita881e0a074e448f282e44b1d172b46199697755b (patch)
tree85652f02c63ce55c72f4366a8bf6a48758cba00b /elf
parentc41c89d35db92458777bec25cf2037e3e91a96bb (diff)
downloadglibc-a881e0a074e448f282e44b1d172b46199697755b.tar.gz
glibc-a881e0a074e448f282e44b1d172b46199697755b.tar.xz
glibc-a881e0a074e448f282e44b1d172b46199697755b.zip
Update.
	* include/link.h (struct link_map): New bit field l_faked.
	* elf/dl-deps.c: Use l_faked field in struct link_map instead of
	the magic l_opencount==0.
	* elf/dl-load.c: Likewise.
	* elf/dl-version.c: Likewise.
	* elf/rtld.c: Likewise.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-deps.c4
-rw-r--r--elf/dl-load.c6
-rw-r--r--elf/dl-version.c5
-rw-r--r--elf/rtld.c4
4 files changed, 9 insertions, 10 deletions
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 566073eb7a..c4582926b8 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -495,7 +495,7 @@ _dl_map_object_deps (struct link_map *map,
 
   for (nlist = 0, runp = known; runp; runp = runp->unique)
     {
-      if (trace_mode && runp->map->l_opencount == 0)
+      if (trace_mode && runp->map->l_faked)
 	/* This can happen when we trace the loading.  */
 	--map->l_searchlist.r_nlist;
       else
@@ -516,7 +516,7 @@ _dl_map_object_deps (struct link_map *map,
       map->l_searchlist.r_duplist = map->l_searchlist.r_list + nlist;
 
       for (cnt = 0, runp = known; runp; runp = runp->dup)
-	if (trace_mode && runp->map->l_opencount == 0)
+	if (trace_mode && runp->map->l_faked)
 	  /* This can happen when we trace the loading.  */
 	  --map->l_searchlist.r_nduplist;
 	else
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 6f5f33657a..bb3a2e3187 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1679,10 +1679,10 @@ _dl_map_object (struct link_map *loader, const char *name, int preloaded,
 	      || (l = _dl_new_object (name_copy, name, type, loader)) == NULL)
 	    _dl_signal_error (ENOMEM, name,
 			      N_("cannot create shared object descriptor"));
-	  /* We use an opencount of 0 as a sign for the faked entry.
-	     Since the descriptor is initialized with zero we do not
+	  /* Signal that this is a faked entry.  */
+	  l->l_faked = 1;
+	  /* Since the descriptor is initialized with zero we do not
 	     have do this here.
-	  l->l_opencount = 0;
 	  l->l_reserved = 0; */
 	  l->l_buckets = &dummy_bucket;
 	  l->l_nbuckets = 1;
diff --git a/elf/dl-version.c b/elf/dl-version.c
index 504287c209..bb0fc71e9d 100644
--- a/elf/dl-version.c
+++ b/elf/dl-version.c
@@ -219,7 +219,7 @@ _dl_check_map_versions (struct link_map *map, int verbose, int trace_mode)
 	  /* Make sure this is no stub we created because of a missing
 	     dependency.  */
 	  if (__builtin_expect (! trace_mode, 1)
-	      || __builtin_expect (needed->l_opencount, 1) != 0)
+	      || ! __builtin_expect (needed->l_faked, 0))
 	    {
 	      /* NEEDED is the map for the file we need.  Now look for the
 		 dependency symbols.  */
@@ -375,8 +375,7 @@ _dl_check_all_versions (struct link_map *map, int verbose, int trace_mode)
   int result = 0;
 
   for (l = map; l != NULL; l = l->l_next)
-    result |= (l->l_opencount != 0
-	       && _dl_check_map_versions (l, verbose, trace_mode));
+    result |= ! l->l_faked && _dl_check_map_versions (l, verbose, trace_mode);
 
   return result;
 }
diff --git a/elf/rtld.c b/elf/rtld.c
index d17d83961d..ea5d7b5a3d 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -891,7 +891,7 @@ of this helper program; chances are you did not intend to run this program.\n\
 	  struct link_map *l;
 
 	  for (l = _dl_loaded->l_next; l; l = l->l_next)
-	    if (l->l_opencount == 0)
+	    if (l->l_faked)
 	      /* The library was not found.  */
 	      _dl_sysdep_message ("\t", l->l_libname->name, " => not found\n",
 				  NULL);
@@ -948,7 +948,7 @@ of this helper program; chances are you did not intend to run this program.\n\
 		l = l->l_next;
 	      do
 		{
-		  if (l != &_dl_rtld_map && l->l_opencount > 0)
+		  if (l != &_dl_rtld_map && ! l->l_faked)
 		    {
 		      args.l = l;
 		      _dl_receive_error (print_unresolved, relocate_doit,