PR ld/12365
[deliverable/binutils-gdb.git] / ld / ldmain.c
index 005a89406902f8fcbf948a7b65674182762bfa98..52a4b04830a59196eb259c4d2713a8fc5d47984e 100644 (file)
@@ -804,7 +804,9 @@ add_archive_element (struct bfd_link_info *info,
      BFD, but we still want to output the original BFD filename.  */
   orig_input = *input;
 #ifdef ENABLE_PLUGINS
-  if (bfd_my_archive (abfd) != NULL && plugin_active_plugins_p ())
+  if (bfd_my_archive (abfd) != NULL
+      && plugin_active_plugins_p ()
+      && !no_more_claiming)
     {
       /* We must offer this archive member to the plugins to claim.  */
       int fd = open (bfd_my_archive (abfd)->filename, O_RDONLY | O_BINARY);
@@ -944,22 +946,11 @@ multiple_definition (struct bfd_link_info *info ATTRIBUTE_UNUSED,
                     asection *nsec,
                     bfd_vma nval)
 {
-#ifdef ENABLE_PLUGINS
-  /* We may get called back even when --allow-multiple-definition is in
-     effect, as the plugin infrastructure needs to use this hook in
-     order to swap out IR-only symbols for real ones.  In that case,
-     it will let us know not to continue by returning TRUE even if this
-     is not an IR-only vs. non-IR symbol conflict.  */
-  if (plugin_multiple_definition (info, name, obfd, osec, oval, nbfd,
-                                 nsec, nval))
-    return TRUE;
-#endif /* ENABLE_PLUGINS */
-
   /* If either section has the output_section field set to
      bfd_abs_section_ptr, it means that the section is being
      discarded, and this is not really a multiple definition at all.
-FIXME: It would be cleaner to somehow ignore symbols defined in
-sections which are being discarded.  */
+     FIXME: It would be cleaner to somehow ignore symbols defined in
+     sections which are being discarded.  */
   if ((osec->output_section != NULL
        && ! bfd_is_abs_section (osec)
        && bfd_is_abs_section (osec->output_section))
@@ -1456,17 +1447,8 @@ notice (struct bfd_link_info *info,
       return TRUE;
     }
 
-#ifdef ENABLE_PLUGINS
-  /* We should hide symbols in the dummy IR BFDs from the nocrossrefs list
-     and let the real object files that are generated and added later trip
-     the error instead.  Similarly would be better to trace the real symbol
-     from the real file than the temporary dummy.  */
-  if (!plugin_notice (info, name, abfd, section, value))
-    return TRUE;
-#endif /* ENABLE_PLUGINS */
-
   if (info->notice_hash != NULL
-       && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)
+      && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)
     {
       if (bfd_is_und_section (section))
        einfo ("%B: reference to %s\n", abfd, name);
This page took 0.023394 seconds and 4 git commands to generate.