Eu estava olhando para o cabeçalho de alguns arquivos elf e notei algo estranho:
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
...
Por que ele é rotulado como ELF32, mas tem um sinalizador mips64r2? O que isso indica? Isso significa que o arquivo foi compilado como um programa de 32 bits destinado a ser executado em um processador de 64 bits?
Além disso, se estiver em execução no mips64r2, por que a máquina é rotulada como MIPS r3000?
Se eu quisesse executar isso com o qemu, de que tipo de ambiente eu precisaria? mips64 r2? mips r3000?