diff options
author | Florian Weimer <fweimer@redhat.com> | 2020-05-18 14:56:26 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2020-05-18 15:39:34 +0200 |
commit | ce12fc711387375d0248ab3ff9084fb958c43bc6 (patch) | |
tree | 209238fe57d7638b79a7c112fe8c2192256e0324 /elf/soinit.c | |
parent | 7b5bfe77836442b9aeb75cc520f0d1eb7f82be67 (diff) | |
download | glibc-ce12fc711387375d0248ab3ff9084fb958c43bc6.tar.gz glibc-ce12fc711387375d0248ab3ff9084fb958c43bc6.tar.xz glibc-ce12fc711387375d0248ab3ff9084fb958c43bc6.zip |
Remove NO_CTORS_DTORS_SECTIONS macro
This was originally added to support binutils older than version 2.22: <https://sourceware.org/ml/libc-alpha/2010-12/msg00051.html> Since 2.22 is older than the minimum required binutils version for building glibc, we no longer need this. (The changes do not impact the statically linked startup code.)
Diffstat (limited to 'elf/soinit.c')
-rw-r--r-- | elf/soinit.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/elf/soinit.c b/elf/soinit.c deleted file mode 100644 index 538eb68186..0000000000 --- a/elf/soinit.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Initializer module for building the ELF shared C library. This file and - sofini.c do the work normally done by crtbeginS.o and crtendS.o, to wrap - the `.ctors' and `.dtors' sections so the lists are terminated, and - calling those lists of functions. */ - -#ifndef NO_CTORS_DTORS_SECTIONS -# include <stdlib.h> - -static void (*const __CTOR_LIST__[1]) (void) - __attribute__ ((used, section (".ctors"))) - = { (void (*) (void)) -1 }; -static void (*const __DTOR_LIST__[1]) (void) - __attribute__ ((used, section (".dtors"))) - = { (void (*) (void)) -1 }; - -static inline void -run_hooks (void (*const list[]) (void)) -{ - while (*++list) - (**list) (); -} - -/* This function will be called from _init_first in init-first.c. */ -void -__libc_global_ctors (void) -{ - /* Call constructor functions. */ - run_hooks (__CTOR_LIST__); -} - - -/* This function becomes the DT_FINI termination function - for the C library. */ -void -__libc_fini (void) -{ - /* Call destructor functions. */ - run_hooks (__DTOR_LIST__); -} - -void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) - = &__libc_fini; -#endif |