linux-user/elfload.c: byteswap function is not working when ELF is big endian

Bug #1527300 reported by jordy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Invalid
Undecided
Unassigned

Bug Description

I run qemu-mipsel for ELF with mips MSB(big endian), it always outputs error message: Invalid ELF image for this architecture. For the ELF I run:

$file busybox

ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped

The section header is not corrupted(MSB, corrputed section header table also outputs same error as above), when I run ELF with LSB, it works perfectly. I debugged with /linux-user/elfload.c, I am sure that the problem comes from byteswap function. But I don't know how to handle it. I really hope this can be fixed ASAP. Really appreciate your help.

Revision history for this message
jordy (chenjy18) wrote :
Revision history for this message
Peter Maydell (pmaydell) wrote :

The qemu-mipsel binary is for little-endian executables (that's what the "el" part means), so it is expected that it does not handle BE ELF files. Try "qemu-mips", which is the equivalent QEMU binary for big-endian executables.

Thomas Huth (th-huth)
Changed in qemu:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.