Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Keith Seitz <keiths@redhat.com>
To: gdb-patches@sourceware.org
Subject: [PATCH 2/2] [gdbserver] Use const_target_desc_up for regformat tdescs
Date: Thu, 18 Jun 2026 07:23:56 -0700	[thread overview]
Message-ID: <c46e98eb850b2951c966df53cc869f35cca736e7.1781792506.git.keiths@redhat.com> (raw)
In-Reply-To: <cover.1781792506.git.keiths@redhat.com>

Regformat tdescs are now declared 'const_target_desc_up' by
gdb's regdat.sh, so update the various gdbserver target descriptions
to observe this API change.

There should be no user visible changes.
---
 gdbserver/linux-ia64-low.cc       |  5 ++-
 gdbserver/linux-m68k-low.cc       |  5 ++-
 gdbserver/linux-microblaze-low.cc |  6 +--
 gdbserver/linux-mips-low.cc       | 11 ++---
 gdbserver/linux-or1k-low.cc       |  5 ++-
 gdbserver/linux-s390-ipa.cc       | 39 ++++++++---------
 gdbserver/linux-s390-low.cc       | 69 ++++++++++++++++---------------
 gdbserver/linux-s390-tdesc.h      | 34 +++++++--------
 gdbserver/linux-sh-low.cc         |  5 ++-
 gdbserver/linux-sparc-low.cc      |  5 ++-
 gdbserver/linux-xtensa-low.cc     |  5 ++-
 11 files changed, 99 insertions(+), 90 deletions(-)

diff --git a/gdbserver/linux-ia64-low.cc b/gdbserver/linux-ia64-low.cc
index 337ef08257b..2a749f5a5ed 100644
--- a/gdbserver/linux-ia64-low.cc
+++ b/gdbserver/linux-ia64-low.cc
@@ -17,6 +17,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "linux-low.h"
+#include "tdesc.h"
 
 #ifdef HAVE_SYS_REG_H
 #include <sys/reg.h>
@@ -65,7 +66,7 @@ ia64_target::low_breakpoint_at (CORE_ADDR pc)
 
 /* Defined in auto-generated file reg-ia64.c.  */
 void init_registers_ia64 (void);
-extern const struct target_desc *tdesc_ia64;
+extern const_target_desc_up tdesc_ia64;
 
 #define ia64_num_regs 462
 
@@ -381,7 +382,7 @@ ia64_target::get_regs_info ()
 void
 ia64_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_ia64;
+  current_process ()->tdesc = tdesc_ia64.get ();
 }
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc
index f620a344a0a..df1d7346931 100644
--- a/gdbserver/linux-m68k-low.cc
+++ b/gdbserver/linux-m68k-low.cc
@@ -17,6 +17,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "linux-low.h"
+#include "tdesc.h"
 
 /* Linux target op definitions for the m68k architecture.  */
 
@@ -77,7 +78,7 @@ m68k_target::low_decr_pc_after_break ()
 
 /* Defined in auto-generated file reg-m68k.c.  */
 void init_registers_m68k (void);
-extern const struct target_desc *tdesc_m68k;
+extern const_target_desc_up tdesc_m68k;
 
 #ifdef HAVE_SYS_REG_H
 #include <sys/reg.h>
@@ -252,7 +253,7 @@ m68k_target::get_regs_info ()
 void
 m68k_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_m68k;
+  current_process ()->tdesc = tdesc_m68k.get ();
 }
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-microblaze-low.cc b/gdbserver/linux-microblaze-low.cc
index 21793d9a801..19c8751a0a9 100644
--- a/gdbserver/linux-microblaze-low.cc
+++ b/gdbserver/linux-microblaze-low.cc
@@ -28,7 +28,7 @@
 #include <sys/ptrace.h>
 
 #include "gdb_proc_service.h"
