diff options
author | Roland McGrath <roland@hack.frob.com> | 2012-08-21 15:01:27 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2012-08-21 15:01:27 -0700 |
commit | 21ad055803de5dd03606588753c46fbf8a5863b2 (patch) | |
tree | cb9f135af9ffea2cb34ffd07f5d77daba060e141 /csu/elf-init.c | |
parent | 0e1d99119e7851c112aefce64574506f8183e648 (diff) | |
download | glibc-21ad055803de5dd03606588753c46fbf8a5863b2.tar glibc-21ad055803de5dd03606588753c46fbf8a5863b2.tar.gz glibc-21ad055803de5dd03606588753c46fbf8a5863b2.tar.bz2 glibc-21ad055803de5dd03606588753c46fbf8a5863b2.zip |
Support static IFUNC calls irrespective of USE_MULTIARCH.
Diffstat (limited to 'csu/elf-init.c')
-rw-r--r-- | csu/elf-init.c | 45 |
1 files changed, 2 insertions, 43 deletions
diff --git a/csu/elf-init.c b/csu/elf-init.c index 91ba74ce55..8b4431ba0c 100644 --- a/csu/elf-init.c +++ b/csu/elf-init.c @@ -1,6 +1,5 @@ /* Startup support for ELF initializers/finalizers in the main executable. - Copyright (C) 2002,2003,2004,2005,2009,2011 - Free Software Foundation, Inc. + Copyright (C) 2002-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -36,20 +35,6 @@ #include <stddef.h> -#if defined USE_MULTIARCH && !defined LIBC_NONSHARED -# include <link.h> -# include <dl-irel.h> - -# ifdef ELF_MACHINE_IRELA -extern const ElfW(Rela) __rela_iplt_start []; -extern const ElfW(Rela) __rela_iplt_end []; -# endif - -# ifdef ELF_MACHINE_IREL -extern const ElfW(Rel) __rel_iplt_start []; -extern const ElfW(Rel) __rel_iplt_end []; -# endif -#endif /* LIBC_NONSHARED */ /* These magic symbols are provided by the linker. */ extern void (*__preinit_array_start []) (int, char **, char **) @@ -72,33 +57,7 @@ extern void _fini (void); /* These functions are passed to __libc_start_main by the startup code. These get statically linked into each program. For dynamically linked programs, this module will come from libc_nonshared.a and differs from - the libc.a module in that it doesn't call the preinit array and performs - explicit IREL{,A} relocations. */ - - -#ifndef LIBC_NONSHARED -void -__libc_csu_irel (void) -{ -# ifdef USE_MULTIARCH -# ifdef ELF_MACHINE_IRELA - { - const size_t size = __rela_iplt_end - __rela_iplt_start; - for (size_t i = 0; i < size; i++) - elf_irela (&__rela_iplt_start [i]); - } -# endif - -# ifdef ELF_MACHINE_IREL - { - const size_t size = __rel_iplt_end - __rel_iplt_start; - for (size_t i = 0; i < size; i++) - elf_irel (&__rel_iplt_start [i]); - } -# endif -# endif -} -#endif + the libc.a module in that it doesn't call the preinit array. */ void |