mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
x86: Add _CET_ENDBR to functions in dl-tlsdesc.S
Add _CET_ENDBR to functions in dl-tlsdesc.S, which are called indirectly, to support IBT. Tested on i686 and x86-64. Reviewed-by: Carlos O'Donell <carlos@redhat.com> * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_return): Add _CET_ENDBR. (_dl_tlsdesc_undefweak): Likewise. (_dl_tlsdesc_dynamic): Likewise. (_dl_tlsdesc_resolve_abs_plus_addend): Likewise. (_dl_tlsdesc_resolve_rel): Likewise. (_dl_tlsdesc_resolve_rela): Likewise. (_dl_tlsdesc_resolve_hold): Likewise. * sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_return): Likewise. (_dl_tlsdesc_undefweak): Likewise. (_dl_tlsdesc_dynamic): Likewise. (_dl_tlsdesc_resolve_rela): Likewise. (_dl_tlsdesc_resolve_hold): Likewise.
This commit is contained in:
parent
124bcde683
commit
562837c002
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
||||
2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_return): Add
|
||||
_CET_ENDBR.
|
||||
(_dl_tlsdesc_undefweak): Likewise.
|
||||
(_dl_tlsdesc_dynamic): Likewise.
|
||||
(_dl_tlsdesc_resolve_abs_plus_addend): Likewise.
|
||||
(_dl_tlsdesc_resolve_rel): Likewise.
|
||||
(_dl_tlsdesc_resolve_rela): Likewise.
|
||||
(_dl_tlsdesc_resolve_hold): Likewise.
|
||||
* sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_return): Likewise.
|
||||
(_dl_tlsdesc_undefweak): Likewise.
|
||||
(_dl_tlsdesc_dynamic): Likewise.
|
||||
(_dl_tlsdesc_resolve_rela): Likewise.
|
||||
(_dl_tlsdesc_resolve_hold): Likewise.
|
||||
|
||||
2018-07-17 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/i386/crti.S (_init): Add _CET_ENDBR.
|
||||
|
@ -37,6 +37,7 @@
|
||||
cfi_startproc
|
||||
.align 16
|
||||
_dl_tlsdesc_return:
|
||||
_CET_ENDBR
|
||||
movl 4(%eax), %eax
|
||||
ret
|
||||
cfi_endproc
|
||||
@ -58,6 +59,7 @@ _dl_tlsdesc_return:
|
||||
cfi_startproc
|
||||
.align 16
|
||||
_dl_tlsdesc_undefweak:
|
||||
_CET_ENDBR
|
||||
movl 4(%eax), %eax
|
||||
subl %gs:0, %eax
|
||||
ret
|
||||
@ -99,6 +101,7 @@ _dl_tlsdesc_dynamic (struct tlsdesc *tdp)
|
||||
cfi_startproc
|
||||
.align 16
|
||||
_dl_tlsdesc_dynamic:
|
||||
_CET_ENDBR
|
||||
/* Like all TLS resolvers, preserve call-clobbered registers.
|
||||
We need two scratch regs anyway. */
|
||||
subl $28, %esp
|
||||
@ -154,6 +157,7 @@ _dl_tlsdesc_dynamic:
|
||||
.align 16
|
||||
_dl_tlsdesc_resolve_abs_plus_addend:
|
||||
0:
|
||||
_CET_ENDBR
|
||||
pushl %eax
|
||||
cfi_adjust_cfa_offset (4)
|
||||
pushl %ecx
|
||||
@ -192,6 +196,7 @@ _dl_tlsdesc_resolve_abs_plus_addend:
|
||||
.align 16
|
||||
_dl_tlsdesc_resolve_rel:
|
||||
0:
|
||||
_CET_ENDBR
|
||||
pushl %eax
|
||||
cfi_adjust_cfa_offset (4)
|
||||
pushl %ecx
|
||||
@ -230,6 +235,7 @@ _dl_tlsdesc_resolve_rel:
|
||||
.align 16
|
||||
_dl_tlsdesc_resolve_rela:
|
||||
0:
|
||||
_CET_ENDBR
|
||||
pushl %eax
|
||||
cfi_adjust_cfa_offset (4)
|
||||
pushl %ecx
|
||||
@ -268,6 +274,7 @@ _dl_tlsdesc_resolve_rela:
|
||||
.align 16
|
||||
_dl_tlsdesc_resolve_hold:
|
||||
0:
|
||||
_CET_ENDBR
|
||||
pushl %eax
|
||||
cfi_adjust_cfa_offset (4)
|
||||
pushl %ecx
|
||||
|
@ -37,6 +37,7 @@
|
||||
cfi_startproc
|
||||
.align 16
|
||||
_dl_tlsdesc_return:
|
||||
_CET_ENDBR
|
||||
movq 8(%rax), %rax
|
||||
ret
|
||||
cfi_endproc
|
||||
@ -58,6 +59,7 @@ _dl_tlsdesc_return:
|
||||
cfi_startproc
|
||||
.align 16
|
||||
_dl_tlsdesc_undefweak:
|
||||
_CET_ENDBR
|
||||
movq 8(%rax), %rax
|
||||
subq %fs:0, %rax
|
||||
ret
|
||||
@ -96,6 +98,7 @@ _dl_tlsdesc_dynamic (register struct tlsdesc *tdp asm ("%rax"))
|
||||
cfi_startproc
|
||||
.align 16
|
||||
_dl_tlsdesc_dynamic:
|
||||
_CET_ENDBR
|
||||
/* Preserve call-clobbered registers that we modify.
|
||||
We need two scratch regs anyway. */
|
||||
movq %rsi, -16(%rsp)
|
||||
@ -166,6 +169,7 @@ _dl_tlsdesc_dynamic:
|
||||
.align 16
|
||||
/* The PLT entry will have pushed the link_map pointer. */
|
||||
_dl_tlsdesc_resolve_rela:
|
||||
_CET_ENDBR
|
||||
cfi_adjust_cfa_offset (8)
|
||||
/* Save all call-clobbered registers. Add 8 bytes for push in
|
||||
the PLT entry to align the stack. */
|
||||
@ -216,6 +220,7 @@ _dl_tlsdesc_resolve_rela:
|
||||
.align 16
|
||||
_dl_tlsdesc_resolve_hold:
|
||||
0:
|
||||
_CET_ENDBR
|
||||
/* Save all call-clobbered registers. */
|
||||
subq $72, %rsp
|
||||
cfi_adjust_cfa_offset (72)
|
||||
|
Loading…
Reference in New Issue
Block a user