diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/mips-tdep.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fd79872..b9a9bcd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2018-02-26 Maciej W. Rozycki <macro@mips.com> + * mips-tdep.c (mips_gdbarch_init): Don't use a 32-bit BFD + architecture with a 64-bit ABI. + +2018-02-26 Maciej W. Rozycki <macro@mips.com> + * gdb/mips-tdep.c (mips_gdbarch_init): Reorder ABI determination ahead of target description loading. diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index ae747ff..f9f84c4 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -8185,6 +8185,14 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) fprintf_unfiltered (gdb_stdlog, "mips_gdbarch_init: mips_abi = %d\n", mips_abi); + /* Make sure we don't use a 32-bit architecture with a 64-bit ABI. */ + if (mips_abi != MIPS_ABI_EABI32 + && mips_abi != MIPS_ABI_O32 + && info.bfd_arch_info != NULL + && info.bfd_arch_info->arch == bfd_arch_mips + && info.bfd_arch_info->bits_per_word < 64) + info.bfd_arch_info = bfd_lookup_arch (bfd_arch_mips, bfd_mach_mips4000); + /* Determine the default compressed ISA. */ if ((elf_flags & EF_MIPS_ARCH_ASE_MICROMIPS) != 0 && (elf_flags & EF_MIPS_ARCH_ASE_M16) == 0) |