summary refs log tree commit diff stats
path: root/linux-user/arm/target_signal.h
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2021-09-29 09:05:32 -0400
committerLaurent Vivier <laurent@vivier.eu>2021-10-01 12:03:48 +0200
commitb5d66e0dd8dda3d58e58dafa425372d158bed3e8 (patch)
tree98df834fcf15df7a09636614545cc19dc215049d /linux-user/arm/target_signal.h
parentb807a1087ed864f6c37ccbf6ea416387f00a8b3c (diff)
downloadfocaccia-qemu-b5d66e0dd8dda3d58e58dafa425372d158bed3e8.tar.gz
focaccia-qemu-b5d66e0dd8dda3d58e58dafa425372d158bed3e8.zip
linux-user/arm: Implement setup_sigtramp
Mirror what the kernel does in arch/arm/kernel/signal.h,
using the old sigframe struct in the rt sigframe struct.

Update the trampoline code to match the kernel: this uses
sp-relative accesses rather than pc-relative.

Copy the code into frame->retcode from the trampoline page.
This minimises the different cases wrt arm vs thumb vs fdpic.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20210929130553.121567-6-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'linux-user/arm/target_signal.h')
-rw-r--r--linux-user/arm/target_signal.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/linux-user/arm/target_signal.h b/linux-user/arm/target_signal.h
index 0998dd6dfa..1e7fb0cecb 100644
--- a/linux-user/arm/target_signal.h
+++ b/linux-user/arm/target_signal.h
@@ -22,4 +22,6 @@ typedef struct target_sigaltstack {
 #include "../generic/signal.h"
 
 #define TARGET_ARCH_HAS_SETUP_FRAME
+#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 1
+
 #endif /* ARM_TARGET_SIGNAL_H */