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/powerpc | |
parent | 1c09524e4db3efd797ebcfcd8241bdb78f0b06f0 (diff) | |
download | glibc-67c0579669ba1fc265d770252fab31babf887329.tar.gz glibc-67c0579669ba1fc265d770252fab31babf887329.tar.xz 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/powerpc')
-rw-r--r-- | sysdeps/powerpc/powerpc32/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/crti.S | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc32/crti.S b/sysdeps/powerpc/powerpc32/crti.S index a30e33a75e..e4ee8dd484 100644 --- a/sysdeps/powerpc/powerpc32/crti.S +++ b/sysdeps/powerpc/powerpc32/crti.S @@ -58,6 +58,7 @@ .section .init,"ax",@progbits .align 2 .globl _init + .hidden _init .type _init, @function _init: stwu r1, -16(r1) @@ -80,6 +81,7 @@ _init: .section .fini,"ax",@progbits .align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: stwu r1, -16(r1) diff --git a/sysdeps/powerpc/powerpc64/crti.S b/sysdeps/powerpc/powerpc64/crti.S index 61b1409a33..2242deb3dd 100644 --- a/sysdeps/powerpc/powerpc64/crti.S +++ b/sysdeps/powerpc/powerpc64/crti.S @@ -62,6 +62,7 @@ #endif .section ".init", "ax", @progbits ENTRY_2(_init) + .hidden _init .align ALIGNARG (2) BODY_LABEL (_init): LOCALENTRY(_init) @@ -80,6 +81,7 @@ BODY_LABEL (_init): .section ".fini", "ax", @progbits ENTRY_2(_fini) + .hidden _fini .align ALIGNARG (2) BODY_LABEL (_fini): LOCALENTRY(_fini) |