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 <pbonzini@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
2f859f80c2
commit
24aeeace7a
2
dump.c
2
dump.c
@ -1000,7 +1000,7 @@ out:
|
|||||||
|
|
||||||
static int write_dump_header(DumpState *s)
|
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);
|
return create_header32(s);
|
||||||
} else {
|
} else {
|
||||||
return create_header64(s);
|
return create_header64(s);
|
||||||
|
Loading…
Reference in New Issue
Block a user