From: H.J. Lu Date: Tue, 18 Oct 2011 19:06:50 +0000 (+0000) Subject: Revert the fix for PR ld/13177. X-Git-Tag: binutils-2_22~73 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d6304b56b08fb0dd0c1474789f35a0d0bc03b3a1;p=thirdparty%2Fbinutils-gdb.git Revert the fix for PR ld/13177. bfd/ 2011-10-18 H.J. Lu PR ld/13177 * elflink.c (elf_gc_sweep_symbol): Don't hide symbols without PLT nor GOT references. ld/testsuite/ 2011-10-18 H.J. Lu PR ld/13177 * ld-elf/pr13177.d: Removed. * ld-elf/pr13177.s: Likewise. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8adb6000c87..cfd1fcc830e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2011-10-18 H.J. Lu + + PR ld/13177 + * elflink.c (elf_gc_sweep_symbol): Don't hide symbols without PLT + nor GOT references. + 2011-10-14 Hans-Peter Nilsson * elf32-cris.c (cris_elf_gc_sweep_hook) diff --git a/bfd/elflink.c b/bfd/elflink.c index 5d181f7993c..33a1a63cb42 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -11691,18 +11691,13 @@ struct elf_gc_sweep_symbol_info static bfd_boolean elf_gc_sweep_symbol (struct elf_link_hash_entry *h, void *data) { - if (((h->root.type == bfd_link_hash_defined - || h->root.type == bfd_link_hash_defweak) - && !h->root.u.def.section->gc_mark - && (!(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)) + if ((h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && !h->root.u.def.section->gc_mark + && !(h->root.u.def.section->owner->flags & DYNAMIC)) { struct elf_gc_sweep_symbol_info *inf = - (struct elf_gc_sweep_symbol_info *) data; + (struct elf_gc_sweep_symbol_info *) data; (*inf->hide_symbol) (inf->info, h, TRUE); } diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index c658c051098..4889ea67994 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-10-18 H.J. Lu + + PR ld/13177 + * ld-elf/pr13177.d: Removed. + * ld-elf/pr13177.s: Likewise. + 2011-10-14 Hans-Peter Nilsson * ld-cris/pic-gc-72.d: Adjust for dropping unused undefined diff --git a/ld/testsuite/ld-elf/pr13177.d b/ld/testsuite/ld-elf/pr13177.d deleted file mode 100644 index e56e8652678..00000000000 --- a/ld/testsuite/ld-elf/pr13177.d +++ /dev/null @@ -1,12 +0,0 @@ -#source: pr13177.s -#ld: --gc-sections -shared -#readelf: -s -D --wide -#target: *-*-linux* *-*-gnu* -#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 -#... diff --git a/ld/testsuite/ld-elf/pr13177.s b/ld/testsuite/ld-elf/pr13177.s deleted file mode 100644 index d7caad36336..00000000000 --- a/ld/testsuite/ld-elf/pr13177.s +++ /dev/null @@ -1,9 +0,0 @@ - .section .text.foo,"ax",%progbits - .globl foo - .type foo, %function -foo: - .byte 0 - .section .data.opt_out,"aw",%progbits - .type opt_out, %object -opt_out: - .dc.a bar