mirror of https://github.com/xemu-project/xemu.git
linux-user: Enable NPTL for OpenRISC
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 <peter.maydell@linaro.org> Reviewed-by: Jia Liu <proljc@gmail.com> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
dfeab06c98
commit
442a59c8dd
|
@ -4236,7 +4236,6 @@ case "$target_name" in
|
|||
or32)
|
||||
TARGET_ARCH=openrisc
|
||||
TARGET_BASE_ARCH=openrisc
|
||||
target_nptl="no"
|
||||
;;
|
||||
ppc)
|
||||
gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue