2.5-18.1
[jlayton/glibc.git] / fedora / glibc-rh234946.patch
1 2006-12-25  Sripathi Kodi  <sripathik@in.ibm.com>
2
3         * include/link.h: Declare new flag l_fini_called in struct link_map.
4         * elf/dl-fini.c: In _dl_fini, set l_fini_called to 1 instead of 
5         l_init_called to 0.
6
7 --- libc/elf/dl-fini.c  2006-12-22 01:54:22.000000000 -0600
8 +++ libc/elf/dl-fini.c  2006-12-24 22:51:52.000000000 -0600
9 @@ -215,10 +215,10 @@ _dl_fini (void)
10         {
11           l = maps[i];
12  
13 -         if (l->l_init_called)
14 +         if (l->l_init_called && !l->l_fini_called)
15             {
16               /* Make sure nothing happens if we are called twice.  */
17 -             l->l_init_called = 0;
18 +             l->l_fini_called = 1;
19  
20               /* Is there a destructor function?  */
21               if (l->l_info[DT_FINI_ARRAY] != NULL
22 --- libc/include/link.h 2006-12-22 01:54:22.000000000 -0600
23 +++ libc/include/link.h 2006-12-24 22:53:29.000000000 -0600
24 @@ -185,6 +185,8 @@ struct link_map
25      unsigned int l_contiguous:1; /* Nonzero if inter-segment holes are
26                                     mprotected or if no holes are present at
27                                     all.  */
28 +    unsigned int l_fini_called:1; /* Nonzero if _dl_fini has processed
29 +                                    this object */
30  
31      /* Array with version names.  */
32      unsigned int l_nversions;