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
|