Richard Henderson and Laurent Vivier
525c4670c5
linux-user: Remove default for TARGET_ARCH_HAS_SIGTRAMP_PAGE
...
All targets now define TARGET_ARCH_HAS_SIGTRAMP_PAGE.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-26-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
55e83c2005
linux-user/xtensa: Implement setup_sigtramp
...
Create and record the rt signal trampoline.
Use it when the guest does not use SA_RESTORER.
Reviewed-by: Max Filippov <jcmvbkbc@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-25-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
3f7685eaf9
linux-user/sparc: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Use them when the guest does not use SA_RESTORER.
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-24-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
b9188f9ccc
linux-user/sh4: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Use them when the guest does not use SA_RESTORER.
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-23-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
31330e6cec
linux-user/s390x: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Use them when the guest does not use SA_RESTORER.
Cc: qemu-s390x@nongnu.org
Tested-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-22-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
3c62b5d201
linux-user/riscv: Implement setup_sigtramp
...
Create and record the rt signal trampoline.
This fixes a bug wrt libgcc fallback unwinding. It expects
the stack pointer to point to the siginfo_t, whereas we had
inexplicably placed our private signal trampoline at the start
of the signal frame instead of the end. Now moot because we
have removed it from the stack frame entirely.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-21-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
c790e4ebfe
linux-user/ppc: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Cc: qemu-ppc@nongnu.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-20-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
5d2fc70f57
linux-user/ppc: Simplify encode_trampoline
...
The sigret parameter is never 0, and even if it was the encoding
of the LI instruction would still work.
Reported-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-19-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
9ce3ad4452
linux-user/openrisc: Implement setup_sigtramp
...
Create and record the rt signal trampoline.
Reviewed-by: Stafford Horne <shorne@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-18-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
f32d3b6793
linux-user/nios2: Document non-use of setup_sigtramp
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-17-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
317a33b6eb
linux-user/mips: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-16-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
4f7a0a4c86
linux-user/mips: Tidy install_sigtramp
...
The return value is constant 0, and unused as well -- change to void.
Drop inline marker. Change tramp type to uint32_t* for clarity.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-15-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
8004316d81
linux-user/microblaze: Implement setup_sigtramp
...
Create and record the rt signal trampoline.
Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-14-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
5125aced7c
linux-user/m68k: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-13-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
db20554159
linux-user/x86_64: Raise SIGSEGV if SA_RESTORER not set
...
This has been a fixme for some time. The effect of
returning -EFAULT from the kernel code is to raise SIGSEGV.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-12-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
8ee8a10480
linux-user/i386: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Use them when the guest does not use SA_RESTORER.
Note that x86_64 does not use this code.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-11-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
a22fccd8b7
linux-user/hppa: Document non-use of setup_sigtramp
...
We cannot use a raw sigtramp page for hppa,
but must wait for full vdso support.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-10-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
c8ef02b1ac
linux-user/hexagon: Implement setup_sigtramp
...
Continue to initialize the words on the stack, as documented.
However, use the off-stack trampoline.
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-9-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
e281c2bafe
linux-user/cris: Implement setup_sigtramp
...
Split out setup_sigreturn so that we can continue to
initialize the words on the stack, as documented.
However, use the off-stack trampoline.
Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-8-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
dd55f1c8b2
linux-user/alpha: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Use them when the guest does not use ka_restorer.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-7-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
b5d66e0dd8
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 >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
b807a1087e
linux-user/arm: Drop "_v2" from symbols in signal.c
...
Since we no longer support "v1", there's no need to distinguish "v2".
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-5-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
eef9790007
linux-user/arm: Drop v1 signal frames
...
Version 2 signal frames are used from 2.6.12 and since cbc14e6f28 ,
we have set UNAME_MINIMUM_RELEASE to 2.6.32.
Suggested-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-4-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
c70887a382
linux-user/aarch64: Implement setup_sigtramp
...
Create and record the rt signal trampoline.
Use it when the guest does not use SA_RESTORER.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-3-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Richard Henderson and Laurent Vivier
db2af69d6b
linux-user: Add infrastructure for a signal trampoline page
...
Allocate a page to hold the signal trampoline(s).
Invoke a guest-specific hook to fill in the contents
of the page before marking it read-execute again.
Reviewed-by: Max Filippov <jcmvbkbc@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-2-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:47 +02:00