qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 6/8] linux-user: Enable NPTL for OpenRISC


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 6/8] linux-user: Enable NPTL for OpenRISC
Date: Sat, 13 Jul 2013 09:04:58 +0100

On 13 July 2013 08:40, Jia Liu <address@hidden> wrote:
> Hi Peter,
>
> On Sat, Jul 13, 2013 at 4:12 AM, Peter Maydell <address@hidden> wrote:
>> The OpenRISC kernel ignores CLONE_SETTLS in its copy_thread()
>> implementation, so a cpu_set_tls() implementation is a no-op.
>> cpu_clone_regs() was setting the syscall return value in the
>> wrong register -- it is gpr[11], not gpr[2]. With these two
>> things fixed, we can compile with NPTL enabled.
>>
>> Signed-off-by: Peter Maydell <address@hidden>
>> ---
>>  configure                        |    1 -
>>  linux-user/openrisc/target_cpu.h |    9 +++++++--
>>  2 files changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 4a241e0..3848c1c 100755
>> --- a/configure
>> +++ b/configure
>> @@ -4229,7 +4229,6 @@ case "$target_name" in
>>    or32)
>>      TARGET_ARCH=openrisc
>>      TARGET_BASE_ARCH=openrisc
>> -    target_nptl="no"
>>    ;;
>
> I noticed configure have no this line.

An earlier patch in the series rearranges this bit of
configure so targets have to say "no" (and the default
is "yes"), rather than the default being "no" and targets
having to say "yes".

>>    ppc)
>>      gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml 
>> power-spe.xml"
>> diff --git a/linux-user/openrisc/target_cpu.h 
>> b/linux-user/openrisc/target_cpu.h
>> index 501fb81..32a46ac 100644
>> --- a/linux-user/openrisc/target_cpu.h
>> +++ b/linux-user/openrisc/target_cpu.h
>> @@ -25,9 +25,14 @@ static inline void cpu_clone_regs(CPUOpenRISCState *env, 
>> target_ulong newsp)
>>      if (newsp) {
>>          env->gpr[1] = newsp;
>>      }
>> -    env->gpr[2] = 0;
>> +    env->gpr[11] = 0;
>>  }
>>
>> -/* TODO: need to implement cpu_set_tls() */
>> +static inline void cpu_set_tls(CPUOpenRISCState *env, target_ulong newtls)
>> +{
>> +    /* Linux kernel 3.10 does not pay any attention to CLONE_SETTLS
>> +     * in copy_thread(), so QEMU need not do so either.
>> +     */
>> +}
>
> Thanks for fix. It looks good to me.
>
> I need to reply here a Reviewed-by: Jia Liu <address@hidden> , yes?

Yes.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]