File tree 2 files changed +25
-0
lines changed
2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change 9
9
# }
10
10
_Py_trampoline_func_start:
11
11
#ifdef __x86_64__
12
+ #if defined(__CET__) && (__CET__ & 1 )
13
+ endbr64
14
+ #endif
12
15
sub $ 8 , % rsp
13
16
call * % rcx
14
17
add $ 8 , % rsp
@@ -34,3 +37,21 @@ _Py_trampoline_func_start:
34
37
.globl _Py_trampoline_func_end
35
38
_Py_trampoline_func_end:
36
39
. section .note.GNU - stack , "" , @progbits
40
+ #if defined(__x86_64__) && defined(__CET__) && (__CET__ & 1 )
41
+ . section .note.gnu.property , "a"
42
+ . align 8
43
+ .long 1f - 0f
44
+ .long 4f - 1f
45
+ .long 5
46
+ 0 :
47
+ .string "GNU"
48
+ 1 :
49
+ . align 8
50
+ .long 0xc0000002
51
+ .long 3f - 2f
52
+ 2 :
53
+ .long 0x3
54
+ 3 :
55
+ . align 8
56
+ 4 :
57
+ #endif // __x86_64__
Original file line number Diff line number Diff line change @@ -472,7 +472,11 @@ elf_init_ehframe(ELFObjectContext* ctx)
472
472
DWRF_U8 (0 ); /* Augmentation data. */
473
473
/* Registers saved in CFRAME. */
474
474
#ifdef __x86_64__
475
+ # if defined(__CET__ ) && (__CET__ & 1 )
476
+ DWRF_U8 (DWRF_CFA_advance_loc | 8 );
477
+ # else
475
478
DWRF_U8 (DWRF_CFA_advance_loc | 4 );
479
+ # endif
476
480
DWRF_U8 (DWRF_CFA_def_cfa_offset ); DWRF_UV (16 );
477
481
DWRF_U8 (DWRF_CFA_advance_loc | 6 );
478
482
DWRF_U8 (DWRF_CFA_def_cfa_offset ); DWRF_UV (8 );
You can’t perform that action at this time.
0 commit comments