summaryrefslogtreecommitdiff
path: root/elf/dl-init.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-init.c')
-rw-r--r--elf/dl-init.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/elf/dl-init.c b/elf/dl-init.c
index 87c64d7eab..c2b96e8a7f 100644
--- a/elf/dl-init.c
+++ b/elf/dl-init.c
@@ -18,6 +18,9 @@
#include <stddef.h>
#include <ldsodefs.h>
+#ifdef ENABLE_RTLD_DB
+# include "dl-rtld_db.h"
+#endif
/* Type of the initializer. */
@@ -94,6 +97,10 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
ElfW(Dyn) *preinit_array_size = main_map->l_info[DT_PREINIT_ARRAYSZ];
unsigned int i;
+#ifdef ENABLE_RTLD_DB
+ rtld_db_event (RD_PREINIT, RD_NOSTATE);
+#endif
+
if (__builtin_expect (GL(dl_initfirst) != NULL, 0))
{
call_init (GL(dl_initfirst), argc, argv, env);
@@ -132,6 +139,10 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
while (i-- > 0)
call_init (main_map->l_initfini[i], argc, argv, env);
+#ifdef ENABLE_RTLD_DB
+ rtld_db_event (RD_POSTINIT, RD_NOSTATE);
+#endif
+
#ifndef HAVE_INLINED_SYSCALLS
/* Finished starting up. */
INTUSE(_dl_starting_up) = 0;