From baa490c486fff0eaf5d8b11e6f16f411f0ab91e1 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 4 Jun 2003 06:22:17 +0000 Subject: [PATCH] * alpha-tdep.c (alpha_dwarf2_init_abi): New. * alpha-tdep.h (alpha_dwarf2_init_abi): Declare it. * alpha-linux-tdep.c (alpha_linux_init_abi): Use it. * alphafbsd-tdep.c (alphafbsd_init_abi): Register dwarf2 and mdebug unwind routines. * alphanbsd-tdep.c (alphanbsd_init_abi): Likewise. * config/alpha/fbsd.mt (TDEPFILES): Add alpha-mdebug-tdep.o. * config/alpha/nbsd.mt (TDEPFILES): Likewise. * alpha-linux-tdep.c: Remove unnecessary includes. * Makefile.in (alpha-linux-tdep.o): Update. --- gdb/ChangeLog | 19 +++++++++++++++++++ gdb/Makefile.in | 7 +++---- gdb/alpha-linux-tdep.c | 14 ++------------ gdb/alpha-tdep.c | 9 +++++++++ gdb/alpha-tdep.h | 1 + gdb/alphafbsd-tdep.c | 6 ++++++ gdb/alphanbsd-tdep.c | 6 ++++++ gdb/config/alpha/fbsd.mt | 2 +- gdb/config/alpha/nbsd.mt | 4 ++-- 9 files changed, 49 insertions(+), 19 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c309bb21a5e..60f181daaaf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,22 @@ +2003-06-03 Richard Henderson + + * alpha-tdep.c (alpha_dwarf2_init_abi): New. + * alpha-tdep.h (alpha_dwarf2_init_abi): Declare it. + * alpha-linux-tdep.c (alpha_linux_init_abi): Use it. + * alphafbsd-tdep.c (alphafbsd_init_abi): Register dwarf2 and mdebug + unwind routines. + * alphanbsd-tdep.c (alphanbsd_init_abi): Likewise. + * config/alpha/fbsd.mt (TDEPFILES): Add alpha-mdebug-tdep.o. + * config/alpha/nbsd.mt (TDEPFILES): Likewise. + + * alpha-linux-tdep.c: Remove unnecessary includes. + * Makefile.in (alpha-linux-tdep.o): Update. + +2003-06-03 Richard Henderson + + * alphabsd-tdep.c (alphabsd_supply_fpreg): Fix typo last change. + (alphabsd_fill_fpreg): Likewise. + 2003-06-03 J. Brobecker * alphanbsd-tdep.c (alphanbsd_sigcontext_addr): Replace diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 3a68642fab9..43b35c255f4 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1509,9 +1509,8 @@ ada-valprint.o: ada-valprint.c $(defs_h) $(symtab_h) $(gdbtypes_h) \ aix-thread.o: aix-thread.c $(defs_h) $(gdb_assert_h) $(gdbthread_h) \ $(target_h) $(inferior_h) $(regcache_h) $(gdbcmd_h) $(language_h) \ $(ppc_tdep_h) -alpha-linux-tdep.o: alpha-linux-tdep.c $(defs_h) $(frame_h) $(frame_base_h) \ - $(frame_unwind_h) $(dwarf2_frame_h) $(gdbcore_h) $(gdb_assert_h) \ - $(osabi_h) $(symtab_h) $(symfile_h) $(value_h) $(alpha_tdep_h) +alpha-linux-tdep.o: alpha-linux-tdep.c $(defs_h) $(frame_h) $(gdb_assert_h) \ + $(osabi_h) $(alpha_tdep_h) alpha-nat.o: alpha-nat.c $(defs_h) $(gdb_string_h) $(inferior_h) $(gdbcore_h) \ $(target_h) $(regcache_h) $(alpha_tdep_h) $(gregset_h) alpha-osf1-tdep.o: alpha-osf1-tdep.c $(defs_h) $(frame_h) $(gdbcore_h) \ @@ -1521,7 +1520,7 @@ alpha-tdep.o: alpha-tdep.c $(defs_h) $(doublest_h) $(frame_h) \ $(value_h) $(gdbcmd_h) $(gdbcore_h) $(dis_asm_h) $(symfile_h) \ $(objfiles_h) $(gdb_string_h) $(linespec_h) $(regcache_h) \ $(reggroups_h) $(arch_utils_h) $(osabi_h) $(block_h) $(gdb_assert_h) \ - $(elf_bfd_h) $(alpha_tdep_h) + $(elf_bfd_h) $(alpha_tdep_h) $(dwarf2_frame_h) alpha-mdebug-tdep.o: alpha-mdebug-tdep.c $(defs_h) $(frame_h) \ $(frame_unwind_h) $(frame_base_h) $(symtab_h) $(gdbcore_h) \ $(block_h) $(gdb_assert_h) $(alpha_tdep_h) diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c index 519638ddb97..de53b3e71b3 100644 --- a/gdb/alpha-linux-tdep.c +++ b/gdb/alpha-linux-tdep.c @@ -20,15 +20,8 @@ #include "defs.h" #include "frame.h" -#include "frame-base.h" -#include "frame-unwind.h" -#include "dwarf2-frame.h" -#include "gdbcore.h" #include "gdb_assert.h" #include "osabi.h" -#include "symtab.h" -#include "symfile.h" -#include "value.h" #include "alpha-tdep.h" @@ -131,15 +124,12 @@ alpha_linux_sigcontext_addr (struct frame_info *next_frame) } static void -alpha_linux_init_abi (struct gdbarch_info info, - struct gdbarch *gdbarch) +alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { struct gdbarch_tdep *tdep; /* Hook into the DWARF CFI frame unwinder. */ - frame_unwind_append_predicate (gdbarch, dwarf2_frame_p); - frame_base_append_predicate (gdbarch, dwarf2_frame_base_p); - set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info); + alpha_dwarf2_init_abi (info, gdbarch); /* Hook into the MDEBUG frame unwinder. */ alpha_mdebug_init_abi (info, gdbarch); diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index da514bf1c1e..f2b354f7a6c 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -24,6 +24,7 @@ #include "frame.h" #include "frame-unwind.h" #include "frame-base.h" +#include "dwarf2-frame.h" #include "inferior.h" #include "symtab.h" #include "value.h" @@ -1581,6 +1582,14 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) return gdbarch; } +void +alpha_dwarf2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) +{ + frame_unwind_append_predicate (gdbarch, dwarf2_frame_p); + frame_base_append_predicate (gdbarch, dwarf2_frame_base_p); + set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info); +} + void _initialize_alpha_tdep (void) { diff --git a/gdb/alpha-tdep.h b/gdb/alpha-tdep.h index eaeaa56b2e0..c0e28e65772 100644 --- a/gdb/alpha-tdep.h +++ b/gdb/alpha-tdep.h @@ -93,6 +93,7 @@ extern void alpha_software_single_step (enum target_signal, int); extern CORE_ADDR alpha_after_prologue (CORE_ADDR pc); extern void alpha_mdebug_init_abi (struct gdbarch_info, struct gdbarch *); +extern void alpha_dwarf2_init_abi (struct gdbarch_info, struct gdbarch *); extern void alpha_supply_int_regs (int, const void *, const void *, const void *); diff --git a/gdb/alphafbsd-tdep.c b/gdb/alphafbsd-tdep.c index 3d8eafb2927..680e303f587 100644 --- a/gdb/alphafbsd-tdep.c +++ b/gdb/alphafbsd-tdep.c @@ -68,6 +68,12 @@ alphafbsd_init_abi (struct gdbarch_info info, { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + /* Hook into the DWARF CFI frame unwinder. */ + alpha_dwarf2_init_abi (info, gdbarch); + + /* Hook into the MDEBUG frame unwinder. */ + alpha_mdebug_init_abi (info, 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 0fdbb63c6fb..efb7ab9b47d 100644 --- a/gdb/alphanbsd-tdep.c +++ b/gdb/alphanbsd-tdep.c @@ -198,6 +198,12 @@ alphanbsd_init_abi (struct gdbarch_info info, { struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + /* Hook into the DWARF CFI frame unwinder. */ + alpha_dwarf2_init_abi (info, gdbarch); + + /* Hook into the MDEBUG frame unwinder. */ + alpha_mdebug_init_abi (info, gdbarch); + set_gdbarch_pc_in_sigtramp (gdbarch, alphanbsd_pc_in_sigtramp); /* NetBSD/alpha does not provide single step support via ptrace(2); we diff --git a/gdb/config/alpha/fbsd.mt b/gdb/config/alpha/fbsd.mt index 4b4ecbf6235..24d2fd80b84 100644 --- a/gdb/config/alpha/fbsd.mt +++ b/gdb/config/alpha/fbsd.mt @@ -1,3 +1,3 @@ # Target: FreeBSD/Alpha -TDEPFILES= alpha-tdep.o alphabsd-tdep.o alphafbsd-tdep.o +TDEPFILES= alpha-tdep.o alpha-mdebug-tdep.o alphabsd-tdep.o alphafbsd-tdep.o TM_FILE= tm-fbsd.h diff --git a/gdb/config/alpha/nbsd.mt b/gdb/config/alpha/nbsd.mt index 7fd9c503255..065a28c9a01 100644 --- a/gdb/config/alpha/nbsd.mt +++ b/gdb/config/alpha/nbsd.mt @@ -1,4 +1,4 @@ # Target: Alpha running NetBSD -TDEPFILES= alpha-tdep.o alphabsd-tdep.o alphanbsd-tdep.o corelow.o \ - nbsd-tdep.o solib.o solib-svr4.o +TDEPFILES= alpha-tdep.o alpha-mdebug-tdep.o alphabsd-tdep.o alphanbsd-tdep.o \ + corelow.o nbsd-tdep.o solib.o solib-svr4.o TM_FILE= tm-nbsd.h -- 2.30.2