__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
+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>
* configure: Regenerated.
<http://www.gnu.org/licenses/>. */
/* 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"
#endif
+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>
* configure: Regenerated.
movq %r15, -24(%rax)
xorq %rdx, %rdx
/* 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
#endif
movq %rdx, -16(%rax)
movl %ebp, 20(%esp)
xorl %edx, %edx
/* 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
#endif
movl %edx, 24(%esp)
cfi_offset(%rip, 64)
cfi_register(%rsp, %rcx)
movq %rcx, %rsp
-#if defined(__SHSTK__) && defined(__CET__)
+#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
/* Check if Shadow Stack is enabled. */
xorq %rcx, %rcx
rdsspq %rcx
cfi_offset(%eip, 24)
cfi_register(%esp, %ecx)
movl %ecx, %esp
-#if defined(__SHSTK__) && defined(__CET__)
+#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0
/* Check if Shadow Stack is enabled. */
xorl %ecx, %ecx
rdsspd %ecx