linux-user: Add ELF_PLATFORM for arm
The 32-bit kernel has strings for v4, v5, v6, v7, v7m. The 64-bit kernel, in compat mode, has strings for v8. Fixes: https://bugs.launchpad.net/bugs/1813034 Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20190212074840.13542-2-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
24894f39c6
commit
13ec4ec3e1
@ -500,6 +500,37 @@ static uint32_t get_elf_hwcap2(void)
|
||||
#undef GET_FEATURE
|
||||
#undef GET_FEATURE_ID
|
||||
|
||||
#define ELF_PLATFORM get_elf_platform()
|
||||
|
||||
static const char *get_elf_platform(void)
|
||||
{
|
||||
CPUARMState *env = thread_cpu->env_ptr;
|
||||
|
||||
#ifdef TARGET_WORDS_BIGENDIAN
|
||||
# define END "b"
|
||||
#else
|
||||
# define END "l"
|
||||
#endif
|
||||
|
||||
if (arm_feature(env, ARM_FEATURE_V8)) {
|
||||
return "v8" END;
|
||||
} else if (arm_feature(env, ARM_FEATURE_V7)) {
|
||||
if (arm_feature(env, ARM_FEATURE_M)) {
|
||||
return "v7m" END;
|
||||
} else {
|
||||
return "v7" END;
|
||||
}
|
||||
} else if (arm_feature(env, ARM_FEATURE_V6)) {
|
||||
return "v6" END;
|
||||
} else if (arm_feature(env, ARM_FEATURE_V5)) {
|
||||
return "v5" END;
|
||||
} else {
|
||||
return "v4" END;
|
||||
}
|
||||
|
||||
#undef END
|
||||
}
|
||||
|
||||
#else
|
||||
/* 64 bit ARM definitions */
|
||||
#define ELF_START_MMAP 0x80000000
|
||||
|
Loading…
Reference in New Issue
Block a user