Handle ELF compressed header alignment correctly by setting up the section alignment...
authorMark Wielaard <mark@klomp.org>
Tue, 27 Nov 2018 11:59:10 +0000 (11:59 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 27 Nov 2018 11:59:10 +0000 (11:59 +0000)
commit4207142d6a5d2359170c5f9a140fc1a2351fbda9
treea2d367ab1675c2d4206e10943a8e0ea9c7904784
parent6a75ea85b19306046e04a08eec344ec67ec2733d
Handle ELF compressed header alignment correctly by setting up the section alignment correctly for the Elf32_Chdr or Elf64_Chdr type and respect the ch_addralign field when decompressing the section data.

PR binutils/23919
binutils* readelf.c (dump_sections_as_strings): Remove bogus addralign check.
(dump_sections_as_bytes): Likewise.
(load_specific_debug_sections): Likewise.
* testsuite/binutils-all/dw2-3.rS: Adjust alignment.
* testsuite/binutils-all/dw2-3.rt: Likewise.

bfd * bfd.c (bfd_update_compression_header): Explicitly set alignment.
(bfd_check_compression_header): Add uncompressed_alignment_power
argument. Check ch_addralign is a power of 2.
* bfd-in2.h: Regenerated.
* compress.c (bfd_compress_section_contents): Get and set
orig_uncompressed_alignment_pow if section is decompressed.
(bfd_is_section_compressed_with_header): Add and get
uncompressed_align_pow_p argument.
(bfd_is_section_compressed): Add uncompressed_align_power argument
to bfd_is_section_compressed_with_header call.
(bfd_init_section_decompress_status): Get and set
uncompressed_alignment_power.
* elf.c (_bfd_elf_make_section_from_shdr): Add
uncompressed_align_power argument to
bfd_is_section_compressed_with_header call.
bfd/ChangeLog
bfd/bfd-in2.h
bfd/bfd.c
bfd/compress.c
bfd/elf.c
binutils/ChangeLog
binutils/readelf.c
binutils/testsuite/binutils-all/dw2-3.rS
binutils/testsuite/binutils-all/dw2-3.rt