diff options
author | Alan Modra <amodra@gmail.com> | 2014-12-24 11:52:26 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-12-24 13:02:42 +1030 |
commit | d5111a0e037c732029879829ca4d18ae2ae0d3e5 (patch) | |
tree | 430f2333eeb40e4175080e6698264edfabc5b076 | |
parent | 931804de6cec4ba55de1bf8b2f893879ebbf1537 (diff) | |
download | gdb-d5111a0e037c732029879829ca4d18ae2ae0d3e5.zip gdb-d5111a0e037c732029879829ca4d18ae2ae0d3e5.tar.gz gdb-d5111a0e037c732029879829ca4d18ae2ae0d3e5.tar.bz2 |
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.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/linker.c | 2 |
2 files changed, 6 insertions, 1 deletions
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 <amodra@gmail.com> + + * linker.c (_bfd_generic_link_output_symbols): Remove BSF_WEAK + flag from bfd_link_hash_defined symbols. + 2014-12-23 Andrew Burgess <andrew.burgess@embecosm.com> * 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; |