* elf/rtld.c (dl_main): Don't call init_tls more than once.
authorjakub <jakub>
Sat, 7 Jul 2007 17:21:48 +0000 (17:21 +0000)
committerjakub <jakub>
Sat, 7 Jul 2007 17:21:48 +0000 (17:21 +0000)
ChangeLog
elf/rtld.c

index ba9f846..96f9bf0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf/rtld.c (dl_main): Don't call init_tls more than once.
+
 2007-06-19  Ulrich Drepper  <drepper@redhat.com>
 
        * elf/dl-close.c (free_mem): Free _dl_scope_free_list.
index c57ef17..7612a69 100644 (file)
@@ -1400,6 +1400,11 @@ of this helper program; chances are you did not intend to run this program.\n\
       /* Iterate over all entries in the list.  The order is important.  */
       struct audit_ifaces *last_audit = NULL;
       struct audit_list *al = audit_list->next;
+
+      /* Since we start using the auditing DSOs right away we need to
+        initialize the data structures now.  */
+      tcbp = init_tls ();
+
       do
        {
          int tls_idx = GL(dl_tls_max_dtv_idx);
@@ -1409,11 +1414,6 @@ of this helper program; chances are you did not intend to run this program.\n\
             always allocate the static block, we never defer it even if
             no DF_STATIC_TLS bit is set.  The reason is that we know
             glibc will use the static model.  */
-
-         /* Since we start using the auditing DSOs right away we need to
-            initialize the data structures now.  */
-         tcbp = init_tls ();
-
          struct dlmopen_args dlmargs;
          dlmargs.fname = al->name;
          dlmargs.map = NULL;