All of lore.kernel.org
 help / color / mirror / Atom feed
* QEMU MIPS user space emulation issue
@ 2006-09-11 16:07 Dirk Behme
  2006-09-11 21:30 ` Thiemo Seufer
  0 siblings, 1 reply; 2+ messages in thread
From: Dirk Behme @ 2006-09-11 16:07 UTC (permalink / raw)
  To: linux-mips

Hi,

we have an issue using QEMUs MIPS user space emulation 
running programs compiled with mipsel glibc based 
crosscompiler [1]. Because I'm not sure if it's a QEMU or 
toolchain (or anything else?) issue, I'd like to ask the 
experts here.

Up to now, the conclusion from [1] is that QEMUs mipsel user 
space emulation fails executing a simple hello world program 
if compiled with glibc based mipsel toolchain build with 
crosstool and linked dynamically. Compiled with toolchain 
using uClib or same program linked statically (-static) is okay.

For example, hello world compiled with mipsel toolchain 
build with crosstool-0.42 configuration

cat mipsel.dat gcc-3.4.1-glibc-2.3.2.dat

fails if dynamically linked. As mentioned above, using 
-static is okay.

If failing, debug output shows that code

...
0x401fa00c:  lw t9,-32600(gp)
0x401fa010:  addiu      a0,a0,30820
0x401fa014:  addiu      a1,a1,29452
0x401fa018:  addiu      a3,a3,25856
0x401fa01c:  jalr       t9
0x401fa020:  li a2,161
...

fails because it seems that it gets a wrong jump address in t9:

pc=0x00012a2c HI=0x00000000 LO=0x00000000 ds 0003 00000000 0
GPR00: r0 00000000 at 00000000 v0 401f60d4 v1 00000008
GPR04: a0 00017864 a1 0001730c a2 000000a1 a3 00016500
GPR08: t0 90000000 t1 401f6000 t2 40000000 t3 6fffffff
GPR12: t4 70000053 t5 401f3c20 t6 401f3f20 t7 00000063
GPR16: s0 6fffff72 s1 00000000 s2 00000000 s3 00000000
GPR20: s4 00000000 s5 00000000 s6 00000000 s7 00000000
GPR24: t8 6ffffdff t9 00012a2c k0 00000000 k1 00000000
GPR28: gp 40257020 sp 401f3c08 s8 00000000 ra 401fa024
CP0 Status 0x30400014 Cause 0x00000000 EPC 0x00000000
Config0 0x80000082 Config1 0x1e190c8b LLAddr 0x00000000
CP1 FCR0 0x00000110 FCR31 0x00000000 SR.FR 0
...
cpu_mips_handle_mmu_fault pc 00012a2c ad 00012a2c rw 0 
is_user 1 smmu 0

Any ideas or hints where to search?

Many thanks

Dirk

[1] Thread "MIPS little endian user space emulation" on QEMU 
devel mailinglist
http://lists.gnu.org/archive/html/qemu-devel/2006-09/msg00090.html

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: QEMU MIPS user space emulation issue
  2006-09-11 16:07 QEMU MIPS user space emulation issue Dirk Behme
@ 2006-09-11 21:30 ` Thiemo Seufer
  0 siblings, 0 replies; 2+ messages in thread
From: Thiemo Seufer @ 2006-09-11 21:30 UTC (permalink / raw)
  To: Dirk Behme; +Cc: linux-mips

Dirk Behme wrote:
> Hi,
> 
> we have an issue using QEMUs MIPS user space emulation 
> running programs compiled with mipsel glibc based 
> crosscompiler [1]. Because I'm not sure if it's a QEMU or 
> toolchain (or anything else?) issue, I'd like to ask the 
> experts here.
> 
> Up to now, the conclusion from [1] is that QEMUs mipsel user 
> space emulation fails executing a simple hello world program 
> if compiled with glibc based mipsel toolchain build with 
> crosstool and linked dynamically. Compiled with toolchain 
> using uClib or same program linked statically (-static) is okay.

So this is unlikely to be a kernel problem.

> For example, hello world compiled with mipsel toolchain 
> build with crosstool-0.42 configuration
> 
> cat mipsel.dat gcc-3.4.1-glibc-2.3.2.dat
> 
> fails if dynamically linked. As mentioned above, using 
> -static is okay.

Start from a known working mipsel userland, e.g. the one from Debian
unstable, and use it to isolate the bug.

> If failing, debug output shows that code
> 
> ...
> 0x401fa00c:  lw t9,-32600(gp)
> 0x401fa010:  addiu      a0,a0,30820
> 0x401fa014:  addiu      a1,a1,29452
> 0x401fa018:  addiu      a3,a3,25856
> 0x401fa01c:  jalr       t9
> 0x401fa020:  li a2,161
> ...

Sa a guess, it might be a dynamic symbol mis-resolved by the ld.so.


Thiemo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-09-11 21:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-11 16:07 QEMU MIPS user space emulation issue Dirk Behme
2006-09-11 21:30 ` Thiemo Seufer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.