diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-06-08 10:28:38 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-06-08 10:28:52 -0700 |
commit | 67c0579669ba1fc265d770252fab31babf887329 (patch) | |
tree | 34059924ead164f11bc21fd73ccab758153bd9f7 /sysdeps/sh | |
parent | 1c09524e4db3efd797ebcfcd8241bdb78f0b06f0 (diff) | |
download | glibc-67c0579669ba1fc265d770252fab31babf887329.tar glibc-67c0579669ba1fc265d770252fab31babf887329.tar.gz glibc-67c0579669ba1fc265d770252fab31babf887329.tar.bz2 glibc-67c0579669ba1fc265d770252fab31babf887329.zip |
Mark _init and _fini as hidden [BZ #23145]
_init and _fini are special functions provided by glibc for linker to
define DT_INIT and DT_FINI in executable and shared library. They
should never be put in dynamic symbol table. This patch marks them as
hidden to remove them from dynamic symbol table.
Tested with build-many-glibcs.py.
[BZ #23145]
* elf/Makefile (tests-special): Add $(objpfx)check-initfini.out.
($(all-built-dso:=.dynsym): New target.
(common-generated): Add $(all-built-dso:$(common-objpfx)%=%.dynsym).
($(objpfx)check-initfini.out): New target.
(generated): Add check-initfini.out.
* scripts/check-initfini.awk: New file.
* sysdeps/aarch64/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/alpha/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/arm/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/hppa/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/i386/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/ia64/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/m68k/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/microblaze/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/mips/mips32/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/mips/mips64/n32/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/mips/mips64/n64/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/nios2/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/powerpc/powerpc32/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/powerpc/powerpc64/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/s390/s390-32/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/s390/s390-64/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/sh/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/sparc/crti.S (_init): Mark as hidden.
(_fini): Likewise.
* sysdeps/x86_64/crti.S (_init): Mark as hidden.
(_fini): Likewise.
Diffstat (limited to 'sysdeps/sh')
-rw-r--r-- | sysdeps/sh/crti.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/sh/crti.S b/sysdeps/sh/crti.S index 48f04a48b6..c0707406f5 100644 --- a/sysdeps/sh/crti.S +++ b/sysdeps/sh/crti.S @@ -58,6 +58,7 @@ .section .init,"ax",@progbits .align 5 .global _init + .hidden _init .type _init, @function _init: mov.l r12,@-r15 @@ -103,6 +104,7 @@ _init: .section .fini,"ax",@progbits .align 5 .global _fini + .hidden _fini .type _fini, @function _fini: mov.l r12,@-r15 |