This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
OK, so I found yet another place where things were being put in the
.fini section (which causes unwind problems). The patch below
fixes soinit.c so it puts _fini() in the .fini_array section if
it's available. If it looks fine, please apply.
Thanks,
--david
ChangeLog
2003-11-21 David Mosberger <davidm@hpl.hp.com>
* elf/soinit.c (_fini): Put _fini() in .init_array section if
HAVE_INITFINI_ARRAY is defined.
Index: elf/soinit.c
===================================================================
RCS file: /cvs/glibc/libc/elf/soinit.c,v
retrieving revision 1.10
diff -u -r1.10 soinit.c
--- elf/soinit.c 16 Nov 2001 01:05:54 -0000 1.10
+++ elf/soinit.c 22 Nov 2003 02:57:12 -0000
@@ -78,7 +78,9 @@
/* This function becomes the DT_FINI termination function
for the C library. */
+#ifndef HAVE_INITFINI_ARRAY
void _fini (void) __attribute__ ((section (".fini"))); /* Just for kicks. */
+#endif
void
_fini (void)
{
@@ -96,3 +98,6 @@
# endif
#endif
}
+#ifdef HAVE_INITFINI_ARRAY
+void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) = &_fini;
+#endif
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |