Le 25/10/2019 à 15:38, Richard Henderson a écrit :
> On 10/25/19 8:47 AM, Laurent Vivier wrote:
>> Le 25/10/2019 à 13:39, Richard Henderson a écrit :
>>> Instructions are always 4 bytes; use uint32_t not abi_ulong.
>>>
>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>>> ---
>>> linux-user/sparc/signal.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c
>>> index efb0df7e2b..ecfdf937e4 100644
>>> --- a/linux-user/sparc/signal.c
>>> +++ b/linux-user/sparc/signal.c
>>> @@ -87,7 +87,7 @@ struct target_signal_frame {
>>> struct sparc_stackf ss;
>>> __siginfo_t info;
>>> abi_ulong fpu_save;
>>> - abi_ulong insns[2] __attribute__ ((aligned (8)));
>>> + uint32_t insns[2] __attribute__ ((aligned (8)));
>>> abi_ulong extramask[TARGET_NSIG_WORDS - 1];
>>> abi_ulong extra_size; /* Should be 0 */
>>> qemu_siginfo_fpu_t fpu_state;
>>> @@ -98,7 +98,7 @@ struct target_rt_signal_frame {
>>> abi_ulong regs[20];
>>> sigset_t mask;
>>> abi_ulong fpu_save;
>>> - unsigned int insns[2];
>>> + uint32_t insns[2];
>>> stack_t stack;
>>> unsigned int extra_size; /* Should be 0 */
>>> qemu_siginfo_fpu_t fpu_state;
>>>
>>
>> This definition is used by sparc and sparc64 (sparc64/signal.c includes
>> sparc/signal.c), so the definition was valid before your changes for
>> sparc and not good for sparc64. Moreover rt_signal_frame for sparc64
>> doesn't look like this one (and signal_frame doesn't exist).
>
> You're right that target_rt_signal_frame isn't correct for sparc64. But we
> also don't implement setup_rt_frame yet, so it's also currently unused.
>
> What's here is just good enough to make setup_frame work, and that is correct
> for both sparc and sparc64.
ok
Reviewed-by: Laurent Vivier <laurent@vivier.eu>