HomeFreeBSD

MFC r339451: objcopy: restore behaviour required by GCC's build

Description

MFC r339451: objcopy: restore behaviour required by GCC's build

In r339350 filter_reloc() was removed, to fix the case of stripping
statically linked binaries with relocations (which may come from ifunc
use, for example). As a side effect this changed the behaviour when
stripping object files - the output was broken both before and after
r339350, in different ways. Unfortunately GCC's build process relies
on the previous behaviour, so:

  • Revert r339350, restoring filter_reloc().
  • Fix an unitialized variable use (commited as r3638 in ELF Tool Chain).
  • Change filter_reloc() to omit relocations referencing removed symbols, while retaining relocations with no symbol reference.
  • Retain the entire relocation section if it references the dynamic symbol table (fix from kaiw in D17596).

PR: 232176
Approved by: re (gjb, kib)
Sponsored by: The FreeBSD Foundation

Details

Provenance
emasteAuthored on
Parents
rS339725: MFC r339684:
Branches
Unknown
Tags
Unknown