]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
linux-user: Populate sigreturn_region_{start,end} in all vdso.S
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 4 Sep 2025 09:49:04 +0000 (11:49 +0200)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 23 Sep 2025 23:17:59 +0000 (16:17 -0700)
Mark the regions which contain sigreturn syscalls within
each vdso.  Rebuild the shared objects.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
22 files changed:
linux-user/aarch64/vdso-be.so
linux-user/aarch64/vdso-le.so
linux-user/aarch64/vdso.S
linux-user/arm/vdso-be32.so
linux-user/arm/vdso-be8.so
linux-user/arm/vdso-le.so
linux-user/arm/vdso.S
linux-user/hppa/vdso.S
linux-user/hppa/vdso.so
linux-user/i386/vdso.S
linux-user/i386/vdso.so
linux-user/loongarch64/vdso.S
linux-user/loongarch64/vdso.so
linux-user/ppc/vdso-32.so
linux-user/ppc/vdso-64.so
linux-user/ppc/vdso-64le.so
linux-user/ppc/vdso.S
linux-user/riscv/vdso-32.so
linux-user/riscv/vdso-64.so
linux-user/riscv/vdso.S
linux-user/s390x/vdso.S
linux-user/s390x/vdso.so

index d43c3b19cdf6588757f2039f2308a8bce21aed9c..4089838b30535738e89252a146a039af54ed8be1 100755 (executable)
Binary files a/linux-user/aarch64/vdso-be.so and b/linux-user/aarch64/vdso-be.so differ
index aaedc9d85e568d5dadc9c394e9c4459f1f0c8c88..240802821c32943170f7de64f8a0b3ab2a21cd13 100755 (executable)
Binary files a/linux-user/aarch64/vdso-le.so and b/linux-user/aarch64/vdso-le.so differ
index a0ac1487b0991e8d723f44759e87fd315041b71e..59dd94dc8ffd4ea0ceb6ee8a3e3ca730547cbcfe 100644 (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
index b896d3d545ebf91942038831a9535b023137a86b..6d71cd9c36d185e48810140d6b1b12a1c8f95900 100755 (executable)
Binary files a/linux-user/arm/vdso-be32.so and b/linux-user/arm/vdso-be32.so differ
index 784b7bdb2a9308671bbc4c1e38ab4eac568ea6f7..6446a96fcf63747f1c171a1bc99210d2268d971a 100755 (executable)
Binary files a/linux-user/arm/vdso-be8.so and b/linux-user/arm/vdso-be8.so differ
index 38d3d51047372391b3125c3f9f6ea5401f04bba1..d34e577b69e6cb22a90982570d5e66a1fa22e195 100755 (executable)
Binary files a/linux-user/arm/vdso-le.so and b/linux-user/arm/vdso-le.so differ
index b3bb6491dc2ebdfa9934439c4817a64b69b7b845..d84d964730803d58a5d676ea9a189810e44f4acf 100644 (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:
index 5be14d2f7009af1531ba87b1acb2ce1e2bb827c8..a6f8da2981ef9f04e4319a7a1bfb4c3fbcb8fc64 100644 (file)
 __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
index e1ddd70c37e9eb6871c21d538dcce0a1e736a918..68baf80fd3943cc2d847744f13637810788fafc1 100755 (executable)
Binary files a/linux-user/hppa/vdso.so and b/linux-user/hppa/vdso.so differ
index e7a1f333a1ee6a204ca2472b5bf3103f1ae1e8f5..8df77b5a948a360ddd6052bcfce021a80531c87d 100644 (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
 
index bdece5dfcf8da036d013262d4e37208350283cfa..e01c3818d0d2e4871cf39b2ddd21043d0695d07e 100755 (executable)
Binary files a/linux-user/i386/vdso.so and b/linux-user/i386/vdso.so differ
index 780a5fda12f3d4d60228b8866521414299d69acb..2409d95476d3ccc8ec482fd105fb19f40b7b57cf 100644 (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
index 7c2de6c50e706164225e82f652d4becc04c71ff0..3704834f0d5d4439a5f1020e06d9a52c0a740555 100755 (executable)
Binary files a/linux-user/loongarch64/vdso.so and b/linux-user/loongarch64/vdso.so differ
index 0dc55e0dddff618b954dbb939335e99956daf64a..03476052fbeb13b7d54651ff9d2447a07ceca251 100755 (executable)
Binary files a/linux-user/ppc/vdso-32.so and b/linux-user/ppc/vdso-32.so differ
index ac1ab2582e4675979ffca3ce90dce17df579ab2a..b89f2a0e018a7bb6923db267a746006d341f6bb1 100755 (executable)
Binary files a/linux-user/ppc/vdso-64.so and b/linux-user/ppc/vdso-64.so differ
index 424abb4290b7d3100e9dede2f3059483608ba703..22499d2701530ee2aa003ae5fecce695441a5f77 100755 (executable)
Binary files a/linux-user/ppc/vdso-64le.so and b/linux-user/ppc/vdso-64le.so differ
index 2e79ea98086a123f8c88f4159ca7988b8acb67e6..e9256a2deafc99976f7a29d94c22d92233a37fdb 100644 (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
index c2ce2a4757900a16b891bb98f7a027ac30c47a5f..4818a994f0394d83ca5e8213f6e2d2d3ee2f504c 100755 (executable)
Binary files a/linux-user/riscv/vdso-32.so and b/linux-user/riscv/vdso-32.so differ
index ae49f5b043b5941b9d304a056c2b50c185f413b0..cc6f7e974be67bd08ed412eccb9af22138385e56 100755 (executable)
Binary files a/linux-user/riscv/vdso-64.so and b/linux-user/riscv/vdso-64.so differ
index c37275233a0657b07235cc96a589ec47665de758..1d780db7717485c457a5a3f7729587ede120552d 100644 (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
index 3332492477183477c6dd8e88c48e7e555f0a9d5d..c60e9ed086a01e9332b328749642e80dc5de0507 100644 (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:
index 64130f6f335269b03291653d006225b365be9cd9..a669a6b7dda7b60bb8aa125bd70c8ed3384da841 100755 (executable)
Binary files a/linux-user/s390x/vdso.so and b/linux-user/s390x/vdso.so differ