qemu-patch-raspberry4/linux-user
Philippe Mathieu-Daudé 6f08c9c531 Revert "elf: Relax MIPS' elf_check_arch() to accept EM_NANOMIPS too"
Per the "P32 Porting Guide" (rev 1.2) [1], chapter 2:

  p32 ABI Overview
  ----------------

  The Application Binary Interface, or ABI, is the set of rules
  that all binaries must follow in order to run on a nanoMIPS
  system. This includes, for example, object file format,
  instruction set, data layout, subroutine calling convention,
  and system call numbers. The ABI is one part of the mechanism
  that maintains binary compatibility across all nanoMIPS platforms.

  p32 improves on o32 to provide an ABI that is efficient in both
  code density and performance. p32 is required for the nanoMIPS
  architecture.

So far QEMU only support the MIPS o32 / n32 / n64 ABIs. The p32 ABI
is not implemented, therefore we can not run any nanoMIPS binary.

Revert commit f72541f3a5 ("elf: Relax MIPS' elf_check_arch() to
accept EM_NANOMIPS too").

See also the "ELF ABI Supplement" [2].

[1] http://codescape.mips.com/components/toolchain/nanomips/2019.03-01/docs/MIPS_nanoMIPS_p32_ABI_Porting_Guide_01_02_DN00184.pdf
[2] http://codescape.mips.com/components/toolchain/nanomips/2019.03-01/docs/MIPS_nanoMIPS_ABI_supplement_01_03_DN00179.pdf

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211101114800.2692157-1-f4bug@amsat.org>
2021-11-02 14:35:22 +01:00
..
aarch64 linux-user/aarch64: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
alpha linux-user/alpha: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
arm linux-user/arm: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
cris linux-user/cris: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
generic linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
hexagon linux-user/hexagon: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
host linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
hppa linux-user/hppa: Document non-use of setup_sigtramp 2021-10-01 12:03:48 +02:00
i386 linux-user/x86_64: Raise SIGSEGV if SA_RESTORER not set 2021-10-01 12:03:48 +02:00
m68k linux-user/m68k: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
microblaze linux-user/microblaze: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
mips linux-user/mips: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
mips64 linux-user/mips: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
nios2 linux-user/nios2: Document non-use of setup_sigtramp 2021-10-01 12:03:48 +02:00
openrisc linux-user/openrisc: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
ppc linux-user/ppc: Fix XER access in save/restore_user_regs 2021-10-21 11:42:47 +11:00
riscv target/riscv: Split misa.mxl and misa.ext 2021-10-22 07:47:51 +10:00
s390x linux-user/s390x: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
sh4 linux-user/sh4: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
sparc linux-user/sparc: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
x86_64 linux-user/i386: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
xtensa linux-user/xtensa: Implement setup_sigtramp 2021-10-01 12:03:48 +02:00
cpu_loop-common.h cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
elfload.c Revert "elf: Relax MIPS' elf_check_arch() to accept EM_NANOMIPS too" 2021-11-02 14:35:22 +01:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 2021-07-12 21:54:46 +02:00
flat.h linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ioctls.h linux-user: Conditionalize TUNSETVNETLE 2021-01-07 05:09:06 -10:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c Pull request linux-user 20210916 2021-09-16 21:09:18 +01:00
meson.build meson: *-user: only descend into *-user when configured 2021-10-18 12:51:39 -06:00
mmap.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
qemu.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
safe-syscall.h linux-user: Split safe-syscall macro into its own header 2021-09-13 20:35:45 +02:00
safe-syscall.S linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
semihost.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
signal-common.h linux-user: Add infrastructure for a signal trampoline page 2021-10-01 12:03:47 +02:00
signal.c linux-user: Add infrastructure for a signal trampoline page 2021-10-01 12:03:47 +02:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
strace.h linux-user: Split strace prototypes into strace.h 2021-09-13 20:35:44 +02:00
strace.list linux-user: Add copy_file_range to strace.list 2021-05-18 07:09:58 +02:00
syscall.c linux-user: Check lock_user result for ip_mreq_source sockopts 2021-09-16 17:04:21 +02:00
syscall_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
syscall_types.h linux-user: Add support for btrfs ioctls used to scrub a filesystem 2020-09-03 01:09:35 +02:00
target_flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
trace-events linux-user/trace-events: fix minor typo in format string 2021-06-17 16:09:11 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
user-internals.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
user-mmap.h linux-user: Split mmap prototypes into user-mmap.h 2021-09-13 20:35:45 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00