mirror of https://github.com/xemu-project/xemu.git
linux-user: use TARGET_SA_ONSTACK in get_sigframe
As reported by Laurent, which should use TARGET_SA_ONSTACK on arm, microblaze and openrisc targets like we do on all others. Practical matter is minimal as for almost all archs SA_ONSTACK is 0x08000000: http://lxr.free-electrons.com/ident?i=SA_ONSTACK Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
2dd08dfd9a
commit
b545f63fa9
|
@ -1305,7 +1305,7 @@ static abi_ulong get_sigframe(struct target_sigaction *ka, CPUARMState *env)
|
||||||
/*
|
/*
|
||||||
* This is the X/Open sanctioned signal stack switching.
|
* This is the X/Open sanctioned signal stack switching.
|
||||||
*/
|
*/
|
||||||
if ((ka->sa_flags & SA_ONSTACK) && !sas_ss_flags(sp)) {
|
if ((ka->sa_flags & TARGET_SA_ONSTACK) && !sas_ss_flags(sp)) {
|
||||||
sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size;
|
sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3509,8 +3509,9 @@ static abi_ulong get_sigframe(struct target_sigaction *ka,
|
||||||
{
|
{
|
||||||
abi_ulong sp = env->regs[1];
|
abi_ulong sp = env->regs[1];
|
||||||
|
|
||||||
if ((ka->sa_flags & SA_ONSTACK) != 0 && !on_sig_stack(sp))
|
if ((ka->sa_flags & TARGET_SA_ONSTACK) != 0 && !on_sig_stack(sp)) {
|
||||||
sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size;
|
sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size;
|
||||||
|
}
|
||||||
|
|
||||||
return ((sp - frame_size) & -8UL);
|
return ((sp - frame_size) & -8UL);
|
||||||
}
|
}
|
||||||
|
@ -3891,7 +3892,7 @@ static inline abi_ulong get_sigframe(struct target_sigaction *ka,
|
||||||
|
|
||||||
/* redzone */
|
/* redzone */
|
||||||
/* This is the X/Open sanctioned signal stack switching. */
|
/* This is the X/Open sanctioned signal stack switching. */
|
||||||
if ((ka->sa_flags & SA_ONSTACK) != 0 && !onsigstack) {
|
if ((ka->sa_flags & TARGET_SA_ONSTACK) != 0 && !onsigstack) {
|
||||||
sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size;
|
sp = target_sigaltstack_used.ss_sp + target_sigaltstack_used.ss_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue