diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-09-08 17:45:32 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-09-08 17:45:32 +0000 |
commit | 84aafa9199e43623f55800898f9364e839525cdf (patch) | |
tree | 767e4b24a42ee58d7f7f69e5471464f28d4a0398 /elf | |
parent | c4bb124a75b23d1a82cee232005dc7e8c43a4276 (diff) | |
download | glibc-84aafa9199e43623f55800898f9364e839525cdf.zip glibc-84aafa9199e43623f55800898f9364e839525cdf.tar.gz glibc-84aafa9199e43623f55800898f9364e839525cdf.tar.bz2 |
Update.
2001-09-07 Tom Rix <trix@redhat.com>
* sysdeps/unix/sysv/aix/sysv_termio.h: New file.
2001-08-26 Tom Rix <trix@redhat.com>
* sysdeps/unix/sysv/aix/Makefile (aix-syscalls.o): More linker
command line options.
* sysdeps/unix/sysv/aix/start.s: New file, rework of start.c
* sysdeps/unix/sysv/aix/start.c: Removed.
* sysdeps/unix/sysv/aix/start-libc.c: New file.
* sysdeps/unix/sysv/aix/init-first.c: New file.
* sysdeps/unix/sysv/aix/fcntl.c: Alias __libc_fcntl to __fcntl.
2001-09-08 Ben Collins <bcollins@debian.org>
* sysdeps/arm/dl-machine.h: Fix usage of new _dl_signal_error() format.
* sysdeps/generic/dl-machine.h: Likewise.
* sysdeps/hppa/dl-fptr.c: Likewise.
* sysdeps/ia64/dl-fptr.c: Likewise.
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
* sysdeps/mips/dl-machine.h: Likewise.
* sysdeps/mips/mips64/dl-machine.h: Likewise.
* sysdeps/powerpc/dl-machine.c: Likewise.
2001-09-07 Ben Collins <bcollins@debian.org>
* sysdeps/sparc/sparc32/dl-machine.h: Fix typo.
* sysdeps/hppa/dl-lookupcfg.h: Forward declare struct link_map.
* elf/dl-lookup.c (add_dependency): Bump l_opencount of all
dependencies if necessary.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-lookup.c | 11 | ||||
-rw-r--r-- | elf/reldep2.c | 4 |
2 files changed, 11 insertions, 4 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index 26c839c..5fa50fc 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -151,8 +151,15 @@ add_dependency (struct link_map *undef_map, struct link_map *map) if (__builtin_expect (act < undef_map->l_reldepsmax, 1)) undef_map->l_reldeps[undef_map->l_reldepsact++] = map; - /* And increment the counter in the referenced object. */ - ++map->l_opencount; + if (map->l_searchlist.r_list != NULL) + /* And increment the counter in the referenced object. */ + ++map->l_opencount; + else + /* We have to bump the counts for all dependencies since so far + this object was only a normal or transitive dependency. + Now it might be closed with _dl_close() directly. */ + for (list = map->l_initfini; *list != NULL; ++list) + ++(*list)->l_opencount; /* Display information if we are debugging. */ if (__builtin_expect (_dl_debug_mask & DL_DEBUG_FILES, 0)) diff --git a/elf/reldep2.c b/elf/reldep2.c index aadb0cb..ba5ab22 100644 --- a/elf/reldep2.c +++ b/elf/reldep2.c @@ -53,8 +53,8 @@ main (void) exit (1); } - /* Now close the first object. If must still be around since we have - a implicit dependency. */ + /* Now close the first object. It must still be around since we have + an implicit dependency. */ if (dlclose (h1) != 0) { printf ("closing h1 failed: %s\n", dlerror ()); |