minidebuginfo: Fix stripping/debuginfo

gdb/doc/
2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create
	mini_debuginfo.  Strip binary before adding mini_debuginfo to it.

gdb/testsuite/
2013-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/gnu-debugdata.exp (objcopy 1): Move it lower and use only
	debug part of the binary.
This commit is contained in:
Jan Kratochvil 2013-09-11 08:31:44 +00:00
parent 1d236d2308
commit edf9f00c51
4 changed files with 24 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create
mini_debuginfo. Strip binary before adding mini_debuginfo to it.
2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Sync documentation with gdb.base/gnu-debugdata.exp.

View File

@ -17340,10 +17340,16 @@ nm @var{binary} --format=posix --defined-only \
# table.
comm -13 dynsyms funcsyms > keep_symbols
# Separate full debug info into debug binary.
objcopy --only-keep-debug @var{binary} debug
# Copy the full debuginfo, keeping only a minimal set of symbols and
# removing some unnecessary sections.
objcopy -S --remove-section .gdb_index --remove-section .comment \
--keep-symbols=keep_symbols @var{binary} mini_debuginfo
--keep-symbols=keep_symbols debug mini_debuginfo
# Drop the full debug info from the original binary.
strip --strip-all -R .comment @var{binary}
# Inject the compressed data into the .gnu_debugdata section of the
# original binary.

View File

@ -1,3 +1,8 @@
2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/gnu-debugdata.exp (objcopy 1): Move it lower and use only
debug part of the binary.
2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/gnu-debugdata.exp (strip): Add -R .comment.

View File

@ -89,13 +89,6 @@ if {[run_on_host "comm" "comm" "-13 ${binfile}.dynsyms ${binfile}.funcsyms" "" \
return -1
}
# Copy the full debuginfo, keeping only a minimal set of symbols and
# removing some unnecessary sections.
remote_file host delete ${binfile}.mini_debuginfo
if {[run_on_host "objcopy 1" [transform objcopy] "-S --remove-section .gdb_index --remove-section .comment --keep-symbols=${binfile}.keep_symbols ${binfile} ${binfile}.mini_debuginfo"]} {
return -1
}
# GDB specific - we do not have split executable in advance.
remote_file host delete ${binfile}.strip
if {[run_on_host "strip" [transform strip] \
@ -110,6 +103,13 @@ if {[run_on_host "copydebug" [transform objcopy] \
return -1
}
# Copy the full debuginfo, keeping only a minimal set of symbols and
# removing some unnecessary sections.
remote_file host delete ${binfile}.mini_debuginfo
if {[run_on_host "objcopy 1" [transform objcopy] "-S --remove-section .gdb_index --remove-section .comment --keep-symbols=${binfile}.keep_symbols ${binfile}.debug ${binfile}.mini_debuginfo"]} {
return -1
}
# Add the .gnu_debuglink section to the .gnu_debugdata file.
# .gnu_debuglink is normally not present in the .gnu_debugdata section but in
# some files there may be PT_NOTE with NT_GNU_BUILD_ID and GDB could look up