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 | |
parent | 1c09524e4db3efd797ebcfcd8241bdb78f0b06f0 (diff) | |
download | glibc-67c0579669ba1fc265d770252fab31babf887329.zip glibc-67c0579669ba1fc265d770252fab31babf887329.tar.gz glibc-67c0579669ba1fc265d770252fab31babf887329.tar.bz2 |
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')
-rw-r--r-- | sysdeps/aarch64/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/alpha/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/arm/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/hppa/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/i386/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/ia64/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/m68k/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/microblaze/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/mips/mips32/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/mips/mips64/n32/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/mips/mips64/n64/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/nios2/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/s390/s390-32/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/s390/s390-64/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/sh/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/sparc/crti.S | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/crti.S | 2 |
19 files changed, 38 insertions, 0 deletions
diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S index 366b837..2b21375 100644 --- a/sysdeps/aarch64/crti.S +++ b/sysdeps/aarch64/crti.S @@ -72,6 +72,7 @@ call_weak_fn: .section .init,"ax",%progbits .align 2 .global _init + .hidden _init .type _init, %function _init: stp x29, x30, [sp, -16]! @@ -85,6 +86,7 @@ _init: .section .fini,"ax",%progbits .align 2 .global _fini + .hidden _fini .type _fini, %function _fini: stp x29, x30, [sp, -16]! diff --git a/sysdeps/alpha/crti.S b/sysdeps/alpha/crti.S index b00ae20..bcce1e9 100644 --- a/sysdeps/alpha/crti.S +++ b/sysdeps/alpha/crti.S @@ -67,6 +67,7 @@ .section .init, "ax", @progbits .globl _init + .hidden _init .type _init, @function .usepv _init, std _init: @@ -89,6 +90,7 @@ _init: .section .fini, "ax", @progbits .globl _fini + .hidden _fini .type _fini,@function .usepv _fini,std _fini: diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S index e645d46..a1424d0 100644 --- a/sysdeps/arm/crti.S +++ b/sysdeps/arm/crti.S @@ -78,6 +78,7 @@ call_weak_fn: .section .init,"ax",%progbits .p2align 2 .globl _init + .hidden _init .type _init, %function _init: push {r3, lr} @@ -90,6 +91,7 @@ _init: .section .fini,"ax",%progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, %function _fini: push {r3, lr} diff --git a/sysdeps/hppa/crti.S b/sysdeps/hppa/crti.S index 4566d9f..28550e5 100644 --- a/sysdeps/hppa/crti.S +++ b/sysdeps/hppa/crti.S @@ -142,6 +142,7 @@ gmon_initializer: .section .init, "ax", %progbits .align 4 .globl _init + .hidden _init .type _init,@function _init: stw %rp,-20(%sp) @@ -152,6 +153,7 @@ _init: .section .fini,"ax",%progbits .align 4 .globl _fini + .hidden _fini .type _fini,@function _fini: stw %rp,-20(%sp) diff --git a/sysdeps/i386/crti.S b/sysdeps/i386/crti.S index 065460b..ffbc92c 100644 --- a/sysdeps/i386/crti.S +++ b/sysdeps/i386/crti.S @@ -58,6 +58,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: pushl %ebx @@ -77,6 +78,7 @@ _init: .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: pushl %ebx diff --git a/sysdeps/ia64/crti.S b/sysdeps/ia64/crti.S index 867683b..c46e297 100644 --- a/sysdeps/ia64/crti.S +++ b/sysdeps/ia64/crti.S @@ -129,6 +129,7 @@ gmon_initializer: .section .init,"ax",@progbits .global _init# + .hidden _init# .proc _init# _init: .prologue @@ -145,6 +146,7 @@ _init: .section .fini,"ax",@progbits .global _fini# + .hidden _fini# .proc _fini# _fini: .prologue diff --git a/sysdeps/m68k/crti.S b/sysdeps/m68k/crti.S index b810763..e5f2157 100644 --- a/sysdeps/m68k/crti.S +++ b/sysdeps/m68k/crti.S @@ -58,6 +58,7 @@ .section .init,"ax",@progbits .align 2 .globl _init + .hidden _init .type _init, @function _init: link.w %fp, #0 @@ -75,6 +76,7 @@ _init: .section .fini,"ax",@progbits .align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: link.w %fp, #0 diff --git a/sysdeps/microblaze/crti.S b/sysdeps/microblaze/crti.S index c407487..09c8cd7 100644 --- a/sysdeps/microblaze/crti.S +++ b/sysdeps/microblaze/crti.S @@ -58,6 +58,7 @@ .section .init,"ax",@progbits .align 2 .globl _init + .hidden _init .type _init, @function _init: addik r1,r1,-32 @@ -79,6 +80,7 @@ $Lno_weak_fn: .section .fini,"ax",@progbits .align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: addik r1,r1,-32 diff --git a/sysdeps/mips/mips32/crti.S b/sysdeps/mips/mips32/crti.S index 139f8bb..b3e1c4e 100644 --- a/sysdeps/mips/mips32/crti.S +++ b/sysdeps/mips/mips32/crti.S @@ -65,6 +65,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: .set noreorder @@ -90,6 +91,7 @@ _init: .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: .set noreorder diff --git a/sysdeps/mips/mips64/n32/crti.S b/sysdeps/mips/mips64/n32/crti.S index 23ad90b..59a09d5 100644 --- a/sysdeps/mips/mips64/n32/crti.S +++ b/sysdeps/mips/mips64/n32/crti.S @@ -65,6 +65,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: addiu $sp,$sp,-16 @@ -90,6 +91,7 @@ _init: .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: addiu $sp,$sp,-16 diff --git a/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S index 24b47b5..fd468f0 100644 --- a/sysdeps/mips/mips64/n64/crti.S +++ b/sysdeps/mips/mips64/n64/crti.S @@ -65,6 +65,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: daddiu $sp,$sp,-16 @@ -90,6 +91,7 @@ _init: .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: daddiu $sp,$sp,-16 diff --git a/sysdeps/nios2/crti.S b/sysdeps/nios2/crti.S index a3b42a4..46ab896 100644 --- a/sysdeps/nios2/crti.S +++ b/sysdeps/nios2/crti.S @@ -57,6 +57,7 @@ .section .init,"ax",@progbits .align 2 .global _init + .hidden _init .type _init, @function _init: addi sp, sp, -8 @@ -84,6 +85,7 @@ _init: .section .fini,"ax",@progbits .align 2 .global _fini + .hidden _fini .type _fini, @function _fini: addi sp, sp, -8 diff --git a/sysdeps/powerpc/powerpc32/crti.S b/sysdeps/powerpc/powerpc32/crti.S index a30e33a..e4ee8dd 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 61b1409..2242deb 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) diff --git a/sysdeps/s390/s390-32/crti.S b/sysdeps/s390/s390-32/crti.S index cb0c967..44b1a70 100644 --- a/sysdeps/s390/s390-32/crti.S +++ b/sysdeps/s390/s390-32/crti.S @@ -57,6 +57,7 @@ .section .init,"ax",@progbits .globl _init + .hidden _init .type _init,@function .align 4 _init: @@ -88,6 +89,7 @@ _init: .section .fini,"ax",@progbits .globl _fini + .hidden _fini .type _fini,@function .align 4 _fini: diff --git a/sysdeps/s390/s390-64/crti.S b/sysdeps/s390/s390-64/crti.S index 613bac2..f676eb52 100644 --- a/sysdeps/s390/s390-64/crti.S +++ b/sysdeps/s390/s390-64/crti.S @@ -59,6 +59,7 @@ .section .init,"ax",@progbits .align 4 .globl _init + .hidden _init .type _init,@function _init: stmg %r6,%r15,48(%r15) @@ -81,6 +82,7 @@ _init: .section .fini,"ax",@progbits .align 4 .globl _fini + .hidden _fini .type _fini,@function _fini: stmg %r6,%r15,48(%r15) diff --git a/sysdeps/sh/crti.S b/sysdeps/sh/crti.S index 48f04a4..c070740 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 diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S index 69aabe7..a7d1a08 100644 --- a/sysdeps/sparc/crti.S +++ b/sysdeps/sparc/crti.S @@ -66,6 +66,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: save %sp, -STACKFRAME_SIZE, %sp @@ -88,6 +89,7 @@ _init: .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: save %sp, -STACKFRAME_SIZE, %sp diff --git a/sysdeps/x86_64/crti.S b/sysdeps/x86_64/crti.S index 619effa..f26915e 100644 --- a/sysdeps/x86_64/crti.S +++ b/sysdeps/x86_64/crti.S @@ -58,6 +58,7 @@ .section .init,"ax",@progbits .p2align 2 .globl _init + .hidden _init .type _init, @function _init: /* Maintain 16-byte stack alignment for called functions. */ @@ -75,6 +76,7 @@ _init: .section .fini,"ax",@progbits .p2align 2 .globl _fini + .hidden _fini .type _fini, @function _fini: subq $8, %rsp |