[v3,04/10] s390: gdbarch_tdep add field tdesc

Message ID 20171208110436.30199-5-prudo@linux.vnet.ibm.com
State New, archived
Headers

Commit Message

Philipp Rudo Dec. 8, 2017, 11:04 a.m. UTC
  Add a field for the target description to gdbarch_tdep.  This will later be
needed to pass the 'correct' target description from osabi_init to
gdbarch_init.  Unfortunately this cannot be done using gdbarch_info as it
is only passed by copy, not reference.

gdb/ChangeLog:

	* s390-linux-tdep.c (gdbarch_tdep) <tdesc>: New field.
	(s390_gdbarch_tdep_alloc): Adjust.
	(s390_gdbarch_init): Adjust.
---
 gdb/s390-linux-tdep.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index 03146289df..07d993c5d0 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -100,6 +100,9 @@  enum s390_vector_abi_kind
 
 struct gdbarch_tdep
 {
+  /* Target description.  */
+  const struct target_desc *tdesc;
+
   /* ABI version.  */
   enum s390_abi_kind abi;
 
@@ -7816,6 +7819,8 @@  s390_gdbarch_tdep_alloc ()
 {
   struct gdbarch_tdep *tdep = XCNEW (struct gdbarch_tdep);
 
+  tdep->tdesc = NULL;
+
   tdep->abi = ABI_NONE;
   tdep->vector_abi = S390_VECTOR_ABI_NONE;
 
@@ -7877,6 +7882,7 @@  s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       else
 	tdesc = tdesc_s390x_linux64;
     }
+  tdep->tdesc = tdesc;
 
   /* Check any target description for validity.  */
   if (tdesc_has_registers (tdesc))
@@ -8139,7 +8145,7 @@  s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_ax_pseudo_register_push_stack
       (gdbarch, s390_ax_pseudo_register_push_stack);
   set_gdbarch_gen_return_address (gdbarch, s390_gen_return_address);
-  tdesc_use_registers (gdbarch, tdesc, tdesc_data);
+  tdesc_use_registers (gdbarch, tdep->tdesc, tdesc_data);
   set_gdbarch_register_name (gdbarch, s390_register_name);
 
   /* Assign pseudo register numbers.  */