[BZ #15022] Avoid repeated calls to DL_STATIC_INIT for the same module.
authorMaciej W. Rozycki <macro@codesourcery.com>
Wed, 26 Jun 2013 18:14:29 +0000 (19:14 +0100)
committerMaciej W. Rozycki <macro@codesourcery.com>
Wed, 26 Jun 2013 18:14:29 +0000 (19:14 +0100)
ChangeLog
elf/dl-open.c

index 8bc2ddc..64f2fe3 100644 (file)
--- 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.
index 0f054bf..15221c8 100644 (file)
@@ -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;
 }