about summary refs log tree commit diff
path: root/elf/dl-init.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2023-10-18 14:31:02 +0200
committerFlorian Weimer <fweimer@redhat.com>2023-10-18 14:31:02 +0200
commitdc3b5b9048d342b5b779683dff018ac3bd14a17b (patch)
tree5f76c4cfc2853ec6bc917fbfaf0d50b9a287e249 /elf/dl-init.c
parentad96b5532570a6782f784b4f2c6aa2a52359144d (diff)
downloadglibc-dc3b5b9048d342b5b779683dff018ac3bd14a17b.tar.gz
glibc-dc3b5b9048d342b5b779683dff018ac3bd14a17b.tar.xz
glibc-dc3b5b9048d342b5b779683dff018ac3bd14a17b.zip
Revert "elf: Always call destructors in reverse constructor order (bug 30785)"
This reverts commit 5d83a52a4905405792418d6a0f3afa3601a98c37.

Reason for revert: Incompatibility with existing applications.
Diffstat (limited to 'elf/dl-init.c')
-rw-r--r--elf/dl-init.c16
1 files changed, 0 insertions, 16 deletions
diff --git a/elf/dl-init.c b/elf/dl-init.c
index 77b2edd838..fca8e3a05e 100644
--- a/elf/dl-init.c
+++ b/elf/dl-init.c
@@ -21,7 +21,6 @@
 #include <ldsodefs.h>
 #include <elf-initfini.h>
 
-struct link_map *_dl_init_called_list;
 
 static void
 call_init (struct link_map *l, int argc, char **argv, char **env)
@@ -43,21 +42,6 @@ call_init (struct link_map *l, int argc, char **argv, char **env)
      dependency.  */
   l->l_init_called = 1;
 
-  /* Help an already-running dlclose: The just-loaded object must not
-     be removed during the current pass.  (No effect if no dlclose in
-     progress.)  */
-  l->l_map_used = 1;
-
-  /* Record execution before starting any initializers.  This way, if
-     the initializers themselves call dlopen, their ELF destructors
-     will eventually be run before this object is destructed, matching
-     that their ELF constructors have run before this object was
-     constructed.  _dl_fini uses this list for audit callbacks, so
-     register objects on the list even if they do not have a
-     constructor.  */
-  l->l_init_called_next = _dl_init_called_list;
-  _dl_init_called_list = l;
-
   /* Check for object which constructors we do not run here.  */
   if (__builtin_expect (l->l_name[0], 'a') == '\0'
       && l->l_type == lt_executable)