mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-10 14:59:31 +08:00
Ensure that compressed sections that have an ELF compression header structure at the start are correctly aligned.
PR 26428 bfd * bfd.c (bfd_update_compression_header): Also set the sh_addralign field in the ELF header of the compressed sections. ld * testsuite/ld-elf/zlibbegin.rS: Update expected output. * testsuite/ld-elf/zlibnormal.rS: Likewise.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2020-08-20 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 26428
|
||||||
|
* bfd.c (bfd_update_compression_header): Also set the sh_addralign
|
||||||
|
field in the ELF header of the compressed sections.
|
||||||
|
|
||||||
2020-08-20 Nick Clifton <nickc@redhat.com>
|
2020-08-20 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 26406
|
PR 26406
|
||||||
|
@ -2558,6 +2558,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
|
|||||||
if ((abfd->flags & BFD_COMPRESS_GABI) != 0)
|
if ((abfd->flags & BFD_COMPRESS_GABI) != 0)
|
||||||
{
|
{
|
||||||
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
|
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
|
||||||
|
struct bfd_elf_section_data * esd = elf_section_data (sec);
|
||||||
|
|
||||||
/* Set the SHF_COMPRESSED bit. */
|
/* Set the SHF_COMPRESSED bit. */
|
||||||
elf_section_flags (sec) |= SHF_COMPRESSED;
|
elf_section_flags (sec) |= SHF_COMPRESSED;
|
||||||
@ -2571,6 +2572,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
|
|||||||
&echdr->ch_addralign);
|
&echdr->ch_addralign);
|
||||||
/* bfd_log2 (alignof (Elf32_Chdr)) */
|
/* bfd_log2 (alignof (Elf32_Chdr)) */
|
||||||
bfd_set_section_alignment (sec, 2);
|
bfd_set_section_alignment (sec, 2);
|
||||||
|
esd->this_hdr.sh_addralign = 4;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2582,6 +2584,7 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents,
|
|||||||
&echdr->ch_addralign);
|
&echdr->ch_addralign);
|
||||||
/* bfd_log2 (alignof (Elf64_Chdr)) */
|
/* bfd_log2 (alignof (Elf64_Chdr)) */
|
||||||
bfd_set_section_alignment (sec, 3);
|
bfd_set_section_alignment (sec, 3);
|
||||||
|
esd->this_hdr.sh_addralign = 8;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2020-08-20 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 26428
|
||||||
|
* testsuite/ld-elf/zlibbegin.rS: Update expected output.
|
||||||
|
* testsuite/ld-elf/zlibnormal.rS: Likewise.
|
||||||
|
|
||||||
2020-08-16 Alan Modra <amodra@gmail.com>
|
2020-08-16 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* testsuite/ld-powerpc/inline.s,
|
* testsuite/ld-powerpc/inline.s,
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#...
|
#...
|
||||||
+\[[ 0-9]+\] .debug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +G?C +0 +0 +1
|
+\[[ 0-9]+\] .debug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +G?C +0 +0 +[48]
|
||||||
#pass
|
#pass
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#...
|
#...
|
||||||
+\[[ 0-9]+\] .debug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +G?C +0 +0 +1
|
+\[[ 0-9]+\] .debug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +G?C +0 +0 +[48]
|
||||||
#pass
|
#pass
|
||||||
|
Reference in New Issue
Block a user