strip --strip-unneeded adds back section symbols

Nick Clifton nickc@redhat.com
Mon Feb 1 11:34:00 GMT 2016


Hi Andrei,

> It appears that recent binutils (earliest version I have is 2.24)
> unconditionally add back section symbols when copying sections.

Please could you file a bug report about this in the binutils bugzilla system:

https://sourceware.org/bugzilla/

> I verified that filter_symbols() in strip actually removes everything
> from source module, and symbol table reappears deep in call chain
> initiated by copy_section(), where STT_SECTION is unconditionally
> added for every present section.
>
> Was this change intentional?

Yes and no.  The change to add a section symbol to any newly created section was intentional.  This is helpful for a variety of reasons, not least being able to create relocations against that symbol.

The side effect of adding a symbol when actually trying to strip unneeded symbols was unintentional, and is a bug.  I have not investigated yet, but I suspect that the simplest solution will be to make strip rerun its symbol removing pass after having copied all of the sections.

Cheers
   Nick





More information about the Binutils mailing list