aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-close.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-08-25 16:48:42 +0000
committerUlrich Drepper <drepper@redhat.com>2000-08-25 16:48:42 +0000
commit7045878b042789db21af0c4f3254ce1a331420a8 (patch)
tree521f53faf21d17b0cd17006b43c8bcc3b8c3ecbb /elf/dl-close.c
parentb7fb789d886d1b1c9ce9c437b17b63b2e071bb06 (diff)
downloadglibc-7045878b042789db21af0c4f3254ce1a331420a8.zip
glibc-7045878b042789db21af0c4f3254ce1a331420a8.tar.gz
glibc-7045878b042789db21af0c4f3254ce1a331420a8.tar.bz2
Update.
* elf/dl-close.c (_dl_close): Don't run destructors of objects marked DF_1_NODELETE.
Diffstat (limited to 'elf/dl-close.c')
-rw-r--r--elf/dl-close.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/elf/dl-close.c b/elf/dl-close.c
index cbbb2ae..58a84b5 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -80,6 +80,7 @@ _dl_close (void *_map)
struct link_map *imap = map->l_initfini[i];
if (imap->l_opencount == 1 && imap->l_type == lt_loaded
&& (imap->l_info[DT_FINI] || imap->l_info[DT_FINI_ARRAY])
+ && ! (list[i]->l_flags_1 & DF_1_NODELETE)
/* Skip any half-cooked objects that were never initialized. */
&& imap->l_init_called)
{