diff options
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-deps.c | 4 | ||||
-rw-r--r-- | elf/dl-load.c | 6 | ||||
-rw-r--r-- | elf/dl-version.c | 5 | ||||
-rw-r--r-- | elf/rtld.c | 4 |
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, |