Change ld "notice" interface for better handling of indirect symbols
authorAlan Modra <amodra@gmail.com>
Tue, 12 Aug 2014 01:13:33 +0000 (10:43 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 12 Aug 2014 11:17:36 +0000 (20:47 +0930)
commit4613510308cea27713e8c7424b2afee9b99f6226
tree50a2534571a7e765830e335172d4f2fdfd6ff4fc
parent88d3f0870bdcb030d1b9f56f48e389860ff41918
Change ld "notice" interface for better handling of indirect symbols

The main aim of this change was to have non_ir_ref set correctly on
new indirect symbols.  I could have added a "copy" param to the "notice"
function, so that indirect symbols could be created in plugin_notice,
but it seemed cleaner to create indirect syms earlier and pass them
rather than "string" to "notice".

include/
* bfdlink.h (struct bfd_link_callbacks <notice>): Remove "string"
param, add "inh".
bfd/
* coff-aux.c (coff_m68k_aux_link_add_one_symbol): Only call "notice"
here when not calling the generic add_symbol function.  Formatting.
Correct handling of indirect symbols.  Update notice call.
* elflink.c (_bfd_elf_notice_as_needed): Update notice call.
* linker.c (_bfd_generic_link_add_one_symbol): Create indirect
symbols early.  Update notice call.  Add comments regarding weak
symbols vs. indirect.
ld/
* ldmain.c (notice): Update args.
* plugin.c (plugin_notice): Likewise.  Follow warning sym link.
Handle new indirect symbol.
bfd/ChangeLog
bfd/coff-aux.c
bfd/elflink.c
bfd/linker.c
include/ChangeLog
include/bfdlink.h
ld/ChangeLog
ld/ldmain.c
ld/plugin.c