Align eh_frame FDEs according to their encoding
authorAlan Modra <amodra@gmail.com>
Sun, 5 Mar 2017 04:19:54 +0000 (14:49 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 5 Mar 2017 04:19:54 +0000 (14:49 +1030)
commit2e0ce1c84d328bde4dca24b7cfc8b9c033ed271c
treeea600af380bd0013091dae62a33abc582fb000b5
parent0792e0e1199e76dce19a0f9fbdb29c75b8be8a9b
Align eh_frame FDEs according to their encoding

bfd/
* elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8.
* elf-eh-frame.c (size_of_output_cie_fde): Don't align here.
(next_cie_fde_offset): New function.
(_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8.
(_bfd_elf_discard_section_eh_frame): Align zero terminator to
four bytes.  Align CIEs to four or eight bytes depending on
per_encoding_aligned8.  Align FDEs according to their encoding.
Pad last FDE to output section alignment.
(_bfd_elf_write_section_eh_frame): Adjust to suit.  Remove
assertion.
* elf64-ppc.c (glink_eh_frame_cie): Delete padding.
(ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c.
(ppc64_elf_finish_dynamic_sections): Adjust to suit.
ld/
* testsuite/ld-elf/eh3.d: Adjust for eh_frame alignment change.
* testsuite/ld-elf/eh6.d: Likewise.
* testsuite/ld-alpha/tlsbin.dd: Likewise.
* testsuite/ld-alpha/tlsbin.td: Likewise.
* testsuite/ld-alpha/tlsbinr.dd: Likewise.
* testsuite/ld-alpha/tlspic.dd: Likewise.
* testsuite/ld-alpha/tlspic.rd: Likewise.
* testsuite/ld-alpha/tlspic.sd: Likewise.
* testsuite/ld-alpha/tlspic.td: Likewise.
* testsuite/ld-mips-elf/eh-frame1-n64.d: Likewise.
* testsuite/ld-mips-elf/eh-frame2-n64.d: Likewise.
* testsuite/ld-mips-elf/eh-frame3.d: Likewise.
* testsuite/ld-x86-64/pr20830a.d: Likewise.
* testsuite/ld-x86-64/pr21038a.d: Likewise.
* testsuite/ld-x86-64/pr21038b.d: Likewise.
* testsuite/ld-x86-64/pr21038c.d: Likewise.
21 files changed:
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf-eh-frame.c
bfd/elf64-ppc.c
ld/ChangeLog
ld/testsuite/ld-alpha/tlsbin.dd
ld/testsuite/ld-alpha/tlsbin.td
ld/testsuite/ld-alpha/tlsbinr.dd
ld/testsuite/ld-alpha/tlspic.dd
ld/testsuite/ld-alpha/tlspic.rd
ld/testsuite/ld-alpha/tlspic.sd
ld/testsuite/ld-alpha/tlspic.td
ld/testsuite/ld-elf/eh3.d
ld/testsuite/ld-elf/eh6.d
ld/testsuite/ld-mips-elf/eh-frame1-n64.d
ld/testsuite/ld-mips-elf/eh-frame2-n64.d
ld/testsuite/ld-mips-elf/eh-frame3.d
ld/testsuite/ld-x86-64/pr20830a.d
ld/testsuite/ld-x86-64/pr21038a.d
ld/testsuite/ld-x86-64/pr21038b.d
ld/testsuite/ld-x86-64/pr21038c.d