On 18 November 2015 at 22:15, John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de> wrote: > --- > linux-user/syscall.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 6c64ba6..4d864b2 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -8294,7 +8294,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long > arg1, > case TARGET_NR_sigaltstack: > #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_MIPS) || \ > defined(TARGET_SPARC) || defined(TARGET_PPC) || defined(TARGET_ALPHA) || > \ > - defined(TARGET_M68K) || defined(TARGET_S390X) || defined(TARGET_OPENRISC) > + defined(TARGET_M68K) || defined(TARGET_S390X) || > defined(TARGET_OPENRISC) || \ > + defined(TARGET_SH4) > ret = do_sigaltstack(arg1, arg2, get_sp_from_cpustate((CPUArchState > *)cpu_env)); > break; > #else
Unfortunately this isn't sufficient. You also need to add the code to the sh4-specific functions in linux-user/signal.c which honours the requested sigaltstack when taking and returning from signal handlers. thanks -- PMM