I was looking at the header of some elf files and noticed something odd:

ELF Header:
  Magic:   7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, big endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           MIPS R3000
  Version:                           0x1
  Flags:                             0x80000027, noreorder, pic, cpic, abi2, mips64r2

Why is it labeled as ELF32 but have a mips64r2 flag? What does that indicate? Does it mean that the file was compiled as a 32 bit program intended to be run on a 64 bit processor?

Also, if it is running on mips64r2, why is the machine labeled as MIPS r3000?

If I wanted to run this with qemu, what type of environment would I need? mips64 r2? mips r3000?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.