aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-open.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@codesourcery.com>2013-06-26 19:14:29 +0100
committerMaciej W. Rozycki <macro@codesourcery.com>2013-06-26 19:14:29 +0100
commitb0037103771cc02e092884c39aa9e4982073099a (patch)
tree0d9b4bdc78f2da080b392248c06055844a1520d8 /elf/dl-open.c
parentc18c701d030e28698e6faee9c6d3b8b80d0e2302 (diff)
downloadglibc-b0037103771cc02e092884c39aa9e4982073099a.tar
glibc-b0037103771cc02e092884c39aa9e4982073099a.tar.gz
glibc-b0037103771cc02e092884c39aa9e4982073099a.tar.bz2
glibc-b0037103771cc02e092884c39aa9e4982073099a.zip
[BZ #15022] Avoid repeated calls to DL_STATIC_INIT for the same module.
Diffstat (limited to 'elf/dl-open.c')
-rw-r--r--elf/dl-open.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 0f054bfca2..15221c8d57 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -568,6 +568,10 @@ cannot load any more object with static TLS"));
if (relocation_in_progress)
LIBC_PROBE (reloc_complete, 3, args->nsid, r, new);
+#ifndef SHARED
+ DL_STATIC_INIT (new);
+#endif
+
/* Run the initializer functions of new objects. */
_dl_init (new, args->argc, args->argv, args->env);
@@ -721,10 +725,6 @@ no more namespaces available for dlmopen()"));
/* Release the lock. */
__rtld_lock_unlock_recursive (GL(dl_load_lock));
-#ifndef SHARED
- DL_STATIC_INIT (args.map);
-#endif
-
return args.map;
}