aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-06-30 08:26:20 +0000
committerUlrich Drepper <drepper@redhat.com>2002-06-30 08:26:20 +0000
commit0b5045fe2ca948f22517c4b8146c11e05f9c144e (patch)
treea56cccc07b4bc8beb087646960d343d02c09da69
parent6d78cd000fac9854c589ef98a00227de5d1be610 (diff)
downloadglibc-0b5045fe2ca948f22517c4b8146c11e05f9c144e.tar
glibc-0b5045fe2ca948f22517c4b8146c11e05f9c144e.tar.gz
glibc-0b5045fe2ca948f22517c4b8146c11e05f9c144e.tar.bz2
glibc-0b5045fe2ca948f22517c4b8146c11e05f9c144e.zip
Update.
2002-05-28 H.J. Lu <hjl@gnu.org> * elf/dl-deps.c (_dl_map_object_deps): Don't add objects which are not dlopened on the dependency list of a dlopened object.
-rw-r--r--ChangeLog5
-rw-r--r--elf/dl-deps.c4
-rw-r--r--elf/dl-lookup.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b8b3a27adb..68527603e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-05-28 H.J. Lu <hjl@gnu.org>
+
+ * elf/dl-deps.c (_dl_map_object_deps): Don't add objects which
+ are not dlopened on the dependency list of a dlopened object.
+
2002-06-30 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c (add_dependency): It is not necessary to add
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 9fd2dd23ef..7842013c92 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -254,6 +254,10 @@ _dl_map_object_deps (struct link_map *map,
else
dep = args.aux;
+ /* Skip those are not dlopened if we are dlopened. */
+ if (map->l_type == lt_loaded && dep->l_type != lt_loaded)
+ continue;
+
if (! dep->l_reserved)
{
/* Allocate new entry. */
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 773f73df9b..6f14aaf498 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -158,7 +158,7 @@ add_dependency (struct link_map *undef_map, struct link_map *map)
referenced object and don't record the dependencies. This
means this increment can never be reverted and the object
will never be unloaded. This is semantically the correct
- behaviour. */
+ behavior. */
if (__builtin_expect (act < undef_map->l_reldepsmax, 1))
undef_map->l_reldeps[undef_map->l_reldepsact++] = map;