aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/alpha
diff options
context:
space:
mode:
authorJason Thorpe <thorpej@netbsd.org>2002-04-25 02:28:57 +0000
committerJason Thorpe <thorpej@netbsd.org>2002-04-25 02:28:57 +0000
commit36a6271d5e87dca85b032036e2a3a0209ebf73cc (patch)
tree3402c4867d8b77c4d74a2af82b9c0fd2fbc8d7e5 /gdb/config/alpha
parent2f4bc57b955a3c78e3c9a5e282e17da1baef9d7d (diff)
downloadgdb-36a6271d5e87dca85b032036e2a3a0209ebf73cc.zip
gdb-36a6271d5e87dca85b032036e2a3a0209ebf73cc.tar.gz
gdb-36a6271d5e87dca85b032036e2a3a0209ebf73cc.tar.bz2
* Makefile.in (ALLDEPFILES): Add alpha-osf1-tdep.c.
(alpha-osf1-tdep.o): New dependency list. * alpha-tdep.h (gdbarch_tdep): Add dynamic_sigtramp_offset and skip_sigtramp_frame members. * alpha-linux-tdep.c: Include gdbcore.h. (alpha_linux_sigtramp_offset): Change return type to LONGEST. (alpha_linux_init_abi): Initialize tdep->dynamic_sigtramp_offset. * alpha-osf1-tdep.c: New file. * alpha-tdep.c (alpha_osf_skip_sigtramp_frame): Moved to alpha-osf1-dep.c. (alpha_frame_past_sigtramp_frame): New function. (alpha_dynamic_sigtramp_offset): Ditto. (alpha_proc_desc_is_dyn_sigtramp): Ditto. (alpha_set_proc_desc_is_dyn_sigtramp): Ditto. (ALPHA_PROC_SIGTRAMP_MAGIC): Define. (push_sigtramp_desc): Use alpha_set_proc_desc_is_dyn_sigtramp. (after_prologue): Use alpha_proc_desc_is_dyn_sigtramp. (find_proc_desc): Use alpha_dynamic_sigtramp_offset. (alpha_frame_chain): Use alpha_frame_past_sigtramp_frame. (alpha_init_extra_frame_info): Use alpha_proc_desc_is_dyn_sigtramp. (alpha_pop_frame): Use alpha_proc_desc_is_dyn_sigtramp. (alpha_gdbarch_init): Initialize tdep->dynamic_sigtramp_offset and tdep->skip_sigtramp_frame. Set gdbarch_skip_trampoline_code to find_solib_trampoline_target. * config/alpha/alpha-osf1.mt (TDEPFILES): Add alpha-osf1-tdep.o. * config/alpha/tm-alpha.h: Remove inclusion of regcache.h. (SKIP_TRAMPOLINE_CODE): Remove. (PROC_DESC_IS_DYN_SIGTRAMP): Ditto. (SET_PROC_DESC_IS_DYN_SIGTRAMP): Ditto. (DYNAMIC_SIGTRAMP_OFFSET): Ditto. (FRAME_PAST_SIGTRAMP_FRAME): Ditto. * config/alpha/tm-alphalinux.h (PROC_DESC_IS_DYN_SIGTRAMP): Remove. (PROC_SIGTRAMP_MAGIC): Ditto. (PROC_DESC_IS_DYN_SIGTRAMP): Ditto. (SET_PROC_DESC_IS_DYN_SIGTRAMP): Ditto. (SET_PROC_DESC_IS_DYN_SIGTRAMP): Ditto. (DYNAMIC_SIGTRAMP_OFFSET): Ditto. (FRAME_PAST_SIGTRAMP_FRAME): Ditto.
Diffstat (limited to 'gdb/config/alpha')
-rw-r--r--gdb/config/alpha/alpha-osf1.mt2
-rw-r--r--gdb/config/alpha/tm-alpha.h38
-rw-r--r--gdb/config/alpha/tm-alphalinux.h29
3 files changed, 5 insertions, 64 deletions
diff --git a/gdb/config/alpha/alpha-osf1.mt b/gdb/config/alpha/alpha-osf1.mt
index 98f87c1..29212c9 100644
--- a/gdb/config/alpha/alpha-osf1.mt
+++ b/gdb/config/alpha/alpha-osf1.mt
@@ -1,3 +1,3 @@
# Target: Little-endian Alpha
-TDEPFILES= alpha-tdep.o
+TDEPFILES= alpha-tdep.o alpha-osf1-tdep.o
TM_FILE= tm-alpha.h
diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h
index bfc2a6e..61d9561 100644
--- a/gdb/config/alpha/tm-alpha.h
+++ b/gdb/config/alpha/tm-alpha.h
@@ -26,7 +26,6 @@
#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
-#include "regcache.h"
#include "bfd.h"
#include "coff/sym.h" /* Needed for PDR below. */
#include "coff/symconst.h"
@@ -36,10 +35,9 @@ struct type;
struct value;
struct symbol;
-/* Number of traps that happen between exec'ing the shell
- * to run an inferior, and when we finally get to
- * the inferior code. This is 2 on most implementations.
- */
+/* Number of traps that happen between exec'ing the shell
+ to run an inferior, and when we finally get to
+ the inferior code. This is 2 on most implementations. */
#define START_INFERIOR_TRAPS_EXPECTED 3
/* Offset from address of function to start of its code.
@@ -99,40 +97,10 @@ extern void alpha_print_extra_frame_info (struct frame_info *);
alpha_setup_arbitrary_frame (argc, argv)
extern struct frame_info *alpha_setup_arbitrary_frame (int, CORE_ADDR *);
-/* If PC is in a shared library trampoline code, return the PC
- where the function itself actually starts. If not, return 0. */
-#define SKIP_TRAMPOLINE_CODE(pc) find_solib_trampoline_target (pc)
-
-/* Return TRUE if procedure descriptor PROC is a procedure descriptor
- that refers to a dynamically generated sigtramp function.
-
- OSF/1 doesn't use dynamic sigtramp functions, so this is always
- FALSE. */
-
-#define PROC_DESC_IS_DYN_SIGTRAMP(proc) (0)
-#define SET_PROC_DESC_IS_DYN_SIGTRAMP(proc)
-
-/* If PC is inside a dynamically generated sigtramp function, return
- how many bytes the program counter is beyond the start of that
- function. Otherwise, return a negative value.
-
- OSF/1 doesn't use dynamic sigtramp functions, so this always
- returns -1. */
-
-#define DYNAMIC_SIGTRAMP_OFFSET(pc) (-1)
-
/* Translate a signal handler frame into the address of the sigcontext
structure. */
#define SIGCONTEXT_ADDR(frame) \
(read_memory_integer ((frame)->next ? frame->next->frame : frame->frame, 8))
-/* If FRAME refers to a sigtramp frame, return the address of the next
- frame. */
-
-#define FRAME_PAST_SIGTRAMP_FRAME(frame, pc) \
- (alpha_osf_skip_sigtramp_frame (frame, pc))
-extern CORE_ADDR alpha_osf_skip_sigtramp_frame (struct frame_info *,
- CORE_ADDR);
-
#endif /* TM_ALPHA_H */
diff --git a/gdb/config/alpha/tm-alphalinux.h b/gdb/config/alpha/tm-alphalinux.h
index 23592aa..0235758 100644
--- a/gdb/config/alpha/tm-alphalinux.h
+++ b/gdb/config/alpha/tm-alphalinux.h
@@ -29,7 +29,7 @@
/* Are we currently handling a signal ? */
-extern long alpha_linux_sigtramp_offset (CORE_ADDR);
+extern LONGEST alpha_linux_sigtramp_offset (CORE_ADDR);
#undef IN_SIGTRAMP
#define IN_SIGTRAMP(pc, name) (alpha_linux_sigtramp_offset (pc) >= 0)
@@ -42,42 +42,15 @@ extern long alpha_linux_sigtramp_offset (CORE_ADDR);
/* Number of traps that happen between exec'ing the shell to run an
inferior, and when we finally get to the inferior code. This is 2
on GNU/Linux and most implementations. */
-
#undef START_INFERIOR_TRAPS_EXPECTED
#define START_INFERIOR_TRAPS_EXPECTED 2
-/* Return TRUE if procedure descriptor PROC is a procedure descriptor
- that refers to a dynamically generated sigtramp function. */
-
-#undef PROC_DESC_IS_DYN_SIGTRAMP
-#define PROC_SIGTRAMP_MAGIC 0x0e0f0f0f
-#define PROC_DESC_IS_DYN_SIGTRAMP(proc) ((proc)->pdr.isym \
- == PROC_SIGTRAMP_MAGIC)
-#undef SET_PROC_DESC_IS_DYN_SIGTRAMP
-#define SET_PROC_DESC_IS_DYN_SIGTRAMP(proc) ((proc)->pdr.isym \
- = PROC_SIGTRAMP_MAGIC)
-
-/* If PC is inside a dynamically generated sigtramp function, return
- how many bytes the program counter is beyond the start of that
- function. Otherwise, return a negative value. */
-
-#undef DYNAMIC_SIGTRAMP_OFFSET
-#define DYNAMIC_SIGTRAMP_OFFSET(pc) (alpha_linux_sigtramp_offset (pc))
-
/* Translate a signal handler frame into the address of the sigcontext
structure. */
#undef SIGCONTEXT_ADDR
#define SIGCONTEXT_ADDR(frame) ((frame)->frame - 0x298)
-/* If FRAME refers to a sigtramp frame, return the address of the next frame.
-
- Under GNU/Linux, sigtramp handlers have dynamically generated
- procedure descriptors that make this hack unnecessary. */
-
-#undef FRAME_PAST_SIGTRAMP_FRAME
-#define FRAME_PAST_SIGTRAMP_FRAME(frame, pc) (0)
-
#include "tm-linux.h"
#endif /* TM_LINUXALPHA_H */