Message ID | 20220603213801.64738-1-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | linux-user/x86_64: Fix ELF_PLATFORM | expand |
On 3/6/22 23:38, Richard Henderson wrote: > We had been using the i686 platform string for x86_64. > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1041 > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > linux-user/elfload.c | 30 +++++++++++++++++------------- > 1 file changed, 17 insertions(+), 13 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Le 03/06/2022 à 23:38, Richard Henderson a écrit : > We had been using the i686 platform string for x86_64. > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1041 > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > linux-user/elfload.c | 30 +++++++++++++++++------------- > 1 file changed, 17 insertions(+), 13 deletions(-) > Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Le 03/06/2022 à 23:38, Richard Henderson a écrit : > We had been using the i686 platform string for x86_64. > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1041 > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > linux-user/elfload.c | 30 +++++++++++++++++------------- > 1 file changed, 17 insertions(+), 13 deletions(-) > > diff --git a/linux-user/elfload.c b/linux-user/elfload.c > index f7eae357f4..163fc8a1ee 100644 > --- a/linux-user/elfload.c > +++ b/linux-user/elfload.c > @@ -130,19 +130,6 @@ typedef abi_int target_pid_t; > > #ifdef TARGET_I386 > > -#define ELF_PLATFORM get_elf_platform() > - > -static const char *get_elf_platform(void) > -{ > - static char elf_platform[] = "i386"; > - int family = object_property_get_int(OBJECT(thread_cpu), "family", NULL); > - if (family > 6) > - family = 6; > - if (family >= 3) > - elf_platform[1] = '0' + family; > - return elf_platform; > -} > - > #define ELF_HWCAP get_elf_hwcap() > > static uint32_t get_elf_hwcap(void) > @@ -158,6 +145,8 @@ static uint32_t get_elf_hwcap(void) > #define ELF_CLASS ELFCLASS64 > #define ELF_ARCH EM_X86_64 > > +#define ELF_PLATFORM "x86_64" > + > static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) > { > regs->rax = 0; > @@ -221,6 +210,21 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUX86State *en > #define ELF_CLASS ELFCLASS32 > #define ELF_ARCH EM_386 > > +#define ELF_PLATFORM get_elf_platform() > + > +static const char *get_elf_platform(void) > +{ > + static char elf_platform[] = "i386"; > + int family = object_property_get_int(OBJECT(thread_cpu), "family", NULL); > + if (family > 6) { > + family = 6; > + } > + if (family >= 3) { > + elf_platform[1] = '0' + family; > + } > + return elf_platform; > +} > + > static inline void init_thread(struct target_pt_regs *regs, > struct image_info *infop) > { Applied to my linux-user-for-7.1 branch. Thanks, Laurent
diff --git a/linux-user/elfload.c b/linux-user/elfload.c index f7eae357f4..163fc8a1ee 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -130,19 +130,6 @@ typedef abi_int target_pid_t; #ifdef TARGET_I386 -#define ELF_PLATFORM get_elf_platform() - -static const char *get_elf_platform(void) -{ - static char elf_platform[] = "i386"; - int family = object_property_get_int(OBJECT(thread_cpu), "family", NULL); - if (family > 6) - family = 6; - if (family >= 3) - elf_platform[1] = '0' + family; - return elf_platform; -} - #define ELF_HWCAP get_elf_hwcap() static uint32_t get_elf_hwcap(void) @@ -158,6 +145,8 @@ static uint32_t get_elf_hwcap(void) #define ELF_CLASS ELFCLASS64 #define ELF_ARCH EM_X86_64 +#define ELF_PLATFORM "x86_64" + static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) { regs->rax = 0; @@ -221,6 +210,21 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUX86State *en #define ELF_CLASS ELFCLASS32 #define ELF_ARCH EM_386 +#define ELF_PLATFORM get_elf_platform() + +static const char *get_elf_platform(void) +{ + static char elf_platform[] = "i386"; + int family = object_property_get_int(OBJECT(thread_cpu), "family", NULL); + if (family > 6) { + family = 6; + } + if (family >= 3) { + elf_platform[1] = '0' + family; + } + return elf_platform; +} + static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) {
We had been using the i686 platform string for x86_64. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1041 Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- linux-user/elfload.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-)