gold: Add endbr64 to IBT TLSDESC PLT entry
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 29 Nov 2020 19:36:13 +0000 (11:36 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 29 Nov 2020 19:41:47 +0000 (11:41 -0800)
commit4bccc875d2ba5cf8f8484ae2aa83d0f1b7115f74
tree53bdefbbbd3d68e7eb1feb8275edfc9e7562cea1
parent9f1212394fa283e2748a83be8bca240710e696ca
gold: Add endbr64 to IBT TLSDESC PLT entry

Gold generates:

 c10:   ff 35 da 23 00 00       push   0x23da(%rip)        # 2ff0 <_GLOBAL_OFFSET_TABLE_+0x8>
 c16:   f2 ff 25 c3 23 00 00    bnd jmp *0x23c3(%rip)        # 2fe0 <_DYNAMIC+0x260>
 c1d:   0f 1f 00                nopl   (%rax)

for IBT TLSDESC PLT entry which misses endbr64.  Add endbr64 to generate:

 c10:   f3 0f 1e fa             endbr64
 c14:   ff 35 d6 23 00 00       push   0x23d6(%rip)        # 2ff0 <_GLOBAL_OFFSET_TABLE_+0x8>
 c1a:   ff 25 c0 23 00 00       jmp    *0x23c0(%rip)        # 2fe0 <_DYNAMIC+0x260>

PR ld/26972
* x86_64.cc (Output_data_plt_x86_64_ibt::tlsdesc_plt_entry): Add
endbr64.
(Output_data_plt_x86_64_ibt::do_fill_tlsdesc_entry): Adjusted.
gold/ChangeLog
gold/x86_64.cc