This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] Add multiarch initialization code for hppa targets
- From: Andrew Cagney <ac131313 at redhat dot com>
- To: Joel Brobecker <brobecker at gnat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 07 Nov 2002 10:10:15 -0500
- Subject: Re: [PATCH] Add multiarch initialization code for hppa targets
- References: <20021107075816.GT5164@gnat.com>
Yep!
I committed the following patch to the trunk. I am not quite sure that I
used the right mechanism to search through the list of gdbarches, but
the patch is pretty harmless anyway. So I went ahead an applied the
multiarch-changes-are-obvious rules. I would appreciate if a multiarch
guru had a look and told me this is ok or not.
2002-11-06 Joel Brobecker <brobecker@gnat.com>
Put in place the framework necessary for multiarching the hppa targets.
* hppa-tdep.c (hppa_gdbarch_init): New function.
(hppa_dump_tdep): New function.
(_initialize_hppa_tdep): Register the hppa gdbarch init function and
tdep structure dumper.
* config/pa/tm-hppa.h (GDB_MULTI_ARCH): New macro, defined to 0
until the multi-arching conversion has partially been completed.
This has been tested on hppa2.0w-hp-hpux11.00.
-- Joel
Index: hppa-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/hppa-tdep.c,v
retrieving revision 1.30
diff -c -3 -p -r1.30 hppa-tdep.c
*** hppa-tdep.c 7 Nov 2002 02:19:56 -0000 1.30
--- hppa-tdep.c 7 Nov 2002 07:37:23 -0000
*************** hppa_extract_return_value (struct type *
*** 4724,4729 ****
--- 4724,4751 ----
TYPE_LENGTH (type));
}
+ static struct gdbarch *
+ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+ {
+ struct gdbarch *gdbarch;
+
+ /* find a candidate among the list of pre-declared architectures. */
+ arches = gdbarch_list_lookup_by_info (arches, &info);
+ if (arches != NULL)
+ return (arches->gdbarch);
+
+ /* If none found, then allocate and initialize one. */
+ gdbarch = gdbarch_alloc (&info, NULL);
+
+ return gdbarch;
+ }
+
+ static void
+ hppa_dump_tdep (struct gdbarch *current_gdbarch, struct ui_file *file)
+ {
+ /* Nothing to print for the moment. */
+ }
+
void
_initialize_hppa_tdep (void)
{
*************** _initialize_hppa_tdep (void)
*** 4732,4737 ****
--- 4754,4760 ----
void tbreak_at_finish_command (char *arg, int from_tty);
void break_at_finish_at_depth_command (char *arg, int from_tty);
+ gdbarch_register (bfd_arch_hppa, hppa_gdbarch_init, hppa_dump_tdep);
tm_print_insn = print_insn_hppa;
add_cmd ("unwind", class_maintenance, unwind_command,
Index: config/pa/tm-hppa.h
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/tm-hppa.h,v
retrieving revision 1.19
diff -c -3 -p -r1.19 tm-hppa.h
*** config/pa/tm-hppa.h 26 Oct 2002 17:19:28 -0000 1.19
--- config/pa/tm-hppa.h 7 Nov 2002 07:37:24 -0000
***************
*** 24,29 ****
--- 24,31 ----
#include "regcache.h"
+ #define GDB_MULTI_ARCH 0
+
/* Forward declarations of some types we use in prototypes */
struct frame_info;