-
+#include "tdesc.h"
 
 static int microblaze_regmap[] =
  {PT_GPR(0),     PT_GPR(1),     PT_GPR(2),     PT_GPR(3),
@@ -79,7 +79,7 @@ constexpr auto microblaze_num_regs
 
 /* Defined in auto-generated file microblaze-linux-generated.c.  */
 void init_registers_microblaze_linux ();
-extern const target_desc *tdesc_microblaze_linux;
+extern const_target_desc_up tdesc_microblaze_linux;
 
 bool
 microblaze_target::low_supports_breakpoints ()
@@ -229,7 +229,7 @@ microblaze_target::get_regs_info ()
 void
 microblaze_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_microblaze_linux;
+  current_process ()->tdesc = tdesc_microblaze_linux.get ();
 }
 
 linux_process_target *the_linux_target = &the_microblaze_target;
diff --git a/gdbserver/linux-mips-low.cc b/gdbserver/linux-mips-low.cc
index 746887027b5..a156085a557 100644
--- a/gdbserver/linux-mips-low.cc
+++ b/gdbserver/linux-mips-low.cc
@@ -23,6 +23,7 @@
 
 #include "nat/mips-linux-watch.h"
 #include "gdb_proc_service.h"
+#include "tdesc.h"
 
 /* Linux target op definitions for the MIPS architecture.  */
 
@@ -89,19 +90,19 @@ static mips_target the_mips_target;
 
 /* Defined in auto-generated file mips-linux.c.  */
 void init_registers_mips_linux (void);
-extern const struct target_desc *tdesc_mips_linux;
+extern const_target_desc_up tdesc_mips_linux;
 
 /* Defined in auto-generated file mips-dsp-linux.c.  */
 void init_registers_mips_dsp_linux (void);
-extern const struct target_desc *tdesc_mips_dsp_linux;
+extern const_target_desc_up tdesc_mips_dsp_linux;
 
 /* Defined in auto-generated file mips64-linux.c.  */
 void init_registers_mips64_linux (void);
-extern const struct target_desc *tdesc_mips64_linux;
+extern const_target_desc_up tdesc_mips64_linux;
 
 /* Defined in auto-generated file mips64-dsp-linux.c.  */
 void init_registers_mips64_dsp_linux (void);
-extern const struct target_desc *tdesc_mips64_dsp_linux;
+extern const_target_desc_up tdesc_mips64_dsp_linux;
 
 #ifdef __mips64
 #define tdesc_mips_linux tdesc_mips64_linux
@@ -206,7 +207,7 @@ mips_read_description (void)
 	}
     }
 
-  return have_dsp ? tdesc_mips_dsp_linux : tdesc_mips_linux;
+  return have_dsp ? tdesc_mips_dsp_linux.get () : tdesc_mips_linux.get ();
 }
 
 void
diff --git a/gdbserver/linux-or1k-low.cc b/gdbserver/linux-or1k-low.cc
index 59d2bf7435f..a8d03d86c12 100644
--- a/gdbserver/linux-or1k-low.cc
+++ b/gdbserver/linux-or1k-low.cc
@@ -21,6 +21,7 @@
 #include "nat/gdb_ptrace.h"
 #include <endian.h>
 #include "gdb_proc_service.h"
+#include "tdesc.h"
 #include <asm/ptrace.h>
 
 #ifndef PTRACE_GET_THREAD_AREA
@@ -86,7 +87,7 @@ or1k_target::low_set_pc (regcache *regcache, CORE_ADDR pc)
 /* Defined in auto-generated file or1k-linux.c.  */
 
 void init_registers_or1k_linux (void);
-extern const struct target_desc *tdesc_or1k_linux;
+extern const_target_desc_up tdesc_or1k_linux;
 
 /* This union is used to convert between int and byte buffer
    representations of register contents.  */
@@ -114,7 +115,7 @@ static int or1k_regmap[] = {
 void
 or1k_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_or1k_linux;
+  current_process ()->tdesc = tdesc_or1k_linux.get ();
 }
 
 /* Implement the low_cannot_fetch_register linux target ops method.  */
