summaryrefslogtreecommitdiff
path: root/gdb/hppa-tdep.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2015-03-13 20:24:22 +0100
committerJan Kratochvil <jan.kratochvil@redhat.com>2015-03-13 20:24:22 +0100
commit61a12cfa7b25746914493cc0d94e5053a8492aa5 (patch)
tree0e0dba4bca36624868979e4b36d8efa313383f05 /gdb/hppa-tdep.c
parent25268153a182eef28d31ed2bc03ab7c6c0ab40e3 (diff)
downloadbinutils-gdb-61a12cfa7b25746914493cc0d94e5053a8492aa5.tar.gz
Remove HPUX
IIUC it is a pre-requisite for IPv6 support, some UNICes do not support getaddrinfo required for IPv6. But coincidentally such UNICes are no longer really supported by GDB. Therefore it was concluded we can remove all such UNICes and then we can implement IPv6 easily with getaddrinfo. In mail Re: getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Message-ID: <20140211034157.GG5485@adacore.com> https://sourceware.org/ml/gdb-patches/2014-02/msg00333.html Joel said: So I chose HP-UX first for this patch. gdb/ChangeLog 2014-10-16 Jan Kratochvil <jan.kratochvil@redhat.com> Remove HPUX. * Makefile.in (ALL_64_TARGET_OBS): Remove ia64-hpux-tdep.o. (ALL_TARGET_OBS): Remove hppa-hpux-tdep.o, solib-som.o and solib-pa64.o. (HFILES_NO_SRCDIR): Remove solib-som.h, inf-ttrace.h, solib-pa64.h and ia64-hpux-tdep.h, solib-ia64-hpux.h. (ALLDEPFILES): Remove hppa-hpux-tdep.c, hppa-hpux-nat.c, ia64-hpux-nat.c, ia64-hpux-tdep.c, somread.c and solib-som.c. * config/djgpp/fnchange.lst: Remove hppa-hpux-nat.c and hppa-hpux-tdep.c. * config/ia64/hpux.mh: Remove file. * config/pa/hpux.mh: Remove file. * configure: Rebuilt. * configure.ac (dlgetmodinfo, somread.o): Remove. * configure.host (hppa*-*-hpux*, ia64-*-hpux*): Make them obsolete. (ia64-*-hpux*): Remove its float format exception. * configure.tgt (hppa*-*-hpux*, ia64-*-hpux*): Make them obsolete. * hppa-hpux-nat.c: Remove file. * hppa-hpux-tdep.c: Remove file. * hppa-tdep.c (struct hppa_unwind_info, struct hppa_objfile_private): Move them here from hppa-tdep.h (hppa_objfile_priv_data, hppa_init_objfile_priv_data): Make it static. (hppa_frame_prev_register_helper): Remove HPPA_FLAGS_REGNUM exception. * hppa-tdep.h (struct hppa_unwind_info, struct hppa_objfile_private): Move them to hppa-tdep.c. (hppa_objfile_priv_data, hppa_init_objfile_priv_data): Remove declarations. * ia64-hpux-nat.c: Remove file. * ia64-hpux-tdep.c: Remove file. * ia64-hpux-tdep.h: Remove file. * inf-ttrace.c: Remove file. * inf-ttrace.h: Remove file. * solib-ia64-hpux.c: Remove file. * solib-ia64-hpux.h: Remove file. * solib-pa64.c: Remove file. * solib-pa64.h: Remove file. * solib-som.c: Remove file. * solib-som.h: Remove file. * somread.c: Remove file.
Diffstat (limited to 'gdb/hppa-tdep.c')
-rw-r--r--gdb/hppa-tdep.c43
1 files changed, 33 insertions, 10 deletions
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index f9c1bf279c2..8964ec07ee0 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -46,13 +46,44 @@ static int hppa_debug = 0;
static const int hppa32_num_regs = 128;
static const int hppa64_num_regs = 96;
+/* We use the objfile->obj_private pointer for two things:
+ * 1. An unwind table;
+ *
+ * 2. A pointer to any associated shared library object.
+ *
+ * #defines are used to help refer to these objects.
+ */
+
+/* Info about the unwind table associated with an object file.
+ * This is hung off of the "objfile->obj_private" pointer, and
+ * is allocated in the objfile's psymbol obstack. This allows
+ * us to have unique unwind info for each executable and shared
+ * library that we are debugging.
+ */
+struct hppa_unwind_info
+ {
+ struct unwind_table_entry *table; /* Pointer to unwind info */
+ struct unwind_table_entry *cache; /* Pointer to last entry we found */
+ int last; /* Index of last entry */
+ };
+
+struct hppa_objfile_private
+ {
+ struct hppa_unwind_info *unwind_info; /* a pointer */
+ struct so_list *so_info; /* a pointer */
+ CORE_ADDR dp;
+
+ int dummy_call_sequence_reg;
+ CORE_ADDR dummy_call_sequence_addr;
+ };
+
/* hppa-specific object data -- unwind and solib info.
TODO/maybe: think about splitting this into two parts; the unwind data is
common to all hppa targets, but is only used in this file; we can register
that separately and make this static. The solib data is probably hpux-
specific, so we can create a separate extern objfile_data that is registered
by hppa-hpux-tdep.c and shared with pa64solib.c and somsolib.c. */
-const struct objfile_data *hppa_objfile_priv_data = NULL;
+static const struct objfile_data *hppa_objfile_priv_data = NULL;
/* Get at various relevent fields of an instruction word. */
#define MASK_5 0x1f
@@ -170,7 +201,7 @@ hppa_symbol_address(const char *sym)
return (CORE_ADDR)-1;
}
-struct hppa_objfile_private *
+static struct hppa_objfile_private *
hppa_init_objfile_priv_data (struct objfile *objfile)
{
struct hppa_objfile_private *priv;
@@ -2778,14 +2809,6 @@ hppa_frame_prev_register_helper (struct frame_info *this_frame,
return frame_unwind_got_constant (this_frame, regnum, pc + 4);
}
- /* Make sure the "flags" register is zero in all unwound frames.
- The "flags" registers is a HP-UX specific wart, and only the code
- in hppa-hpux-tdep.c depends on it. However, it is easier to deal
- with it here. This shouldn't affect other systems since those
- should provide zero for the "flags" register anyway. */
- if (regnum == HPPA_FLAGS_REGNUM)
- return frame_unwind_got_constant (this_frame, regnum, 0);
-
return trad_frame_get_prev_register (this_frame, saved_regs, regnum);
}