summary refs log tree commit diff stats
path: root/linux-user/gen-vdso.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2025-09-04 11:30:53 +0200
committerRichard Henderson <richard.henderson@linaro.org>2025-09-23 16:17:59 -0700
commitee3b39c92454b0360a614bd017eb5e545ea61f4e (patch)
treef385ae8962a5746d684c27a609d9ee293aac5ace /linux-user/gen-vdso.c
parentab8008b231e758e03c87c1c483c03afdd9c02e19 (diff)
downloadfocaccia-qemu-ee3b39c92454b0360a614bd017eb5e545ea61f4e.tar.gz
focaccia-qemu-ee3b39c92454b0360a614bd017eb5e545ea61f4e.zip
linux-user: Create vdso_sigreturn_region_{start,end}
These variables will be populated from the vdso, and used
for detecting whether we are executing the sigreturn.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'linux-user/gen-vdso.c')
-rw-r--r--linux-user/gen-vdso.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/linux-user/gen-vdso.c b/linux-user/gen-vdso.c
index aeaa927db8..d6a2cdaa83 100644
--- a/linux-user/gen-vdso.c
+++ b/linux-user/gen-vdso.c
@@ -36,6 +36,8 @@ static const char *rt_sigreturn_sym;
 
 static unsigned sigreturn_addr;
 static unsigned rt_sigreturn_addr;
+static unsigned sigreturn_region_start_addr;
+static unsigned sigreturn_region_end_addr;
 
 #define N 32
 #define elfN(x)  elf32_##x
@@ -215,6 +217,10 @@ int main(int argc, char **argv)
     fprintf(outf, "    .reloc_count = ARRAY_SIZE(%s_relocs),\n", prefix);
     fprintf(outf, "    .sigreturn_ofs = 0x%x,\n", sigreturn_addr);
     fprintf(outf, "    .rt_sigreturn_ofs = 0x%x,\n", rt_sigreturn_addr);
+    fprintf(outf, "    .sigreturn_region_start_ofs = 0x%x,\n",
+            sigreturn_region_start_addr);
+    fprintf(outf, "    .sigreturn_region_end_ofs = 0x%x,\n",
+            sigreturn_region_end_addr);
     fprintf(outf, "};\n");
 
     ret = EXIT_SUCCESS;