diff --git a/gdbserver/linux-s390-ipa.cc b/gdbserver/linux-s390-ipa.cc
index 548107f9819..c4e0e90db1b 100644
--- a/gdbserver/linux-s390-ipa.cc
+++ b/gdbserver/linux-s390-ipa.cc
@@ -20,6 +20,7 @@
 
 #include <sys/mman.h>
 #include "tracepoint.h"
+#include "tdesc.h"
 #include "linux-s390-tdesc.h"
 #include <elf.h>
 #ifdef HAVE_GETAUXVAL
@@ -319,63 +320,63 @@ get_ipa_tdesc (int idx)
     case S390_TDESC_64:
       /* Subtract number of VX regs.  */
       SET_REGMAP(s390x_ft_collect_regmap, 32);
-      return tdesc_s390x_linux64;
+      return tdesc_s390x_linux64.get ();
     case S390_TDESC_64V1:
       SET_REGMAP(s390x_ft_collect_regmap, 32);
-      return tdesc_s390x_linux64v1;
+      return tdesc_s390x_linux64v1.get ();
     case S390_TDESC_64V2:
       SET_REGMAP(s390x_ft_collect_regmap, 32);
-      return tdesc_s390x_linux64v2;
+      return tdesc_s390x_linux64v2.get ();
     case S390_TDESC_TE:
       SET_REGMAP(s390x_te_ft_collect_regmap, 32);
-      return tdesc_s390x_te_linux64;
+      return tdesc_s390x_te_linux64.get ();
     case S390_TDESC_VX:
       SET_REGMAP(s390x_ft_collect_regmap, 0);
-      return tdesc_s390x_vx_linux64;
+      return tdesc_s390x_vx_linux64.get ();
     case S390_TDESC_TEVX:
       SET_REGMAP(s390x_te_ft_collect_regmap, 0);
-      return tdesc_s390x_tevx_linux64;
+      return tdesc_s390x_tevx_linux64.get ();
     case S390_TDESC_GS:
       SET_REGMAP(s390x_te_ft_collect_regmap, 0);
-      return tdesc_s390x_gs_linux64;
+      return tdesc_s390x_gs_linux64.get ();
 #else
     case S390_TDESC_32:
       SET_REGMAP(s390_linux32_ft_collect_regmap, 0);
-      return tdesc_s390_linux32;
+      return tdesc_s390_linux32.get ();
     case S390_TDESC_32V1:
       SET_REGMAP(s390_linux32_ft_collect_regmap, 0);
-      return tdesc_s390_linux32v1;
+      return tdesc_s390_linux32v1.get ();
     case S390_TDESC_32V2:
       SET_REGMAP(s390_linux32_ft_collect_regmap, 0);
-      return tdesc_s390_linux32v2;
+      return tdesc_s390_linux32v2.get ();
     case S390_TDESC_64:
       SET_REGMAP(s390_linux64_ft_collect_regmap, 32);
-      return tdesc_s390_linux64;
+      return tdesc_s390_linux64.get ();
     case S390_TDESC_64V1:
       SET_REGMAP(s390_linux64_ft_collect_regmap, 32);
-      return tdesc_s390_linux64v1;
+      return tdesc_s390_linux64v1.get ();
     case S390_TDESC_64V2:
       SET_REGMAP(s390_linux64_ft_collect_regmap, 32);
-      return tdesc_s390_linux64v2;
+      return tdesc_s390_linux64v2.get ();
     case S390_TDESC_TE:
       SET_REGMAP(s390_te_linux64_ft_collect_regmap, 32);
-      return tdesc_s390_te_linux64;
+      return tdesc_s390_te_linux64.get ();
     case S390_TDESC_VX:
       SET_REGMAP(s390_linux64_ft_collect_regmap, 0);
-      return tdesc_s390_vx_linux64;
+      return tdesc_s390_vx_linux64.get ();
     case S390_TDESC_TEVX:
       SET_REGMAP(s390_te_linux64_ft_collect_regmap, 0);
-      return tdesc_s390_tevx_linux64;
+      return tdesc_s390_tevx_linux64.get ();
     case S390_TDESC_GS:
       SET_REGMAP(s390_te_linux64_ft_collect_regmap, 0);
