diff options
Diffstat (limited to 'gdb/i386-linux-tdep.c')
-rw-r--r-- | gdb/i386-linux-tdep.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c index 4b05cc6..34e1391 100644 --- a/gdb/i386-linux-tdep.c +++ b/gdb/i386-linux-tdep.c @@ -30,6 +30,7 @@ #include "i386-tdep.h" #include "i386-linux-tdep.h" #include "linux-tdep.h" +#include "solib-svr4-linux.h" #include "utils.h" #include "glibc-tdep.h" #include "solib-svr4.h" @@ -1043,6 +1044,8 @@ int i386_linux_gregset_reg_offset[] = -1, -1, -1, -1, -1, -1, -1, -1, /* k0 ... k7 (AVX512) */ -1, -1, -1, -1, -1, -1, -1, -1, /* zmm0 ... zmm7 (AVX512) */ -1, /* PKRU register */ + -1, /* SSP register. */ + -1, -1, /* fs/gs base registers. */ 11 * 4, /* "orig_eax" */ }; @@ -1104,11 +1107,10 @@ i386_linux_core_read_xsave_info (bfd *abfd, x86_xsave_layout &layout) /* See i386-linux-tdep.h. */ bool -i386_linux_core_read_x86_xsave_layout (struct gdbarch *gdbarch, +i386_linux_core_read_x86_xsave_layout (struct gdbarch *gdbarch, bfd &cbfd, x86_xsave_layout &layout) { - return i386_linux_core_read_xsave_info (current_program_space->core_bfd (), - layout) != 0; + return i386_linux_core_read_xsave_info (&cbfd, layout) != 0; } /* See arch/x86-linux-tdesc.h. */ @@ -1461,8 +1463,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux uses SVR4-style shared libraries. */ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); - set_solib_svr4_fetch_link_map_offsets - (gdbarch, linux_ilp32_fetch_link_map_offsets); + set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops); /* GNU/Linux uses the dynamic linker included in the GNU C Library. */ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); @@ -1490,10 +1491,11 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) i386_linux_get_syscall_number); } -void _initialize_i386_linux_tdep (); -void -_initialize_i386_linux_tdep () +INIT_GDB_FILE (i386_linux_tdep) { + gdb_assert (ARRAY_SIZE (i386_linux_gregset_reg_offset) + == I386_LINUX_NUM_REGS); + gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX, i386_linux_init_abi); } |