diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2020-07-29 15:47:50 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2020-07-30 17:00:53 +0100 |
commit | 4d3bb35620e70d543d438bf21be1307f7ea0f5d0 (patch) | |
tree | 320675ff833252130161bcae7e09b1e360795ef8 /bfd/ChangeLog | |
parent | e12dcc50da18ef4382c02d1f2bb1541251cce45e (diff) | |
download | gdb-4d3bb35620e70d543d438bf21be1307f7ea0f5d0.zip gdb-4d3bb35620e70d543d438bf21be1307f7ea0f5d0.tar.gz gdb-4d3bb35620e70d543d438bf21be1307f7ea0f5d0.tar.bz2 |
aarch64: set sh_entsize of .plt to 0
On aarch64 the first PLT entry is 32 bytes, subsequent entries
are 16 bytes by default but can be 24 bytes with BTI or with
PAC-PLT.
sh_entsize of .plt was set to the PLT entry size, so in some
cases sh_size % sh_entsize != 0, which breaks some tools.
Note that PLT0 (and the TLSDESC stub code which is also in the
PLT) were historically not padded up to meet the sh_size
requirement, but to ensure that PLT stub code is aligned on
cache lines. Similar layout is present on other targets too
which just happens to make sh_size a multiple of sh_entsize and
it is not expected that sh_entsize of .plt is used for anything.
This patch sets sh_entsize of .plt to 0: the section does not
hold a table of fixed-size entries so other values are not
conforming in principle to the ELF spec.
bfd/ChangeLog:
PR ld/26312
* elfnn-aarch64.c (elfNN_aarch64_init_small_plt0_entry): Set sh_entsize
to 0.
(elfNN_aarch64_finish_dynamic_sections): Remove sh_entsize setting.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 264e15a..e507a9d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2020-07-30 Szabolcs Nagy <szabolcs.nagy@arm.com> + + PR ld/26312 + * elfnn-aarch64.c (elfNN_aarch64_init_small_plt0_entry): Set sh_entsize + to 0. + (elfNN_aarch64_finish_dynamic_sections): Remove sh_entsize setting. + 2020-07-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * bfd.m4 (BFD_SYS_PROCFS_H): New macro. |