-      return tdesc_s390_gs_linux64;
+      return tdesc_s390_gs_linux64.get ();
 #endif
     default:
       internal_error ("unknown ipa tdesc index: %d", idx);
 #ifdef __s390x__
-      return tdesc_s390x_linux64;
+      return tdesc_s390x_linux64.get ();
 #else
-      return tdesc_s390_linux32;
+      return tdesc_s390_linux32.get ();
 #endif
     }
 }
diff --git a/gdbserver/linux-s390-low.cc b/gdbserver/linux-s390-low.cc
index 8a4567837bd..4bb761de1bd 100644
--- a/gdbserver/linux-s390-low.cc
+++ b/gdbserver/linux-s390-low.cc
@@ -30,6 +30,7 @@
 #include <elf.h>
 #include <inttypes.h>
 
+#include "tdesc.h"
 #include "linux-s390-tdesc.h"
 
 #ifndef HWCAP_S390_HIGH_GPRS
@@ -615,18 +616,18 @@ s390_target::low_arch_setup ()
     if (wordsize == 8)
       {
 	if (have_regset_gs)
-	  tdesc = tdesc_s390x_gs_linux64;
+	  tdesc = tdesc_s390x_gs_linux64.get ();
 	else if (have_regset_vxrs)
-	  tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64 :
-		   tdesc_s390x_vx_linux64);
+	  tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64.get () :
+		   tdesc_s390x_vx_linux64.get ());
 	else if (have_regset_tdb)
-	  tdesc = tdesc_s390x_te_linux64;
+	  tdesc = tdesc_s390x_te_linux64.get ();
 	else if (have_regset_system_call)
-	  tdesc = tdesc_s390x_linux64v2;
+	  tdesc = tdesc_s390x_linux64v2.get ();
 	else if (have_regset_last_break)
-	  tdesc = tdesc_s390x_linux64v1;
+	  tdesc = tdesc_s390x_linux64v1.get ();
 	else
-	  tdesc = tdesc_s390x_linux64;
+	  tdesc = tdesc_s390x_linux64.get ();
       }
 
     /* For a 31-bit inferior, check whether the kernel supports
@@ -637,28 +638,28 @@ s390_target::low_arch_setup ()
       {
 	have_hwcap_s390_high_gprs = 1;
 	if (have_regset_gs)
-	  tdesc = tdesc_s390_gs_linux64;
+	  tdesc = tdesc_s390_gs_linux64.get ();
 	else if (have_regset_vxrs)
-	  tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64 :
-		   tdesc_s390_vx_linux64);
+	  tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64.get () :
+		   tdesc_s390_vx_linux64.get ());
 	else if (have_regset_tdb)
-	  tdesc = tdesc_s390_te_linux64;
+	  tdesc = tdesc_s390_te_linux64.get ();
 	else if (have_regset_system_call)
-	  tdesc = tdesc_s390_linux64v2;
+	  tdesc = tdesc_s390_linux64v2.get ();
 	else if (have_regset_last_break)
-	  tdesc = tdesc_s390_linux64v1;
+	  tdesc = tdesc_s390_linux64v1.get ();
 	else
-	  tdesc = tdesc_s390_linux64;
+	  tdesc = tdesc_s390_linux64.get ();
       }
     else
       {
 	/* Assume 31-bit inferior process.  */
 	if (have_regset_system_call)
-	  tdesc = tdesc_s390_linux32v2;
+	  tdesc = tdesc_s390_linux32v2.get ();
 	else if (have_regset_last_break)
-	  tdesc = tdesc_s390_linux32v1;
+	  tdesc = tdesc_s390_linux32v1.get ();
 	else
-	  tdesc = tdesc_s390_linux32;
+	  tdesc = tdesc_s390_linux32.get ();
       }
 
     have_hwcap_s390_vx = have_regset_vxrs;
@@ -1451,41 +1452,41 @@ s390_target::get_ipa_tdesc_idx ()
   const target_desc *tdesc = current_process ()->tdesc;
 
 #ifdef __s390x__
