This idea has been suggested to me before by Philippe Mathieu-Daudé, and recently YunQiang Su has proposed a patch to manage the MIPS r6 case.
Based on this, this series tries to clean-up the original patch, and introduces the use for m68k architecture and port the patch from YunQiang Su. v2: move cpu_model selection to linux-user/*/target_elf.h provide eflags to cpu_get_model() instead of fd (and modify other patches accordingly) Laurent Vivier (2): linux-user: Move CPU type name selection to a function linux-user,m68k: select CPU according to ELF header values YunQiang Su (2): linux-user: introduce functions to detect CPU type linux-user: MIPS set cpu to r6 CPU if binary is R6 include/elf.h | 4 +++ linux-user/aarch64/target_elf.h | 14 +++++++++ linux-user/alpha/target_elf.h | 14 +++++++++ linux-user/arm/target_elf.h | 14 +++++++++ linux-user/cris/target_elf.h | 14 +++++++++ linux-user/elfload.c | 35 ++++++++++++++++++++++ linux-user/hppa/target_elf.h | 14 +++++++++ linux-user/i386/target_elf.h | 14 +++++++++ linux-user/m68k/target_elf.h | 20 +++++++++++++ linux-user/main.c | 59 +++++++------------------------------- linux-user/microblaze/target_elf.h | 14 +++++++++ linux-user/mips/target_elf.h | 17 +++++++++++ linux-user/mips64/target_elf.h | 17 +++++++++++ linux-user/nios2/target_elf.h | 14 +++++++++ linux-user/openrisc/target_elf.h | 14 +++++++++ linux-user/ppc/target_elf.h | 21 ++++++++++++++ linux-user/qemu.h | 1 + linux-user/s390x/target_elf.h | 14 +++++++++ linux-user/sh4/target_elf.h | 14 +++++++++ linux-user/sparc/target_elf.h | 14 +++++++++ linux-user/sparc64/target_elf.h | 14 +++++++++ linux-user/tilegx/target_elf.h | 14 +++++++++ linux-user/unicore32/target_elf.h | 14 +++++++++ linux-user/x86_64/target_elf.h | 14 +++++++++ 24 files changed, 350 insertions(+), 48 deletions(-) create mode 100644 linux-user/aarch64/target_elf.h create mode 100644 linux-user/alpha/target_elf.h create mode 100644 linux-user/arm/target_elf.h create mode 100644 linux-user/cris/target_elf.h create mode 100644 linux-user/hppa/target_elf.h create mode 100644 linux-user/i386/target_elf.h create mode 100644 linux-user/m68k/target_elf.h create mode 100644 linux-user/microblaze/target_elf.h create mode 100644 linux-user/mips/target_elf.h create mode 100644 linux-user/mips64/target_elf.h create mode 100644 linux-user/nios2/target_elf.h create mode 100644 linux-user/openrisc/target_elf.h create mode 100644 linux-user/ppc/target_elf.h create mode 100644 linux-user/s390x/target_elf.h create mode 100644 linux-user/sh4/target_elf.h create mode 100644 linux-user/sparc/target_elf.h create mode 100644 linux-user/sparc64/target_elf.h create mode 100644 linux-user/tilegx/target_elf.h create mode 100644 linux-user/unicore32/target_elf.h create mode 100644 linux-user/x86_64/target_elf.h -- 2.14.3