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.
This commit is contained in:
Alan Modra 2014-12-24 11:52:26 +10:30
parent 931804de6c
commit d5111a0e03
2 changed files with 6 additions and 1 deletions

View File

@ -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

View File

@ -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;