riscv --enable-targets=all on 32-bit host
[deliverable/binutils-gdb.git] / ld / plugin.c
index d709ee10fe74628cb5bd3a6b81bbf77884744970..173aa1d07180636e8578f5c61555cebcb5d0e18e 100644 (file)
@@ -1,5 +1,5 @@
 /* Plugin control for the GNU linker.
-   Copyright (C) 2010-2020 Free Software Foundation, Inc.
+   Copyright (C) 2010-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU Binutils.
 
@@ -415,7 +415,7 @@ asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym,
 
   if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
     {
-      elf_symbol_type *elfsym = elf_symbol_from (abfd, asym);
+      elf_symbol_type *elfsym = elf_symbol_from (asym);
       unsigned char visibility;
 
       if (!elfsym)
@@ -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))
This page took 0.030051 seconds and 4 git commands to generate.