summary refs log tree commit diff
path: root/elf/dl-open.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-open.c')
-rw-r--r--elf/dl-open.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 60a8f1ad5b..b07ede15fc 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -88,6 +88,7 @@ dl_open_worker (void *a)
   struct link_map *new, *l;
   const char *dst;
   int lazy;
+  unsigned int i;
 
   /* Maybe we have to expand a DST.  */
   dst = strchr (file, '$');
@@ -163,7 +164,9 @@ dl_open_worker (void *a)
   _dl_map_object_deps (new, NULL, 0, 0);
 
   /* So far, so good.  Now check the versions.  */
-  (void) _dl_check_all_versions (new, 0, 0);
+  for (i = 0; i < new->l_searchlist.r_nlist; ++i)
+    if (new->l_searchlist.r_list[i]->l_versions == NULL)
+      (void) _dl_check_map_versions (new->l_searchlist.r_list[i], 0, 0);
 
 #ifdef SCOPE_DEBUG
   show_scope (new);