-  if (tdesc == tdesc_s390x_linux64)
+  if (tdesc == tdesc_s390x_linux64.get ())
     return S390_TDESC_64;
-  if (tdesc == tdesc_s390x_linux64v1)
+  if (tdesc == tdesc_s390x_linux64v1.get ())
     return S390_TDESC_64V1;
-  if (tdesc == tdesc_s390x_linux64v2)
+  if (tdesc == tdesc_s390x_linux64v2.get ())
     return S390_TDESC_64V2;
-  if (tdesc == tdesc_s390x_te_linux64)
+  if (tdesc == tdesc_s390x_te_linux64.get ())
     return S390_TDESC_TE;
-  if (tdesc == tdesc_s390x_vx_linux64)
+  if (tdesc == tdesc_s390x_vx_linux64.get ())
     return S390_TDESC_VX;
-  if (tdesc == tdesc_s390x_tevx_linux64)
+  if (tdesc == tdesc_s390x_tevx_linux64.get ())
     return S390_TDESC_TEVX;
-  if (tdesc == tdesc_s390x_gs_linux64)
+  if (tdesc == tdesc_s390x_gs_linux64.get ())
     return S390_TDESC_GS;
 #endif
 
-  if (tdesc == tdesc_s390_linux32)
+  if (tdesc == tdesc_s390_linux32.get ())
     return S390_TDESC_32;
-  if (tdesc == tdesc_s390_linux32v1)
+  if (tdesc == tdesc_s390_linux32v1.get ())
     return S390_TDESC_32V1;
-  if (tdesc == tdesc_s390_linux32v2)
+  if (tdesc == tdesc_s390_linux32v2.get ())
     return S390_TDESC_32V2;
-  if (tdesc == tdesc_s390_linux64)
+  if (tdesc == tdesc_s390_linux64.get ())
     return S390_TDESC_64;
-  if (tdesc == tdesc_s390_linux64v1)
+  if (tdesc == tdesc_s390_linux64v1.get ())
     return S390_TDESC_64V1;
-  if (tdesc == tdesc_s390_linux64v2)
+  if (tdesc == tdesc_s390_linux64v2.get ())
     return S390_TDESC_64V2;
-  if (tdesc == tdesc_s390_te_linux64)
+  if (tdesc == tdesc_s390_te_linux64.get ())
     return S390_TDESC_TE;
-  if (tdesc == tdesc_s390_vx_linux64)
+  if (tdesc == tdesc_s390_vx_linux64.get ())
     return S390_TDESC_VX;
-  if (tdesc == tdesc_s390_tevx_linux64)
+  if (tdesc == tdesc_s390_tevx_linux64.get ())
     return S390_TDESC_TEVX;
-  if (tdesc == tdesc_s390_gs_linux64)
+  if (tdesc == tdesc_s390_gs_linux64.get ())
     return S390_TDESC_GS;
 
   return 0;
