diff options
Diffstat (limited to 'elf/dl-init.c')
-rw-r--r-- | elf/dl-init.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/elf/dl-init.c b/elf/dl-init.c index 55d528c..1234611 100644 --- a/elf/dl-init.c +++ b/elf/dl-init.c @@ -18,6 +18,7 @@ #include <stddef.h> #include <ldsodefs.h> +#include <elf-initfini.h> /* Type of the initializer. */ @@ -40,11 +41,6 @@ call_init (struct link_map *l, int argc, char **argv, char **env) && l->l_type == lt_executable) return; - /* Are there any constructors? */ - if (l->l_info[DT_INIT] == NULL - && __builtin_expect (l->l_info[DT_INIT_ARRAY] == NULL, 1)) - return; - /* Print a debug message if wanted. */ if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS)) _dl_debug_printf ("\ncalling init: %s\n\n", @@ -54,7 +50,7 @@ call_init (struct link_map *l, int argc, char **argv, char **env) - the one named by DT_INIT - the others in the DT_INIT_ARRAY. */ - if (l->l_info[DT_INIT] != NULL) + if (ELF_INITFINI && l->l_info[DT_INIT] != NULL) DL_CALL_DT_INIT(l, l->l_addr + l->l_info[DT_INIT]->d_un.d_ptr, argc, argv, env); /* Next see whether there is an array with initialization functions. */ |