diff options
author | Maciej W. Rozycki <macro@codesourcery.com> | 2013-06-26 19:14:29 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@codesourcery.com> | 2013-06-26 19:14:29 +0100 |
commit | b0037103771cc02e092884c39aa9e4982073099a (patch) | |
tree | 0d9b4bdc78f2da080b392248c06055844a1520d8 | |
parent | c18c701d030e28698e6faee9c6d3b8b80d0e2302 (diff) | |
download | glibc-b0037103771cc02e092884c39aa9e4982073099a.tar.gz glibc-b0037103771cc02e092884c39aa9e4982073099a.tar.xz glibc-b0037103771cc02e092884c39aa9e4982073099a.zip |
[BZ #15022] Avoid repeated calls to DL_STATIC_INIT for the same module.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | elf/dl-open.c | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 8bc2ddc26b..64f2fe37b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-06-26 Maciej W. Rozycki <macro@codesourcery.com> + + [BZ #15022] + * elf/dl-open.c (_dl_open) [!SHARED]: Move call to DL_STATIC_INIT + over to... + (dl_open_worker) [!SHARED]: ... here. + 2013-06-26 Ryan S. Arnold <rsa@linux.vnet.ibm.com> * elf/elf.h (AT_HWCAP2): Add a new a_type entry. 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; } |