libgcc/CET: Add _CET_ENDBR to __stack_split_initialize

Message ID 20180412132143.GA224338@intel.com
State New
Headers show
Series
  • libgcc/CET: Add _CET_ENDBR to __stack_split_initialize
Related show

Commit Message

H.J. Lu April 12, 2018, 1:21 p.m.
Program received signal SIGSEGV, Segmentation fault.
__stack_split_initialize ()
    at /export/gnu/import/git/sources/gcc/libgcc/config/i386/morestack.S:751
751		leaq	-16000(%rsp),%rax	# We should have at least 16K.
Missing separate debuginfos, use: dnf debuginfo-install libgcc-8.0.1-0.21.0.fc28.x86_64
(gdb) disass
Dump of assembler code for function __stack_split_initialize:
=> 0x0000000000402858 <+0>:	lea    -0x3e80(%rsp),%rax
   0x0000000000402860 <+8>:	mov    %rax,%fs:0x70
   0x0000000000402869 <+17>:	sub    $0x8,%rsp
   0x000000000040286d <+21>:	mov    %rsp,%rdi
   0x0000000000402870 <+24>:	mov    $0x3e80,%esi
   0x0000000000402875 <+29>:	callq  0x401810 <__generic_morestack_set_initial_sp>
   0x000000000040287a <+34>:	add    $0x8,%rsp
   0x000000000040287e <+38>:	retq
End of assembler dump.
(gdb)

This patch adds the missing ENDBR to __stack_split_initialize.

OK for trunk?

H.J.
---
	PR libgcc/85379
	* config/i386/morestack.S (__stack_split_initialize): Add
	_CET_ENDBR.
---
 libgcc/config/i386/morestack.S | 1 +
 1 file changed, 1 insertion(+)

Patch

diff --git a/libgcc/config/i386/morestack.S b/libgcc/config/i386/morestack.S
index eca441a2867..99e65eaaff4 100644
--- a/libgcc/config/i386/morestack.S
+++ b/libgcc/config/i386/morestack.S
@@ -730,6 +730,7 @@  __morestack_large_model:
 #endif
 
 __stack_split_initialize:
+	_CET_ENDBR
 
 #ifndef __x86_64__