diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-03-25 05:02:17 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-03-25 05:02:32 -0700 |
commit | bf54968b128a2133174d81c438d402ecfaf83042 (patch) | |
tree | fadfbd0205867e75b54346add9cb3e22eef3df4b /bfd/ChangeLog | |
parent | b3ee71e749f3c93c51cd6fb3fed51ffd54243117 (diff) | |
download | gdb-bf54968b128a2133174d81c438d402ecfaf83042.zip gdb-bf54968b128a2133174d81c438d402ecfaf83042.tar.gz gdb-bf54968b128a2133174d81c438d402ecfaf83042.tar.bz2 |
x86-64: Add ENDBR64 to the TLSDESC PLT entry
The TLSDESC entry in a lazy procedure linkage table is called indirectly
with "callq *(%rax)". This patch adds an ENDBR64 to support indirect
branch tracking in Intel CET. The TLSDESC PLT entry now looks like:
0xf3, 0x0f, 0x1e, 0xfa, /* endbr64 */
0xff, 0x35, 8, 0, 0, 0, /* pushq GOT+8(%rip) */
0xff, 0x25, 16, 0, 0, 0 /* jmpq *GOT+TDG(%rip) */
The BND prefix isn't needed since MPX isn't used for TLSDESC.
bfd/
PR ld/23000
* elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Add
ENDBR64 to the TLSDESC PLT entry.
ld/
PR ld/23000
* testsuite/ld-x86-64/tlsdesc.pd: Updated.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7534b19..426561a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2018-03-25 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/23000 + * elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Add + ENDBR64 to the TLSDESC PLT entry. + 2018-03-21 Alan Modra <amodra@gmail.com> * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Trim uninteresting |