aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog18
-rw-r--r--gdb/alpha-linux-tdep.c8
-rw-r--r--gdb/alpha-osf1-tdep.c8
-rw-r--r--gdb/alpha-tdep.c6
-rw-r--r--gdb/alphafbsd-tdep.c9
-rw-r--r--gdb/alphanbsd-tdep.c8
-rw-r--r--gdb/config/alpha/tm-alpha.h5
-rw-r--r--gdb/config/alpha/tm-alphalinux.h7
8 files changed, 52 insertions, 17 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f77061e..8d35409 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,23 @@
2002-04-24 Jason Thorpe <thorpej@wasabisystems.com>
+ * alpha-linux-tdep.c (alpha_linux_pc_in_sigtramp): New function.
+ (alpha_linux_init_abi): Set gdbarch_pc_in_sigtramp to
+ alpha_linux_pc_in_sigtramp.
+ * alpha-osf1-tdep.c (alpha_osf1_pc_in_sigtramp): New function.
+ (alpha_osf1_init_abi): Set gdbarch_pc_in_sigtramp to
+ alpha_osf1_pc_in_sigtramp.
+ * alpha-tdep.c (alpha_osf_in_sigtramp): Remove.
+ * alphafbsd-tdep.c (alphafbsd_pc_in_sigtramp): New function.
+ (alphafbsd_init_abi): Set gdbarch_pc_in_sigtramp to
+ alphafbsd_pc_in_sigtramp.
+ * alphanbsd-tdep.c (alphanbsd_pc_in_sigtramp): New function.
+ (alphanbsd_init_abi): Set gdbarch_pc_in_sigtramp to
+ alphanbsd_pc_in_sigtramp.
+ * config/alpha/tm-alpha.h (IN_SIGTRAMP): Remove.
+ * config/alpha/tm-alphalinux.h (IN_SIGTRAMP): Remove.
+
+2002-04-24 Jason Thorpe <thorpej@wasabisystems.com>
+
* config/alpha/nbsd.mh (NATDEPFILES): Remove solib-legacy.o.
2002-04-24 Jason Thorpe <thorpej@wasabisystems.com>
diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c
index f9b060d..ed7a7c6 100644
--- a/gdb/alpha-linux-tdep.c
+++ b/gdb/alpha-linux-tdep.c
@@ -85,12 +85,20 @@ alpha_linux_sigtramp_offset (CORE_ADDR pc)
return -1;
}
+static int
+alpha_linux_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+{
+ return (alpha_linux_sigtramp_offset (pc) >= 0);
+}
+
static void
alpha_linux_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ set_gdbarch_pc_in_sigtramp (gdbarch, alpha_linux_pc_in_sigtramp);
+
tdep->dynamic_sigtramp_offset = alpha_linux_sigtramp_offset;
}
diff --git a/gdb/alpha-osf1-tdep.c b/gdb/alpha-osf1-tdep.c
index 97ac6fb..cba9134 100644
--- a/gdb/alpha-osf1-tdep.c
+++ b/gdb/alpha-osf1-tdep.c
@@ -37,12 +37,20 @@ alpha_osf1_skip_sigtramp_frame (struct frame_info *frame, CORE_ADDR pc)
return 0;
}
+static int
+alpha_osf1_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+{
+ return (func_name != NULL && STREQ ("__sigtramp", func_name));
+}
+
static void
alpha_osf1_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ set_gdbarch_pc_in_sigtramp (gdbarch, alpha_osf1_pc_in_sigtramp);
+
tdep->skip_sigtramp_frame = alpha_osf1_skip_sigtramp_frame;
}
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index ef0b2cd..035b8d9 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -193,12 +193,6 @@ struct linked_proc_info
}
*linked_proc_desc_table = NULL;
-int
-alpha_osf_in_sigtramp (CORE_ADDR pc, char *func_name)
-{
- return (func_name != NULL && STREQ ("__sigtramp", func_name));
-}
-
static CORE_ADDR
alpha_frame_past_sigtramp_frame (struct frame_info *frame, CORE_ADDR pc)
{
diff --git a/gdb/alphafbsd-tdep.c b/gdb/alphafbsd-tdep.c
index 6a3f7e8..2e52252f 100644
--- a/gdb/alphafbsd-tdep.c
+++ b/gdb/alphafbsd-tdep.c
@@ -54,12 +54,21 @@ alphafbsd_use_struct_convention (int gcc_p, struct type *type)
return 0;
}
+static int
+alphafbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+{
+ /* FIXME */
+ return 0;
+}
+
static void
alphafbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ set_gdbarch_pc_in_sigtramp (gdbarch, alphafbsd_pc_in_sigtramp);
+
set_gdbarch_use_struct_convention (gdbarch, alphafbsd_use_struct_convention);
}
diff --git a/gdb/alphanbsd-tdep.c b/gdb/alphanbsd-tdep.c
index 3f3ae52..c29b3f9 100644
--- a/gdb/alphanbsd-tdep.c
+++ b/gdb/alphanbsd-tdep.c
@@ -123,12 +123,20 @@ alphanbsd_sigtramp_offset (CORE_ADDR pc)
return -1;
}
+static int
+alphanbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+{
+ return (alphanbsd_sigtramp_offset (pc) >= 0);
+}
+
static void
alphanbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ set_gdbarch_pc_in_sigtramp (gdbarch, alphanbsd_pc_in_sigtramp);
+
/* NetBSD/alpha does not provide single step support via ptrace(2); we
must use software single-stepping. */
set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h
index 61d9561..a379332 100644
--- a/gdb/config/alpha/tm-alpha.h
+++ b/gdb/config/alpha/tm-alpha.h
@@ -45,11 +45,6 @@ struct symbol;
#define FUNCTION_START_OFFSET 0
-/* Are we currently handling a signal ? */
-
-#define IN_SIGTRAMP(pc, name) alpha_osf_in_sigtramp ((pc), (name))
-extern int alpha_osf_in_sigtramp (CORE_ADDR, char *);
-
#define BREAKPOINT {0x80, 0, 0, 0} /* call_pal bpt */
/* Special symbol found in blocks associated with routines. We can hang
diff --git a/gdb/config/alpha/tm-alphalinux.h b/gdb/config/alpha/tm-alphalinux.h
index 0235758..fae1743 100644
--- a/gdb/config/alpha/tm-alphalinux.h
+++ b/gdb/config/alpha/tm-alphalinux.h
@@ -27,14 +27,9 @@
#include "alpha/tm-alpha.h"
-/* Are we currently handling a signal ? */
-
-extern LONGEST alpha_linux_sigtramp_offset (CORE_ADDR);
-#undef IN_SIGTRAMP
-#define IN_SIGTRAMP(pc, name) (alpha_linux_sigtramp_offset (pc) >= 0)
-
/* Get start and end address of sigtramp handler. */
+extern LONGEST alpha_linux_sigtramp_offset (CORE_ADDR);
#define SIGTRAMP_START(pc) (pc - alpha_linux_sigtramp_offset (pc))
#define SIGTRAMP_END(pc) (SIGTRAMP_START(pc) + 3*4)