diff --git a/gdbserver/linux-s390-tdesc.h b/gdbserver/linux-s390-tdesc.h
index b4d63430df5..3c53a717f6b 100644
--- a/gdbserver/linux-s390-tdesc.h
+++ b/gdbserver/linux-s390-tdesc.h
@@ -41,31 +41,31 @@ enum s390_linux_tdesc {
 
 /* Defined in auto-generated file s390x-linux64.c.  */
 void init_registers_s390x_linux64 (void);
-extern const struct target_desc *tdesc_s390x_linux64;
+extern const_target_desc_up tdesc_s390x_linux64;
 
 /* Defined in auto-generated file s390x-linux64v1.c.  */
 void init_registers_s390x_linux64v1 (void);
-extern const struct target_desc *tdesc_s390x_linux64v1;
+extern const_target_desc_up tdesc_s390x_linux64v1;
 
 /* Defined in auto-generated file s390x-linux64v2.c.  */
 void init_registers_s390x_linux64v2 (void);
-extern const struct target_desc *tdesc_s390x_linux64v2;
+extern const_target_desc_up tdesc_s390x_linux64v2;
 
 /* Defined in auto-generated file s390x-te-linux64.c.  */
 void init_registers_s390x_te_linux64 (void);
-extern const struct target_desc *tdesc_s390x_te_linux64;
+extern const_target_desc_up tdesc_s390x_te_linux64;
 
 /* Defined in auto-generated file s390x-vx-linux64.c.  */
 void init_registers_s390x_vx_linux64 (void);
-extern const struct target_desc *tdesc_s390x_vx_linux64;
+extern const_target_desc_up tdesc_s390x_vx_linux64;
 
 /* Defined in auto-generated file s390x-tevx-linux64.c.  */
 void init_registers_s390x_tevx_linux64 (void);
-extern const struct target_desc *tdesc_s390x_tevx_linux64;
+extern const_target_desc_up tdesc_s390x_tevx_linux64;
 
 /* Defined in auto-generated file s390x-gs-linux64.c.  */
 void init_registers_s390x_gs_linux64 (void);
-extern const struct target_desc *tdesc_s390x_gs_linux64;
+extern const_target_desc_up tdesc_s390x_gs_linux64;
 
 #endif
 
@@ -73,43 +73,43 @@ extern const struct target_desc *tdesc_s390x_gs_linux64;
 
 /* Defined in auto-generated file s390-linux32.c.  */
 void init_registers_s390_linux32 (void);
-extern const struct target_desc *tdesc_s390_linux32;
+extern const_target_desc_up tdesc_s390_linux32;
 
 /* Defined in auto-generated file s390-linux32v1.c.  */
 void init_registers_s390_linux32v1 (void);
-extern const struct target_desc *tdesc_s390_linux32v1;
+extern const_target_desc_up tdesc_s390_linux32v1;
 
 /* Defined in auto-generated file s390-linux32v2.c.  */
 void init_registers_s390_linux32v2 (void);
-extern const struct target_desc *tdesc_s390_linux32v2;
+extern const_target_desc_up tdesc_s390_linux32v2;
 
 /* Defined in auto-generated file s390-linux64.c.  */
 void init_registers_s390_linux64 (void);
-extern const struct target_desc *tdesc_s390_linux64;
+extern const_target_desc_up tdesc_s390_linux64;
 
 /* Defined in auto-generated file s390-linux64v1.c.  */
 void init_registers_s390_linux64v1 (void);
-extern const struct target_desc *tdesc_s390_linux64v1;
+extern const_target_desc_up tdesc_s390_linux64v1;
 
 /* Defined in auto-generated file s390-linux64v2.c.  */
 void init_registers_s390_linux64v2 (void);
-extern const struct target_desc *tdesc_s390_linux64v2;
+extern const_target_desc_up tdesc_s390_linux64v2;
 
 /* Defined in auto-generated file s390-te-linux64.c.  */
 void init_registers_s390_te_linux64 (void);
-extern const struct target_desc *tdesc_s390_te_linux64;
+extern const_target_desc_up tdesc_s390_te_linux64;
 
 /* Defined in auto-generated file s390-vx-linux64.c.  */
 void init_registers_s390_vx_linux64 (void);
-extern const struct target_desc *tdesc_s390_vx_linux64;
+extern const_target_desc_up tdesc_s390_vx_linux64;
 
 /* Defined in auto-generated file s390-tevx-linux64.c.  */
 void init_registers_s390_tevx_linux64 (void);
-extern const struct target_desc *tdesc_s390_tevx_linux64;
+extern const_target_desc_up tdesc_s390_tevx_linux64;
 
 /* Defined in auto-generated file s390-gs-linux64.c.  */
 void init_registers_s390_gs_linux64 (void);
-extern const struct target_desc *tdesc_s390_gs_linux64;
+extern const_target_desc_up tdesc_s390_gs_linux64;
 
 #endif
 
diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc
index 6370c18c677..a71a3a9c742 100644
--- a/gdbserver/linux-sh-low.cc
+++ b/gdbserver/linux-sh-low.cc
@@ -17,6 +17,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "linux-low.h"
+#include "tdesc.h"
 
 /* Linux target op definitions for the SH architecture.  */
 
@@ -69,7 +70,7 @@ sh_target::low_set_pc (regcache *regcache, CORE_ADDR pc)
 
 /* Defined in auto-generated file reg-sh.c.  */
 void init_registers_sh (void);
-extern const struct target_desc *tdesc_sh;
+extern const_target_desc_up tdesc_sh;
 
 #ifdef HAVE_SYS_REG_H
 #include <sys/reg.h>
@@ -179,7 +180,7 @@ sh_target::get_regs_info ()
 void
 sh_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_sh;
+  current_process ()->tdesc = tdesc_sh.get ();
 }
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-sparc-low.cc b/gdbserver/linux-sparc-low.cc
index 77edfbdde2a..10926a93991 100644
--- a/gdbserver/linux-sparc-low.cc
+++ b/gdbserver/linux-sparc-low.cc
@@ -21,6 +21,7 @@
 #include "nat/gdb_ptrace.h"
 
 #include "gdb_proc_service.h"
