mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
ChangeLog:
* features/Makefile (%.dat): Emit xmltarget statement.
* regformats/regdat.sh: Support xmltarget and xmlarch statments.
Generate code to set gdbserver_xmltarget in init_registers_${name}.
* regformats/arm-with-iwmmxt.dat: Regenerate.
* regformats/mips64-linux.dat: Regenerate.
* regformats/mips-linux.dat: Regenerate.
* regformats/rs6000/powerpc-32.dat: Regenerate.
* regformats/rs6000/powerpc-64.dat: Regenerate.
* regformats/rs6000/powerpc-e500.dat: Regenerate.
* regformats/reg-arm.dat: Add xmlarch statement.
* regformats/reg-i386.dat: Likewise.
* regformats/reg-i386-linux.dat: Likewise.
* regformats/reg-x86-64-linux.dat: Likewise.
* regformats/reg-spu.dat: Likewise.
gdbserver/ChangeLog:
* regcache.h (gdbserver_xmltarget): Add extern declaration.
* server.c (gdbserver_xmltarget): Define.
(get_features_xml): Use it to replace "target.xml" and arch_string.
* configure.srv: Remove srv_xmltarget. Add XML files that were
mentioned there to srv_xmlfiles instead. Remove conditional tests
on gdb_cv_arm_iwmmxt, gdb_cv_ppc_altivec, gdb_cv_ppc_spe; set
srv_xmlfiles and srv_regobj to include all possible choices.
* configure.ac (srv_xmltarget): Remove.
(srv_xmlfiles): Do not add "target.xml".
(gdb_cv_arm_iwmmxt, gdb_cv_ppc_altivec, gdb_cv_ppc_spe): Remove
checks for supplementary target information.
* configure: Regenerate.
* Makefile.in (XML_TARGET): Remove.
(target.xml): Remove rule.
(clean): Do not clean up target.xml.
(.PRECIOUS): Do not mention target.xml.
* target.h (struct target_ops): Remove arch_string member.
* linux-low.c (linux_arch_string): Remove.
(linux_target_ops): Remove arch_string initializer.
* linux-low.h (struct linux_target_ops): Remove arch_string member.
* linux-i386-low.c (the_low_target): Remove arch_string initializer.
* linux-x86-64-low.c (the_low_target): Remove arch_string initializer.
* spu-low.c (spu_arch_string): Remove.
(spu_target_ops): Remove arch_string initializer.
* win32-low.c (win32_arch_string): Remove.
(win32_target_ops): Remove arch_string initializer.
* win32-low.h (struct win32_target_ops): Remove arch_string member.
* win32-arm-low.c (the_low_target): Remove arch_string initializer.
* win32-i368-low.c (the_low_target): Remove arch_string initializer.
This commit is contained in:
@@ -51,6 +51,8 @@ int pass_signals[TARGET_SIGNAL_LAST];
|
||||
|
||||
jmp_buf toplevel;
|
||||
|
||||
const char *gdbserver_xmltarget;
|
||||
|
||||
/* The PID of the originally created or attached inferior. Used to
|
||||
send signals to the process when GDB sends us an asynchronous interrupt
|
||||
(user hitting Control-C in the client), and to wait for the child to exit
|
||||
@@ -220,44 +222,39 @@ handle_general_set (char *own_buf)
|
||||
static const char *
|
||||
get_features_xml (const char *annex)
|
||||
{
|
||||
static int features_supported = -1;
|
||||
static char *document;
|
||||
/* gdbserver_xmltarget defines what to return when looking
|
||||
for the "target.xml" file. Its contents can either be
|
||||
verbatim XML code (prefixed with a '@') or else the name
|
||||
of the actual XML file to be used in place of "target.xml".
|
||||
|
||||
#ifdef USE_XML
|
||||
extern const char *const xml_builtin[][2];
|
||||
int i;
|
||||
This variable is set up from the auto-generated
|
||||
init_registers_... routine for the current target. */
|
||||
|
||||
/* Look for the annex. */
|
||||
for (i = 0; xml_builtin[i][0] != NULL; i++)
|
||||
if (strcmp (annex, xml_builtin[i][0]) == 0)
|
||||
break;
|
||||
|
||||
if (xml_builtin[i][0] != NULL)
|
||||
return xml_builtin[i][1];
|
||||
#endif
|
||||
|
||||
if (strcmp (annex, "target.xml") != 0)
|
||||
return NULL;
|
||||
|
||||
if (features_supported == -1)
|
||||
if (gdbserver_xmltarget
|
||||
&& strcmp (annex, "target.xml") != 0)
|
||||
{
|
||||
const char *arch = NULL;
|
||||
if (the_target->arch_string != NULL)
|
||||
arch = (*the_target->arch_string) ();
|
||||
|
||||
if (arch == NULL)
|
||||
features_supported = 0;
|
||||
if (*gdbserver_xmltarget == '@')
|
||||
return gdbserver_xmltarget + 1;
|
||||
else
|
||||
{
|
||||
features_supported = 1;
|
||||
document = malloc (64 + strlen (arch));
|
||||
snprintf (document, 64 + strlen (arch),
|
||||
"<target><architecture>%s</architecture></target>",
|
||||
arch);
|
||||
}
|
||||
annex = gdbserver_xmltarget;
|
||||
}
|
||||
|
||||
return document;
|
||||
#ifdef USE_XML
|
||||
{
|
||||
extern const char *const xml_builtin[][2];
|
||||
int i;
|
||||
|
||||
/* Look for the annex. */
|
||||
for (i = 0; xml_builtin[i][0] != NULL; i++)
|
||||
if (strcmp (annex, xml_builtin[i][0]) == 0)
|
||||
break;
|
||||
|
||||
if (xml_builtin[i][0] != NULL)
|
||||
return xml_builtin[i][1];
|
||||
}
|
||||
#endif
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user