diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-11-26 07:15:17 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-11-26 07:15:17 +0000 |
commit | 6def43e690998a18fabc938b2924bc3af3231426 (patch) | |
tree | 45d8f342aff86a54a7c05d166a1f97fdad792708 | |
parent | 0135bde4325a7d2888a4df993252953bd5e2b78c (diff) | |
download | glibc-6def43e690998a18fabc938b2924bc3af3231426.tar glibc-6def43e690998a18fabc938b2924bc3af3231426.tar.gz glibc-6def43e690998a18fabc938b2924bc3af3231426.tar.bz2 glibc-6def43e690998a18fabc938b2924bc3af3231426.zip |
Update.
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.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | elf/soinit.c | 9 |
2 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,8 @@ +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. + 2003-11-25 Ulrich Drepper <drepper@redhat.com> * sysdeps/i386/fpu/bits/mathinline.h: Introduce __libc_sqrtl symbol. diff --git a/elf/soinit.c b/elf/soinit.c index 32ed4454b5..2015ea2d66 100644 --- a/elf/soinit.c +++ b/elf/soinit.c @@ -78,9 +78,14 @@ __libc_global_ctors (void) /* 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. */ void _fini (void) +#else +void +__libc_fini (void) +#endif { /* Call destructor functions. */ run_hooks (__DTOR_LIST__); @@ -96,3 +101,7 @@ _fini (void) # endif #endif } +#ifdef HAVE_INITFINI_ARRAY +void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) + = &__libc_fini; +#endif |