aboutsummaryrefslogtreecommitdiff
path: root/binutils/doc
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2015-08-05 16:16:39 +0100
committerNick Clifton <nickc@redhat.com>2015-08-05 16:16:39 +0100
commit63b9bbb7d7bcdcb6e0f59dd8da9615d80c537b8d (patch)
tree63a87d567a4c30e48ed3ae9784fe5b03e3621a31 /binutils/doc
parent260439cb8ec21ffd75b240aadc55fd341c8c8dd4 (diff)
downloadgdb-63b9bbb7d7bcdcb6e0f59dd8da9615d80c537b8d.zip
gdb-63b9bbb7d7bcdcb6e0f59dd8da9615d80c537b8d.tar.gz
gdb-63b9bbb7d7bcdcb6e0f59dd8da9615d80c537b8d.tar.bz2
Change the behaviour of the --only-keep-debug option to objcopy and strip so that the sh_link and sh_info fields in stripped section headers are preserved.
bfd * elf.c (_bfd_elf_copy_private_bfd_data): Copy the sh_link and sh_info fields of sections whose type has been changed to SHT_NOBITS. bin * doc/binutils.texi: Document that the --only-keep-debug option to strip and objcopy preserves the section headers of stripped sections. tests * binutils-all/objcopy.exp (keep_debug_symbols_and_check_links): New proc. Checks that debug-info-only binaries retain the sh_link field in stripped sections.
Diffstat (limited to 'binutils/doc')
-rw-r--r--binutils/doc/binutils.texi17
1 files changed, 15 insertions, 2 deletions
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 466f125..fef5f3e 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -1731,6 +1731,12 @@ Strip a file, removing contents of any sections that would not be
stripped by @option{--strip-debug} and leaving the debugging sections
intact. In ELF files, this preserves all note sections in the output.
+Note - the section headers of the stripped sections are preserved,
+including their sizes, but the contents of the section are discarded.
+The section headers are preserved so that other tools can match up the
+debuginfo file with the real executable, even if that executable has
+been relocated to a different address space.
+
The intention is that this option will be used in conjunction with
@option{--add-gnu-debuglink} to create a two part executable. One a
stripped binary which will occupy less space in RAM and in a
@@ -3074,9 +3080,16 @@ When stripping a file, perhaps with @option{--strip-debug} or
which would otherwise get stripped.
@item --only-keep-debug
-Strip a file, removing contents of any sections that would not be
+Strip a file, emptying the contents of any sections that would not be
stripped by @option{--strip-debug} and leaving the debugging sections
-intact. In ELF files, this preserves all note sections in the output.
+intact. In ELF files, this preserves all the note sections in the
+output as well.
+
+Note - the section headers of the stripped sections are preserved,
+including their sizes, but the contents of the section are discarded.
+The section headers are preserved so that other tools can match up the
+debuginfo file with the real executable, even if that executable has
+been relocated to a different address space.
The intention is that this option will be used in conjunction with
@option{--add-gnu-debuglink} to create a two part executable. One a