From: Alan Modra Date: Wed, 24 Dec 2014 01:22:26 +0000 (+1030) Subject: Fix generic linker symbol output when weak is overridden by strong X-Git-Tag: gdb-7.9.0-release~234 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d5111a0e037c732029879829ca4d18ae2ae0d3e5;p=external%2Fbinutils.git Fix generic linker symbol output when weak is overridden by strong Yes, I know this also affects bfd_link_hash_indirect, but output of indirect and warning symbols looks quite broken anyway. * linker.c (_bfd_generic_link_output_symbols): Remove BSF_WEAK flag from bfd_link_hash_defined symbols. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8e6fa09..7b0ad1d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-12-24 Alan Modra + + * linker.c (_bfd_generic_link_output_symbols): Remove BSF_WEAK + flag from bfd_link_hash_defined symbols. + 2014-12-23 Andrew Burgess * elf32-avr.c (bfd_elf_avr_final_write_processing): Don't set diff --git a/bfd/linker.c b/bfd/linker.c index 9223810..083a250 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -2136,7 +2136,7 @@ _bfd_generic_link_output_symbols (bfd *output_bfd, /* fall through */ case bfd_link_hash_defined: sym->flags |= BSF_GLOBAL; - sym->flags &=~ BSF_CONSTRUCTOR; + sym->flags &=~ (BSF_WEAK | BSF_CONSTRUCTOR); sym->value = h->root.u.def.value; sym->section = h->root.u.def.section; break;