x86: Update __CET__ check
__CET__ has been changed by revision 259522: commit d59cfa9a4064339cf2bd2da828c4c133f13e57f0 Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Apr 20 13:30:13 2018 +0000 Define __CET__ for -fcf-protection and remove -mibt to (__CET__ & 1) != 0: -fcf-protection=branch or -fcf-protection=full (__CET__ & 2) != 0: -fcf-protection=return or -fcf-protection=full We should check (__CET__ & 2) != 0 for shadow stack. libgcc/ * config/i386/linux-unwind.h: Add (__CET__ & 2) != 0 check when including "config/i386/shadow-stack-unwind.h". libitm/ * config/x86/sjlj.S (_ITM_beginTransaction): Add (__CET__ & 2) != 0 check for shadow stack. (GTM_longjmp): Likewise. From-SVN: r259621
This commit is contained in:
parent
e59133c36c
commit
ffc2fc06e3
@ -1,3 +1,8 @@
|
|||||||
|
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* config/i386/linux-unwind.h: Add (__CET__ & 2) != 0 check
|
||||||
|
when including "config/i386/shadow-stack-unwind.h".
|
||||||
|
|
||||||
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* configure: Regenerated.
|
* configure: Regenerated.
|
||||||
|
@ -23,7 +23,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
/* Unwind shadow stack for -fcf-protection -mshstk. */
|
/* Unwind shadow stack for -fcf-protection -mshstk. */
|
||||||
#if defined __SHSTK__ && defined __CET__
|
#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
|
||||||
# include "config/i386/shadow-stack-unwind.h"
|
# include "config/i386/shadow-stack-unwind.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* config/x86/sjlj.S (_ITM_beginTransaction): Add
|
||||||
|
(__CET__ & 2) != 0 check for shadow stack.
|
||||||
|
(GTM_longjmp): Likewise.
|
||||||
|
|
||||||
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* configure: Regenerated.
|
* configure: Regenerated.
|
||||||
|
@ -141,7 +141,7 @@ SYM(_ITM_beginTransaction):
|
|||||||
movq %r15, -24(%rax)
|
movq %r15, -24(%rax)
|
||||||
xorq %rdx, %rdx
|
xorq %rdx, %rdx
|
||||||
/* Save zero or shadow stack pointer in the new field. */
|
/* Save zero or shadow stack pointer in the new field. */
|
||||||
#if defined(__SHSTK__) && defined(__CET__)
|
#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
|
||||||
rdsspq %rdx
|
rdsspq %rdx
|
||||||
#endif
|
#endif
|
||||||
movq %rdx, -16(%rax)
|
movq %rdx, -16(%rax)
|
||||||
@ -177,7 +177,7 @@ SYM(_ITM_beginTransaction):
|
|||||||
movl %ebp, 20(%esp)
|
movl %ebp, 20(%esp)
|
||||||
xorl %edx, %edx
|
xorl %edx, %edx
|
||||||
/* Save zero or shadow stack pointer in the new field. */
|
/* Save zero or shadow stack pointer in the new field. */
|
||||||
#if defined(__SHSTK__) && defined(__CET__)
|
#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
|
||||||
rdsspd %edx
|
rdsspd %edx
|
||||||
#endif
|
#endif
|
||||||
movl %edx, 24(%esp)
|
movl %edx, 24(%esp)
|
||||||
@ -221,7 +221,7 @@ SYM(GTM_longjmp):
|
|||||||
cfi_offset(%rip, 64)
|
cfi_offset(%rip, 64)
|
||||||
cfi_register(%rsp, %rcx)
|
cfi_register(%rsp, %rcx)
|
||||||
movq %rcx, %rsp
|
movq %rcx, %rsp
|
||||||
#if defined(__SHSTK__) && defined(__CET__)
|
#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
|
||||||
/* Check if Shadow Stack is enabled. */
|
/* Check if Shadow Stack is enabled. */
|
||||||
xorq %rcx, %rcx
|
xorq %rcx, %rcx
|
||||||
rdsspq %rcx
|
rdsspq %rcx
|
||||||
@ -259,7 +259,7 @@ SYM(GTM_longjmp):
|
|||||||
cfi_offset(%eip, 24)
|
cfi_offset(%eip, 24)
|
||||||
cfi_register(%esp, %ecx)
|
cfi_register(%esp, %ecx)
|
||||||
movl %ecx, %esp
|
movl %ecx, %esp
|
||||||
#if defined(__SHSTK__) && defined(__CET__)
|
#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
|
||||||
/* Check if Shadow Stack is enabled. */
|
/* Check if Shadow Stack is enabled. */
|
||||||
xorl %ecx, %ecx
|
xorl %ecx, %ecx
|
||||||
rdsspd %ecx
|
rdsspd %ecx
|
||||||
|
Loading…
Reference in New Issue
Block a user