diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-06-30 07:17:02 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-06-30 07:17:02 +0000 |
commit | 6d78cd000fac9854c589ef98a00227de5d1be610 (patch) | |
tree | 05be7d53d1a1dad7f995448640a3a96626dd3129 /elf/dl-lookup.c | |
parent | 95fdc6a0f61a389e92a6b84250c2286b4808b626 (diff) | |
download | glibc-6d78cd000fac9854c589ef98a00227de5d1be610.tar.gz glibc-6d78cd000fac9854c589ef98a00227de5d1be610.tar.xz glibc-6d78cd000fac9854c589ef98a00227de5d1be610.zip |
Update.
2002-06-30 Ulrich Drepper <drepper@redhat.com> * elf/dl-lookup.c (add_dependency): It is not necessary to add dependencies if they are created between objects which are created while processing RTLD_NOW for objects loaded as part of the same dlopen call. 2002-06-14 H.J. Lu <hjl@gnu.org> * elf/Makefile (tests): Add circleload1. (modules-names): Add circlemod1, circlemod2, circlemod3, circlemod1a, circlemod2a and circlemod3a. ($(objpfx)circleload1): New target. ($(objpfx)circleload1.out): Likewise. ($(objpfx)circlemod1.so): Likewise. ($(objpfx)circlemod2.so): Likewise. ($(objpfx)circlemod1a.so): Likewise. ($(objpfx)circlemod2a.so): Likewise. * elf/circleload1.c: New file. * elf/circlemod1.c: New file. * elf/circlemod1a.c: New file. * elf/circlemod2.c: New file. * elf/circlemod2a.c: New file. * elf/circlemod3.c: New file. * elf/circlemod3a.c: New file.
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r-- | elf/dl-lookup.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index b21eeb097a..773f73df9b 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -94,6 +94,11 @@ add_dependency (struct link_map *undef_map, struct link_map *map) if (undef_map == map) return 0; + /* Don't create cross-reference between modules which are + dynamically loaded by the same dlopen() call. */ + if (undef_map->l_opencount == 0 && map->l_opencount == 0) + return 0; + /* Make sure nobody can unload the object while we are at it. */ __libc_lock_lock_recursive (GL(dl_load_lock)); |