objcopy/strip of IR files and is_strip_input
Alan Modra
amodra@gmail.com
Thu Aug 14 13:19:42 GMT 2025
On Tue, Aug 12, 2025 at 05:24:40AM -0700, H.J. Lu wrote:
> On Mon, Aug 11, 2025 at 11:11 PM Alan Modra <amodra@gmail.com> wrote:
> >
> > On Mon, Aug 11, 2025 at 06:11:42PM -0700, H.J. Lu wrote:
> > > On Mon, Aug 11, 2025 at 5:39 PM Alan Modra <amodra@gmail.com> wrote:
> > > > Yes, I can see your comment are with commit c2729c37f10a
> > > > /* NB: Must keep .gnu.debuglto_* sections unless all GCC LTO sections
> > > > will be removed to avoid undefined references to symbols in GCC LTO
> > > > debug sections. */
> > > > if (!lto_sections_removed)
> > > > find_section_list (".gnu.debuglto_*", true, SECTION_CONTEXT_KEEP);
> > > >
> > > > That doesn't make a great deal of sense to me. Usually it is the
> > > > other way around. ie. symbols in a non-debug section are referenced
> > > > by a debug section. What symbols are being referenced in the
> > > > .gnu.debuglto sections and from where?
> > >
> > > There are cross references between GCC code IR and GCC debug IR.
> > > If GCC debug IR is removed while GCC code IR is kept, we get undefined
> > > references to debug IR from code IR.
> >
> > Isn't that a gcc bug? Particularly since older versions of strip and
>
> A GCC feature? Since LLVM puts all IR in a single section in fat IR
> object, .llvm.lto, we can't only strip debug IR either. IR removal should
> all or nothing.
>
> > objcopy will remove .gnu.debuglto_.debug_* with --strip-debug.
> >
All right, I'll commit the patch as is.
--
Alan Modra
More information about the Binutils
mailing list