`strip` no longer malforms binary files built with tools that use a later *BFD* library version
Previously, the `strip` tool created an invalid binary file if the file was originally produced by tools that use a later version of the *BFD* library than `strip`. As a consequence running the resulting binary file failed and generated an error message about an unresolvable relocation. *BFD* has been modified to report situations where it cannot recognize its future features instead of damaging the code that contains these features. As a result, `strip` now generates an error message and aborts in this situation.
+++ This bug was initially created as a clone of Bug #1545386 +++
Description of problem:
Strip will silently corrupt relocations that it does not recognise,
producing a broken output file. This applies to any architecture,
not just X86_64, but it does require that a new relocation be introduced
in a newer version of the binutils. If an object file is created by
this new version of binutils, and then stripped using an older version
of the binutils, then the problem will arise.
Fixed in: binutils-2.27-28.base.el7
Verified for build binutils-2.27-34.base.el7 - strip-13 test case of the upstream testsuite passed.
The text seems fine to me.
There was an effect - if a program was stripped using a version
of the strip program created before this fix, then it would not
run. When the user tried to start it the loader would issue an
error message like the one in the title of this BZ, and refuse
to start the program. (There error message in the title of this
BZ is specific to the x86_64 architecture, but other architectures
would behave in the same way, just producing slightly different
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.