From 04e433a8571e727108b8f1b9a04ba5c7ab20112c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 30 Sep 2020 05:23:20 -0700 Subject: [PATCH] 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. --- ld/ChangeLog | 6 ++++++ ld/plugin.c | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 369252761cc..134db8cdac8 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2020-09-30 H.J. Lu + + 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 PR 26588 diff --git a/ld/plugin.c b/ld/plugin.c index 5640b8975b9..067551c4766 100644 --- a/ld/plugin.c +++ b/ld/plugin.c @@ -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)) -- 2.30.2