diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2021-09-29 09:05:32 -0400 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2021-10-01 12:03:48 +0200 |
commit | b5d66e0dd8dda3d58e58dafa425372d158bed3e8 (patch) | |
tree | 98df834fcf15df7a09636614545cc19dc215049d /linux-user/arm/target_signal.h | |
parent | b807a1087ed864f6c37ccbf6ea416387f00a8b3c (diff) | |
download | qemu-b5d66e0dd8dda3d58e58dafa425372d158bed3e8.zip qemu-b5d66e0dd8dda3d58e58dafa425372d158bed3e8.tar.gz qemu-b5d66e0dd8dda3d58e58dafa425372d158bed3e8.tar.bz2 |
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.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/linux-user/arm/target_signal.h b/linux-user/arm/target_signal.h index 0998dd6..1e7fb0c 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 */ |