[PATCH] objcopy: Correctly check archive element for LTO IR
H.J. Lu
hjl.tools@gmail.com
Fri Jun 13 23:54:00 GMT 2025
On Fri, Jun 13, 2025 at 1:18 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> Pass archive element, instead of archive, to bfd_plugin_target_p to check
> for LTO IR in archive element.
>
> PR binutils/33078
> * objcopy.c (copy_archive): Correctly check archive element for
> LTO IR.
> * testsuite/binutils-all/objcopy.exp (strip_test_archive): New.
> Run strip_test_archive.
>
>
> --
> H.J.
717a38e9a02 strip: Add GCC LTO IR support
added:
@@ -3744,6 +3768,12 @@ copy_archive (bfd *ibfd, bfd *obfd, const char
*output_target,
goto cleanup_and_exit;
}
+#if BFD_SUPPORTS_PLUGINS
+ /* Copy LTO IR file as unknown object. */
+ if (bfd_plugin_target_p (ibfd->xvec))
^^^^^ This is a typo.
+ ok_object = false;
+ else
+#endif
if (ok_object)
{
ok = copy_object (this_element, output_element, input_arch);
to check if the archive element is a LTO IR file. "ibfd" is the archive BFD.
"this_element" should be used for the archive element. This simple change:
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index a973789b1d5..366e1079d82 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -3770,7 +3770,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_tar
get,
#if BFD_SUPPORTS_PLUGINS
/* Copy LTO IR file as unknown object. */
- if (bfd_plugin_target_p (ibfd->xvec))
+ if (bfd_plugin_target_p (this_element->xvec))
ok_object = false;
else
#endif
corrects the typo.
--
H.J.
More information about the Binutils
mailing list