This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v2 04/11] s390: gdbarch_tdep add field tdesc
- From: Philipp Rudo <prudo at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Cc: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>, Ulrich Weigand <uweigand at de dot ibm dot com>
- Date: Tue, 5 Dec 2017 13:28:52 +0100
- Subject: [PATCH v2 04/11] s390: gdbarch_tdep add field tdesc
- Authentication-results: sourceware.org; auth=none
- References: <20171205122859.2919-1-prudo@linux.vnet.ibm.com>
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(-)
diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index afee82304c..caef47a2a4 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;
@@ -7882,6 +7887,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))
@@ -8124,7 +8130,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. */
--
2.13.5