X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fia64-linux-tdep.c;h=838bc0bf0d2792d0a35c316c46f3ec7c54109c96;hb=6479260d11c8f24a33cea6d0c79778a6beae1f9d;hp=4b8a02bb025b8e7aab45c84b87ac6713d1fcac43;hpb=a9762ec78a53fbe9209fe1654db42df0cd328d50;p=binutils-gdb.git diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c index 4b8a02bb025..838bc0bf0d2 100644 --- a/gdb/ia64-linux-tdep.c +++ b/gdb/ia64-linux-tdep.c @@ -1,6 +1,7 @@ /* Target-dependent code for the IA-64 for GDB, the GNU debugger. - Copyright (C) 2000, 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2000, 2004, 2005, 2007, 2008, 2009 + Free Software Foundation, Inc. This file is part of GDB. @@ -49,14 +50,16 @@ ia64_linux_pc_in_sigtramp (CORE_ADDR pc) sigcontext structure. */ static CORE_ADDR -ia64_linux_sigcontext_register_address (CORE_ADDR sp, int regno) +ia64_linux_sigcontext_register_address (struct gdbarch *gdbarch, + CORE_ADDR sp, int regno) { + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); char buf[8]; CORE_ADDR sigcontext_addr = 0; /* The address of the sigcontext area is found at offset 16 in the sigframe. */ read_memory (sp + 16, buf, 8); - sigcontext_addr = extract_unsigned_integer (buf, 8); + sigcontext_addr = extract_unsigned_integer (buf, 8, byte_order); if (IA64_GR0_REGNUM <= regno && regno <= IA64_GR31_REGNUM) return sigcontext_addr + 200 + 8 * (regno - IA64_GR0_REGNUM); @@ -130,11 +133,17 @@ ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); + set_solib_svr4_fetch_link_map_offsets + (gdbarch, svr4_lp64_fetch_link_map_offsets); + /* Enable TLS support. */ set_gdbarch_fetch_tls_load_module_address (gdbarch, svr4_fetch_objfile_link_map); } +/* Provide a prototype to silence -Wmissing-prototypes. */ +extern initialize_file_ftype _initialize_ia64_linux_tdep; + void _initialize_ia64_linux_tdep (void) {