ld: Override the IR definition for non-ELF targets

For non-ELF targets, override the IR definition before all LTO symbols
have been read.

	PR ld/26675
	* plugin.c (plugin_notice): Override the IR definition before
	all LTO symbols have been read for non-ELF targets.
This commit is contained in:
H.J. Lu 2020-09-30 05:23:20 -07:00
parent c81946efc2
commit 04e433a857
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2020-09-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/26675
* plugin.c (plugin_notice): Override the IR definition before
all LTO symbols have been read for non-ELF targets.
2020-09-30 Jeremy Drake <sourceware-bugzilla@jdrake.com>
PR 26588

View File

@ -1436,8 +1436,10 @@ plugin_notice (struct bfd_link_info *info,
this by making the symbol appear to be undefined.
NB: We change the previous definition in the IR object to
undefweak only after all LTO symbols have been read. */
else if (info->lto_all_symbols_read
undefweak only after all LTO symbols have been read or for
non-ELF targets. */
else if ((info->lto_all_symbols_read
|| bfd_get_flavour (abfd) != bfd_target_elf_flavour)
&& (((h->type == bfd_link_hash_defweak
|| h->type == bfd_link_hash_defined)
&& is_ir_dummy_bfd (sym_bfd = h->u.def.section->owner))