On 12/02/2019 08:48, Richard Henderson wrote: > 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.hender...@linaro.org> > --- > v2: Include v8. > --- > linux-user/elfload.c | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/linux-user/elfload.c b/linux-user/elfload.c > index 775a36ccdd..d796d51ec6 100644 > --- a/linux-user/elfload.c > +++ b/linux-user/elfload.c > @@ -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; > + }
I know nothing about ARM, but in kernel we have also a "v5t" (cpu_elf_name) and in QEMU we have a ARM_FEATURE_V4T which is set with ARM_FEATURE_V5. Is it related? Reviewed-by: Laurent Vivier <laur...@vivier.eu> Thanks, Laurent