linux-user: Populate sigreturn_region_{start,end} in all vdso.S

Mark the regions which contain sigreturn syscalls within
each vdso.  Rebuild the shared objects.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson
2025-09-04 11:49:04 +02:00
parent ee3b39c924
commit b9baf09512
22 changed files with 16 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -71,5 +71,7 @@ vdso_syscall __kernel_clock_getres, __NR_clock_getres
__kernel_rt_sigreturn:
/* No BTI C insn here -- we arrive via RET. */
mov x8, #__NR_rt_sigreturn
sigreturn_region_start:
svc #0
sigreturn_region_end:
endf __kernel_rt_sigreturn

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -140,6 +140,7 @@ SYSCALL __vdso_gettimeofday, __NR_gettimeofday
.balign 16
sigreturn_codes:
sigreturn_region_start:
/* [EO]ABI sigreturn */
slot 0
raw_syscall __NR_sigreturn
@@ -172,3 +173,4 @@ sigreturn_codes:
.balign 16
endf sigreturn_codes
sigreturn_region_end:

View File

@@ -156,8 +156,10 @@
__kernel_sigtramp_rt:
ldi 0, %r25
ldi __NR_rt_sigreturn, %r20
sigreturn_region_start:
be,l 0x100(%sr2, %r0), %sr0, %r31
nop
sigreturn_region_end:
.cfi_endproc
.size __kernel_sigtramp_rt, . - __kernel_sigtramp_rt

Binary file not shown.

View File

@@ -114,6 +114,7 @@ vdso_syscall3 __vdso_getcpu, __NR_gettimeofday
*/
nop
sigreturn_region_start:
__kernel_sigreturn:
popl %eax /* pop sig */
.cfi_adjust_cfa_offset -4
@@ -128,6 +129,7 @@ __kernel_rt_sigreturn:
movl $__NR_rt_sigreturn, %eax
int $0x80
endf __kernel_rt_sigreturn
sigreturn_region_end:
.cfi_endproc

Binary file not shown.

View File

@@ -125,6 +125,8 @@ vdso_syscall __vdso_getcpu, __NR_getcpu
__vdso_rt_sigreturn:
li.w $a7, __NR_rt_sigreturn
sigreturn_region_start:
syscall 0
sigreturn_region_end:
.cfi_endproc
endf __vdso_rt_sigreturn

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -220,6 +220,7 @@ endf __kernel_sync_dicache
nop
sigreturn_region_start:
__kernel_sigtramp_rt:
raw_syscall __NR_rt_sigreturn
endf __kernel_sigtramp_rt
@@ -235,5 +236,6 @@ __kernel_sigtramp32:
raw_syscall __NR_sigreturn
endf __kernel_sigtramp32
#endif
sigreturn_region_end:
.cfi_endproc

Binary file not shown.

Binary file not shown.

View File

@@ -181,7 +181,9 @@ endf __vdso_flush_icache
nop
__vdso_rt_sigreturn:
sigreturn_region_start:
raw_syscall __NR_rt_sigreturn
sigreturn_region_end:
endf __vdso_rt_sigreturn
.cfi_endproc

View File

@@ -52,6 +52,7 @@ vdso_syscall __kernel_getcpu, __NR_getcpu
* by all users. Without it we get the fallback signal frame handling.
*/
sigreturn_region_start:
__kernel_sigreturn:
raw_syscall __NR_sigreturn
endf __kernel_sigreturn
@@ -59,3 +60,4 @@ endf __kernel_sigreturn
__kernel_rt_sigreturn:
raw_syscall __NR_rt_sigreturn
endf __kernel_rt_sigreturn
sigreturn_region_end:

Binary file not shown.