| Index: gdb/nacl-tdep.c
|
| diff --git a/gdb/nacl-tdep.c b/gdb/nacl-tdep.c
|
| index e7a1a8f40aedf565619f8cf2c1850ab36d357a85..9a408ddbfcb534f2b1a730b980c86be6daf521b3 100644
|
| --- a/gdb/nacl-tdep.c
|
| +++ b/gdb/nacl-tdep.c
|
| @@ -30,6 +30,19 @@
|
| #include "disasm.h"
|
| #include "breakpoint.h"
|
| #include "target.h"
|
| +#include "elf-bfd.h"
|
| +
|
| +static enum gdb_osabi
|
| +nacl_osabi_sniffer (bfd *abfd)
|
| +{
|
| + /* WARNING! This way of checking for NaCl OS ABI is deprecated.
|
| + See http://code.google.com/p/nativeclient/issues/detail?id=2971 */
|
| + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour &&
|
| + elf_elfheader (abfd)->e_ident[EI_OSABI] == 123)
|
| + return GDB_OSABI_NACL;
|
| +
|
| + return GDB_OSABI_UNKNOWN;
|
| +}
|
|
|
| static void
|
| nacl_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
| @@ -153,6 +166,7 @@ static void
|
| amd64_nacl_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
| {
|
| struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
| +
|
| linux_init_abi (info, gdbarch);
|
| amd64_init_abi (info, gdbarch);
|
| tdep->tdesc = tdesc_amd64_linux;
|
| @@ -193,6 +207,9 @@ extern void _initialize_nacl_tdep (void);
|
| void
|
| _initialize_nacl_tdep (void)
|
| {
|
| + gdbarch_register_osabi_sniffer (bfd_arch_i386, bfd_target_elf_flavour,
|
| + nacl_osabi_sniffer);
|
| +
|
| gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64,
|
| GDB_OSABI_NACL, amd64_nacl_init_abi);
|
|
|
|
|