aboutsummaryrefslogtreecommitdiff
path: root/gdb/ia64-tdep.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2001-02-22 03:01:27 +0000
committerKevin Buettner <kevinb@redhat.com>2001-02-22 03:01:27 +0000
commitd7fa2ae2549091f294e6dd103a57ddf1219dfe6c (patch)
treef28343094d9deb829390fe4468891a1f17aac86e /gdb/ia64-tdep.c
parent33d01f331b0673ed67fa8a71c9cb90f7d35d16b7 (diff)
downloadgdb-d7fa2ae2549091f294e6dd103a57ddf1219dfe6c.zip
gdb-d7fa2ae2549091f294e6dd103a57ddf1219dfe6c.tar.gz
gdb-d7fa2ae2549091f294e6dd103a57ddf1219dfe6c.tar.bz2
Made changes to shared library support and added more of the support needed
for AIX/IA-64.
Diffstat (limited to 'gdb/ia64-tdep.c')
-rw-r--r--gdb/ia64-tdep.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index e68c5fb..eb74727 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -76,9 +76,9 @@ typedef enum instruction_type
#define BUNDLE_LEN 16
-extern void _initialize_ia64_tdep (void);
-
+/* FIXME: These extern declarations should go in ia64-tdep.h. */
extern CORE_ADDR ia64_linux_sigcontext_register_address (CORE_ADDR, int);
+extern CORE_ADDR ia64_aix_sigcontext_register_address (CORE_ADDR, int);
static gdbarch_init_ftype ia64_gdbarch_init;
@@ -1970,8 +1970,16 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
gdbarch = gdbarch_alloc (&info, tdep);
tdep->os_ident = os_ident;
+
+ /* Set the method of obtaining the sigcontext addresses at which
+ registers are saved. The method of checking to see if
+ native_find_global_pointer is nonzero to indicate that we're
+ on AIX is kind of hokey, but I can't think of a better way
+ to do it. */
if (os_ident == ELFOSABI_LINUX)
tdep->sigcontext_register_address = ia64_linux_sigcontext_register_address;
+ else if (native_find_global_pointer != 0)
+ tdep->sigcontext_register_address = ia64_aix_sigcontext_register_address;
else
tdep->sigcontext_register_address = 0;