Fix non-plugin warning symbol handling
PR ld/16746 include/ * bfdlink.h (struct bfd_link_info): Add lto_plugin_active. bfd/ * linker.c (_bfd_generic_link_add_one_symbol <WARN>): Handle !lto_plugin_active. ld/ * plugin.c (plugin_load_plugins): Set link_info.lto_plugin_active.
This commit is contained in:
parent
d769e349bc
commit
61f41c3c24
3 changed files with 7 additions and 1 deletions
|
@ -1806,7 +1806,9 @@ _bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
|
|||
case WARN:
|
||||
/* Warn if this symbol has been referenced already from non-IR,
|
||||
otherwise add a warning. */
|
||||
if (h->non_ir_ref)
|
||||
if ((!info->lto_plugin_active
|
||||
&& (h->u.undef.next != NULL || info->hash->undefs_tail == h))
|
||||
|| h->non_ir_ref)
|
||||
{
|
||||
if (! (*info->callbacks->warning) (info, string, h->root.string,
|
||||
hash_entry_bfd (h), NULL, 0))
|
||||
|
|
|
@ -292,6 +292,9 @@ struct bfd_link_info
|
|||
callback. */
|
||||
unsigned int notice_all: 1;
|
||||
|
||||
/* TRUE if the LTO plugin is active. */
|
||||
unsigned int lto_plugin_active: 1;
|
||||
|
||||
/* TRUE if we are loading LTO outputs. */
|
||||
unsigned int loading_lto_outputs: 1;
|
||||
|
||||
|
|
|
@ -841,6 +841,7 @@ plugin_load_plugins (void)
|
|||
plugin_callbacks = *orig_callbacks;
|
||||
plugin_callbacks.notice = &plugin_notice;
|
||||
link_info.notice_all = TRUE;
|
||||
link_info.lto_plugin_active = TRUE;
|
||||
link_info.callbacks = &plugin_callbacks;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue