Set BFD_DECOMPRESS when reading build-id debuglink

We should set BFD_DECOMPRESS to decompress sections unless dumping the
section contents when reading build-id debuglink.

	PR binutils/31925
	* objdump.c (open_debug_file): Set BFD_DECOMPRESS to decompress
	sections unless dumping the section contents.
	* testsuite/binutils-all/objdump.exp (test_build_id_debuglink):
	Add a compress option.
	Run test_build_id_debuglink with none and zlib.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
This commit is contained in:
H.J. Lu 2024-06-25 00:45:22 -07:00
parent 632c537277
commit 67b1d28b52
2 changed files with 9 additions and 4 deletions

View file

@ -4446,6 +4446,10 @@ open_debug_file (const char * pathname)
if (data == NULL)
return NULL;
/* Decompress sections unless dumping the section contents. */
if (!dump_section_contents || decompressed_dumps)
data->flags |= BFD_DECOMPRESS;
if (! bfd_check_format (data, bfd_object))
return NULL;

View file

@ -598,7 +598,7 @@ if { ![is_elf_format] } then {
file_on_host delete $output
}
proc test_build_id_debuglink {} {
proc test_build_id_debuglink {option} {
global srcdir
global subdir
global env
@ -608,13 +608,13 @@ proc test_build_id_debuglink {} {
global CFLAGS_FOR_TARGET
global exe
set test "build-id-debuglink"
set test "build-id-debuglink ($option)"
# Use a fixed build-id.
if { [info exists CFLAGS_FOR_TARGET] } {
set save_CFLAGS_FOR_TARGET $CFLAGS_FOR_TARGET
}
set CFLAGS_FOR_TARGET "-g -Wl,--build-id=0x12345678abcdef01"
set CFLAGS_FOR_TARGET "-g -Wl,--build-id=0x12345678abcdef01,--compress-debug-sections=$option"
if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog${exe} executable debug] != "" } {
unsupported "$test (build)"
@ -676,7 +676,8 @@ proc test_build_id_debuglink {} {
}
if {[is_elf_format]} then {
test_build_id_debuglink
test_build_id_debuglink none
test_build_id_debuglink zlib
}
# Test objdump -Wk on a file containing debug links.