PR 21497 supplemental patch

Nick Clifton nickc@redhat.com
Tue Jul 22 14:21:14 GMT 2025


Hi HJ, Hi Sam,

  We have recently run across a problem in Fedora building LLVM:

https://bugzilla.redhat.com/show_bug.cgi?id=2382341

  I have traced the problem back to the fact that strip will now load a
  plugin to handle GCC LTO data in archive members (ie PR 21479).
  This is great unless the plugin fails to recognise the archive member,
  because if that happens strip will stop with an unrecognised format
  error message, rather than continuing to process other elements.

  So I would like to propose a small change to the current code.  The
  patch below first tries opening the element with the "plugin" target,
  but if that fails, it carries on to try to open the element normally.

  This solves the problem reported in BZ 2382341 and seems to make sense
  to me.  Do either of you have any concerns with me applying this patch
  ?

Cheers
  Nick

diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 2ca04e84d47..b400d4daba7 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -3880,15 +3880,22 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
     }
 
 #if BFD_SUPPORTS_PLUGINS
-  /* Enable LTO plugin in strip unless all LTO sections should be
-     removed.  */
+  /* PR 21479: Enable the LTO plugin in strip
+     unless all LTO sections should be removed.  */
   if (is_strip && !target && !lto_sections_removed)
-    target = "plugin";
+    {
+      ibfd = bfd_openr (input_filename, "plugin");
+      if (ibfd != NULL)
+	goto loaded;
+      /* But if that fails, try opening the target as normal.  */
+    }
 #endif
 
+  ibfd = bfd_openr (input_filename, target);
+
+ loaded:
   /* To allow us to do "strip *" without dying on the first
      non-object file, failures are nonfatal.  */
-  ibfd = bfd_openr (input_filename, target);
   if (ibfd == NULL || bfd_stat (ibfd, in_stat) != 0)
     {
       bfd_nonfatal_message (input_filename, NULL, NULL, NULL);




More information about the Binutils mailing list