From 24aeeace7a9f264688e9eda77b6c04db607cbdfd Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Tue, 20 May 2014 13:39:45 +0200 Subject: [PATCH] dump: select header bitness based on ELF class, not ELF architecture The specific ELF architecture (d_machine) carries Too Much Information (TM) for deciding between create_header32() and create_header64(), use "d_class" instead (ELFCLASS32 vs. ELFCLASS64). This change adapts write_dump_header() to write_elf_loads(), dump_begin() etc. that also rely on the ELF class of the target for bitness selection. Considering the current targets that support dumping, cpu_get_dump_info() works as follows: - target-s390x/arch_dump.c: (EM_S390, ELFCLASS64) only - target-ppc/arch_dump.c (EM_PPC64, ELFCLASS64) only - target-i386/arch_dump.c: sets (EM_X86_64, ELFCLASS64) vs. (EM_386, ELFCLASS32) keying off the same Long Mode Active flag. Hence no observable change. Approximately-suggested-by: Paolo Bonzini Signed-off-by: Laszlo Ersek Reviewed-by: Paolo Bonzini Signed-off-by: Luiz Capitulino --- dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dump.c b/dump.c index e0a606fbbc..7e0982bb5a 100644 --- a/dump.c +++ b/dump.c @@ -1000,7 +1000,7 @@ out: static int write_dump_header(DumpState *s) { - if (s->dump_info.d_machine == EM_386) { + if (s->dump_info.d_class == ELFCLASS32) { return create_header32(s); } else { return create_header64(s);