+#include "tdesc.h"
 
 /* The stack pointer is offset from the stack frame by a BIAS of 2047
    (0x7ff) for 64-bit code.  BIAS is likely to be defined on SPARC
@@ -142,7 +143,7 @@ static const struct regs_range_t fpregs_ranges[] = {
 
 /* Defined in auto-generated file reg-sparc64.c.  */
 void init_registers_sparc64 (void);
-extern const struct target_desc *tdesc_sparc64;
+extern const_target_desc_up tdesc_sparc64;
 
 bool
 sparc_target::low_cannot_store_register (int regno)
@@ -298,7 +299,7 @@ sparc_target::low_breakpoint_at (CORE_ADDR where)
 void
 sparc_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_sparc64;
+  current_process ()->tdesc = tdesc_sparc64.get ();
 }
 
 static struct regset_info sparc_regsets[] = {
diff --git a/gdbserver/linux-xtensa-low.cc b/gdbserver/linux-xtensa-low.cc
index 3af9bc44fb1..f06905645cf 100644
--- a/gdbserver/linux-xtensa-low.cc
+++ b/gdbserver/linux-xtensa-low.cc
@@ -18,6 +18,7 @@
 
 
 #include "linux-low.h"
+#include "tdesc.h"
 
 /* Linux target op definitions for the Xtensa architecture.  */
 
@@ -84,7 +85,7 @@ xtensa_target::low_set_pc (regcache *regcache, CORE_ADDR pc)
 
 /* Defined in auto-generated file reg-xtensa.c.  */
 void init_registers_xtensa (void);
-extern const struct target_desc *tdesc_xtensa;
+extern const_target_desc_up tdesc_xtensa;
 
 #include <asm/ptrace.h>
 #include <xtensa-config.h>
@@ -310,7 +311,7 @@ static struct regs_info myregs_info =
 void
 xtensa_target::low_arch_setup ()
 {
-  current_process ()->tdesc = tdesc_xtensa;
+  current_process ()->tdesc = tdesc_xtensa.get ();
 }
 
 const regs_info *
-- 
2.53.0


  parent reply	other threads:[~2026-06-18 14:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-18 14:23 [PATCH 0/2] Fix ODR violations in regformat target descriptions Keith Seitz
2026-06-18 14:23 ` [PATCH 1/2] regdat.sh: generate const_target_desc_up for register descriptions Keith Seitz
2026-06-18 15:52   ` Simon Marchi
2026-06-18 14:23 ` Keith Seitz [this message]
2026-06-18 15:57 ` [PATCH 0/2] Fix ODR violations in regformat target descriptions Simon Marchi
2026-06-18 17:10   ` Tom Tromey
2026-07-07 19:49     ` Keith Seitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c46e98eb850b2951c966df53cc869f35cca736e7.1781792506.git.keiths@redhat.com \
    --to=keiths@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox