Created attachment 493297 [details]
.tar.xz of ld and ld.debug
Description of problem:
I wanted to merge binary and its .debug from Brew and I cannot.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
eu-unstrip /tmp/ld /tmp/ld.debug
eu-unstrip: '/tmp/ld' and '/tmp/ld.debug' do not seem to match
/tmp/ld containing both the code and the symbols.
EI_OSABI field of the debug file has value of 3 (Linux), in the stripped file it's 0 (UNIX - System V). I think there was a fix recently regarding the ABI value in ELF file, so what happens might be that strip doesn't copy the header properly.
The problem is in binutils' strip, which is run as part of brp-strip-comment-note. This zeroes the EI_OSABI value in ELF header. Only non-debuginfo files are stripped this way, which explains why it can be here and not there.
# file ble
ble: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
# strip -R .comment ble
# file ble
ble: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
# rpm -q binutils
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.