Hi Aaron,

On Wed, Nov 06, 2024 at 04:15:30PM -0500, Aaron Merey wrote:
> On Wed, Nov 6, 2024 at 2:35 PM Mark Wielaard <m...@klomp.org> wrote:
> > >    if (reloc_debug_only)
> > >      {
> > > +      if (ehdr->e_type != ET_REL)
> > > +     {
> > > +       /* Only ET_REL files should have debug relocations to remove.  */
> > > +       error (0, 0, _("Ignoring --reloc-debug-sections-only for " \
> > > +                      "non-ET_REL file '%s'"), fname);
> > > +       goto fail_close;
> > > +     }
> >
> > Do we have to fail here?  I think it is nicer for the user to just
> > turn this into an warning with
> >
> > if (ehdr->e_type != ET_REL) else if (handle_debug_relocs (...))
> 
> If we don't fail then strip will need to do more work copying sections
> over to the 'newelf' handle in order to properly overwrite the input file
> with newelf.
> 
> Since --reloc-debug-sections-only should be a no-op for non-ET_REL files
> it makes sense to skip that extra work and avoid overwriting the input file.

Aha, so by not goto done you skip the actual (supposed to do nothing)
work. goto fail_close isn't so much "failing", but more about closing
without doing any more work. Which is fine because when
--reloc-debug-sections-only "No other stripping is performed".

OK. Sorry for being dense.

Cheers,

Mark

Reply via email to