2.5-18.1
[glibc.git] / fedora / glibc-rh234946.patch
blobadd3f8023f276e05b00095a63f99efdbafae5a16
1 2006-12-25 Sripathi Kodi <sripathik@in.ibm.com>
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.
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)
11 l = maps[i];
13 - if (l->l_init_called)
14 + if (l->l_init_called && !l->l_fini_called)
16 /* Make sure nothing happens if we are called twice. */
17 - l->l_init_called = 0;
18 + l->l_fini_called = 1;
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 */
31 /* Array with version names. */
32 unsigned int l_nversions;