Also hide symbols without PLT nor GOT references.
bfd/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/13177 * elflink.c (elf_gc_sweep_symbol): Also hide symbols without PLT nor GOT references. ld/testsuite/ 2011-09-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/13177 * ld-elf/pr13177.d: New. * ld-elf/pr13177.s: Likewise.
This commit is contained in:
parent
fd91d41947
commit
1a766c6843
|
@ -1,3 +1,9 @@
|
||||||
|
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/13177
|
||||||
|
* elflink.c (elf_gc_sweep_symbol): Also hide symbols without PLT
|
||||||
|
nor GOT references.
|
||||||
|
|
||||||
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
|
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/12975
|
PR ld/12975
|
||||||
|
|
|
@ -11689,10 +11689,15 @@ struct elf_gc_sweep_symbol_info
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
elf_gc_sweep_symbol (struct elf_link_hash_entry *h, void *data)
|
elf_gc_sweep_symbol (struct elf_link_hash_entry *h, void *data)
|
||||||
{
|
{
|
||||||
if ((h->root.type == bfd_link_hash_defined
|
if (((h->root.type == bfd_link_hash_defined
|
||||||
|| h->root.type == bfd_link_hash_defweak)
|
|| h->root.type == bfd_link_hash_defweak)
|
||||||
&& !h->root.u.def.section->gc_mark
|
&& !h->root.u.def.section->gc_mark
|
||||||
&& !(h->root.u.def.section->owner->flags & DYNAMIC))
|
&& (!(h->root.u.def.section->owner->flags & DYNAMIC)
|
||||||
|
|| (h->plt.refcount <= 0
|
||||||
|
&& h->got.refcount <= 0)))
|
||||||
|
|| (h->root.type == bfd_link_hash_undefined
|
||||||
|
&& h->plt.refcount <= 0
|
||||||
|
&& h->got.refcount <= 0))
|
||||||
{
|
{
|
||||||
struct elf_gc_sweep_symbol_info *inf =
|
struct elf_gc_sweep_symbol_info *inf =
|
||||||
(struct elf_gc_sweep_symbol_info *) data;
|
(struct elf_gc_sweep_symbol_info *) data;
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/13177
|
||||||
|
* ld-elf/pr13177.d: New.
|
||||||
|
* ld-elf/pr13177.s: Likewise.
|
||||||
|
|
||||||
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
|
2011-09-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/12975
|
PR ld/12975
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#source: pr13177.s
|
||||||
|
#ld: --gc-sections -shared
|
||||||
|
#readelf: -s -D --wide
|
||||||
|
#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
|
||||||
|
#notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
|
||||||
|
# generic linker targets don't support --gc-sections, nor do a bunch of others
|
||||||
|
|
||||||
|
#failif
|
||||||
|
#...
|
||||||
|
.*: 0+0 +0 +NOTYPE +GLOBAL +DEFAULT +UND bar
|
||||||
|
#...
|
|
@ -0,0 +1,9 @@
|
||||||
|
.section .text.foo,"ax",%progbits
|
||||||
|
.globl foo
|
||||||
|
.type foo, %function
|
||||||
|
foo:
|
||||||
|
.byte 0
|
||||||
|
.section .text.opt_out,"ax",%progbits
|
||||||
|
.type opt_out, %function
|
||||||
|
opt_out:
|
||||||
|
.dc.a bar
|
Loading…
Reference in New Issue