[PATCH v3 00/12] gdbstub: Always infer base register index from GDB XML

Philippe Mathieu-Daudé posted 12 patches 4 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260310215916.55815-1-philmd@linaro.org
Maintainers: Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, Laurent Vivier <laurent@vivier.eu>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Zhao Liu <zhao1.liu@intel.com>, Song Gao <gaosong@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Thomas Huth <thuth@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Daniel P. Berrangé" <berrange@redhat.com>, Markus Armbruster <armbru@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Brian Cain <brian.cain@oss.qualcomm.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Nicholas Piggin <npiggin@gmail.com>, Chinmay Rath <rathc@linux.ibm.com>, Glenn Miles <milesg@linux.ibm.com>, Richard Henderson <richard.henderson@linaro.org>, Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>
There is a newer version of this series
MAINTAINERS                                   | 19 +++++-----
docs/devel/codebase.rst                       |  2 -
configs/targets/aarch64-bsd-user.mak          |  2 +-
configs/targets/aarch64-linux-user.mak        |  2 +-
configs/targets/aarch64-softmmu.mak           |  2 +-
configs/targets/aarch64_be-linux-user.mak     |  2 +-
configs/targets/alpha-linux-user.mak          |  2 +-
configs/targets/alpha-softmmu.mak             |  2 +-
configs/targets/arm-bsd-user.mak              |  2 +-
configs/targets/arm-linux-user.mak            |  2 +-
configs/targets/arm-softmmu.mak               |  2 +-
configs/targets/armeb-linux-user.mak          |  2 +-
configs/targets/avr-softmmu.mak               |  2 +-
configs/targets/hexagon-linux-user.mak        |  2 +-
configs/targets/i386-bsd-user.mak             |  2 +-
configs/targets/i386-linux-user.mak           |  2 +-
configs/targets/i386-softmmu.mak              |  2 +-
configs/targets/loongarch64-linux-user.mak    |  2 +-
configs/targets/loongarch64-softmmu.mak       |  2 +-
configs/targets/m68k-linux-user.mak           |  2 +-
configs/targets/m68k-softmmu.mak              |  2 +-
configs/targets/microblaze-linux-user.mak     |  2 +-
configs/targets/microblaze-softmmu.mak        |  2 +-
configs/targets/microblazeel-linux-user.mak   |  2 +-
configs/targets/or1k-linux-user.mak           |  2 +-
configs/targets/or1k-softmmu.mak              |  2 +-
configs/targets/ppc-linux-user.mak            |  2 +-
configs/targets/ppc-softmmu.mak               |  2 +-
configs/targets/ppc64-linux-user.mak          |  2 +-
configs/targets/ppc64-softmmu.mak             |  2 +-
configs/targets/ppc64le-linux-user.mak        |  2 +-
configs/targets/riscv32-linux-user.mak        |  2 +-
configs/targets/riscv32-softmmu.mak           |  2 +-
configs/targets/riscv64-bsd-user.mak          |  2 +-
configs/targets/riscv64-linux-user.mak        |  2 +-
configs/targets/riscv64-softmmu.mak           |  2 +-
configs/targets/rx-softmmu.mak                |  2 +-
configs/targets/s390x-linux-user.mak          |  2 +-
configs/targets/s390x-softmmu.mak             |  2 +-
configs/targets/sparc-linux-user.mak          |  2 +-
configs/targets/sparc-softmmu.mak             |  2 +-
configs/targets/sparc32plus-linux-user.mak    |  2 +-
configs/targets/sparc64-linux-user.mak        |  2 +-
configs/targets/sparc64-softmmu.mak           |  2 +-
configs/targets/x86_64-bsd-user.mak           |  2 +-
configs/targets/x86_64-linux-user.mak         |  2 +-
configs/targets/x86_64-softmmu.mak            |  2 +-
meson.build                                   | 12 +-----
include/exec/gdbstub.h                        |  4 +-
stubs/gdbstub.c => gdbstub/gdb-xml-stub.c     |  0
gdbstub/gdbstub.c                             | 38 ++++++++++++-------
target/arm/gdbstub.c                          | 21 ++++------
target/arm/gdbstub64.c                        | 19 ++++------
target/hexagon/cpu.c                          |  2 +-
target/i386/gdbstub.c                         | 12 ++----
target/loongarch/gdbstub.c                    |  6 +--
target/m68k/helper.c                          |  4 +-
target/microblaze/cpu.c                       |  3 +-
target/ppc/gdbstub.c                          | 11 +++---
target/riscv/gdbstub.c                        | 18 +++------
target/s390x/gdbstub.c                        | 15 ++++----
target/sparc/gdbstub.c                        | 12 ++----
{gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml |  0
{gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml  |  0
.../gdb-xml}/aarch64-pauth.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml |  0
{gdb-xml => gdbstub/gdb-xml}/alpha-core.xml   |  0
{gdb-xml => gdbstub/gdb-xml}/arm-core.xml     |  0
.../gdb-xml}/arm-m-profile-mve.xml            |  0
.../gdb-xml}/arm-m-profile.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/arm-neon.xml     |  0
.../gdb-xml}/arm-vfp-sysregs.xml              |  0
{gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/cf-core.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/cf-fp.xml        |  2 +-
{gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml |  0
{gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml  |  0
.../gdb-xml}/i386-32bit-linux.xml             |  0
{gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml   |  0
.../gdb-xml}/i386-64bit-apx.xml               |  0
.../gdb-xml}/i386-64bit-linux.xml             |  0
{gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml   |  0
.../gdb-xml}/loongarch-base32.xml             |  0
.../gdb-xml}/loongarch-base64.xml             |  0
.../gdb-xml}/loongarch-fpu.xml                |  0
.../gdb-xml}/loongarch-lasx.xml               |  0
.../gdb-xml}/loongarch-lsx.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/m68k-core.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml      |  2 +-
.../gdb-xml}/microblaze-core.xml              |  0
.../gdb-xml}/microblaze-stack-protect.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/or1k-core.xml    |  0
.../gdb-xml}/power-altivec.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/power-core.xml   |  0
{gdb-xml => gdbstub/gdb-xml}/power-fpu.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/power-spe.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/power-vsx.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/power64-core.xml |  0
.../gdb-xml}/riscv-32bit-cpu.xml              |  0
.../gdb-xml}/riscv-32bit-fpu.xml              |  0
.../gdb-xml}/riscv-32bit-virtual.xml          |  0
.../gdb-xml}/riscv-64bit-cpu.xml              |  0
.../gdb-xml}/riscv-64bit-fpu.xml              |  0
.../gdb-xml}/riscv-64bit-virtual.xml          |  0
{gdb-xml => gdbstub/gdb-xml}/rx-core.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/s390-acr.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/s390-cr.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/s390-gs.xml      |  0
.../gdb-xml}/s390-virt-kvm.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/s390-virt.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/s390-vx.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml |  0
{gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml  |  0
gdbstub/meson.build                           | 23 +++++++++++
gdbstub/trace-events                          |  7 ++++
scripts/feature_to_c.py                       | 14 ++++---
stubs/meson.build                             |  2 -
126 files changed, 170 insertions(+), 168 deletions(-)
rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-pauth.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile-mve.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp-sysregs.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/cf-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml (93%)
rename {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit-linux.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lsx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml (93%)
rename {gdb-xml => gdbstub/gdb-xml}/microblaze-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/microblaze-stack-protect.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-altivec.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-spe.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power64-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-virtual.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-virtual.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/rx-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-virt-kvm.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml (100%)
[PATCH v3 00/12] gdbstub: Always infer base register index from GDB XML
Posted by Philippe Mathieu-Daudé 4 weeks ago
Missing review: #9

Generic fix for a latent bug reported by Florian:
https://lore.kernel.org/qemu-devel/e44df309-d40d-46f0-88a8-7ac55f9a3634@fhofhammer.de/

Use the 'regnum' XML tag for feature base register index
(after fixing the incorrect m68k FPU ones).

Include patches from "gdbstub: Generate a single gdbstub-xml.c /
gdb_static_features[]".

v3: Correctly update @base_reg in gdb_register_coprocessor()

Philippe Mathieu-Daudé (12):
  target/i386/gdbstub: Remove stale comment
  meson: Restrict gdbstub to user/system builds
  gdbstub: Simplify gdb_init_cpu() logic
  gdbstub: Add trace events for around XML parsing / generation
  gdbstub: Have scripts/feature_to_c.py generate more verbose output
  gdbstub: Make base register explicit in m68k GDB XML files
  gdbstub: Remove @g_pos argument in gdb_register_coprocessor()
  gdbstub: Emit base_register index in GDBFeature entries
  gdbstub: Consider GDBFeature::base_reg in gdb_register_coprocessor()
  gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
  gdbstub: Move gdb-xml/ within gdbstub/
  gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]

 MAINTAINERS                                   | 19 +++++-----
 docs/devel/codebase.rst                       |  2 -
 configs/targets/aarch64-bsd-user.mak          |  2 +-
 configs/targets/aarch64-linux-user.mak        |  2 +-
 configs/targets/aarch64-softmmu.mak           |  2 +-
 configs/targets/aarch64_be-linux-user.mak     |  2 +-
 configs/targets/alpha-linux-user.mak          |  2 +-
 configs/targets/alpha-softmmu.mak             |  2 +-
 configs/targets/arm-bsd-user.mak              |  2 +-
 configs/targets/arm-linux-user.mak            |  2 +-
 configs/targets/arm-softmmu.mak               |  2 +-
 configs/targets/armeb-linux-user.mak          |  2 +-
 configs/targets/avr-softmmu.mak               |  2 +-
 configs/targets/hexagon-linux-user.mak        |  2 +-
 configs/targets/i386-bsd-user.mak             |  2 +-
 configs/targets/i386-linux-user.mak           |  2 +-
 configs/targets/i386-softmmu.mak              |  2 +-
 configs/targets/loongarch64-linux-user.mak    |  2 +-
 configs/targets/loongarch64-softmmu.mak       |  2 +-
 configs/targets/m68k-linux-user.mak           |  2 +-
 configs/targets/m68k-softmmu.mak              |  2 +-
 configs/targets/microblaze-linux-user.mak     |  2 +-
 configs/targets/microblaze-softmmu.mak        |  2 +-
 configs/targets/microblazeel-linux-user.mak   |  2 +-
 configs/targets/or1k-linux-user.mak           |  2 +-
 configs/targets/or1k-softmmu.mak              |  2 +-
 configs/targets/ppc-linux-user.mak            |  2 +-
 configs/targets/ppc-softmmu.mak               |  2 +-
 configs/targets/ppc64-linux-user.mak          |  2 +-
 configs/targets/ppc64-softmmu.mak             |  2 +-
 configs/targets/ppc64le-linux-user.mak        |  2 +-
 configs/targets/riscv32-linux-user.mak        |  2 +-
 configs/targets/riscv32-softmmu.mak           |  2 +-
 configs/targets/riscv64-bsd-user.mak          |  2 +-
 configs/targets/riscv64-linux-user.mak        |  2 +-
 configs/targets/riscv64-softmmu.mak           |  2 +-
 configs/targets/rx-softmmu.mak                |  2 +-
 configs/targets/s390x-linux-user.mak          |  2 +-
 configs/targets/s390x-softmmu.mak             |  2 +-
 configs/targets/sparc-linux-user.mak          |  2 +-
 configs/targets/sparc-softmmu.mak             |  2 +-
 configs/targets/sparc32plus-linux-user.mak    |  2 +-
 configs/targets/sparc64-linux-user.mak        |  2 +-
 configs/targets/sparc64-softmmu.mak           |  2 +-
 configs/targets/x86_64-bsd-user.mak           |  2 +-
 configs/targets/x86_64-linux-user.mak         |  2 +-
 configs/targets/x86_64-softmmu.mak            |  2 +-
 meson.build                                   | 12 +-----
 include/exec/gdbstub.h                        |  4 +-
 stubs/gdbstub.c => gdbstub/gdb-xml-stub.c     |  0
 gdbstub/gdbstub.c                             | 38 ++++++++++++-------
 target/arm/gdbstub.c                          | 21 ++++------
 target/arm/gdbstub64.c                        | 19 ++++------
 target/hexagon/cpu.c                          |  2 +-
 target/i386/gdbstub.c                         | 12 ++----
 target/loongarch/gdbstub.c                    |  6 +--
 target/m68k/helper.c                          |  4 +-
 target/microblaze/cpu.c                       |  3 +-
 target/ppc/gdbstub.c                          | 11 +++---
 target/riscv/gdbstub.c                        | 18 +++------
 target/s390x/gdbstub.c                        | 15 ++++----
 target/sparc/gdbstub.c                        | 12 ++----
 {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml  |  0
 .../gdb-xml}/aarch64-pauth.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml   |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-core.xml     |  0
 .../gdb-xml}/arm-m-profile-mve.xml            |  0
 .../gdb-xml}/arm-m-profile.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml     |  0
 .../gdb-xml}/arm-vfp-sysregs.xml              |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/cf-core.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml        |  2 +-
 {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml  |  0
 .../gdb-xml}/i386-32bit-linux.xml             |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml   |  0
 .../gdb-xml}/i386-64bit-apx.xml               |  0
 .../gdb-xml}/i386-64bit-linux.xml             |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml   |  0
 .../gdb-xml}/loongarch-base32.xml             |  0
 .../gdb-xml}/loongarch-base64.xml             |  0
 .../gdb-xml}/loongarch-fpu.xml                |  0
 .../gdb-xml}/loongarch-lasx.xml               |  0
 .../gdb-xml}/loongarch-lsx.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml      |  2 +-
 .../gdb-xml}/microblaze-core.xml              |  0
 .../gdb-xml}/microblaze-stack-protect.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml    |  0
 .../gdb-xml}/power-altivec.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/power-core.xml   |  0
 {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/power-spe.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/power64-core.xml |  0
 .../gdb-xml}/riscv-32bit-cpu.xml              |  0
 .../gdb-xml}/riscv-32bit-fpu.xml              |  0
 .../gdb-xml}/riscv-32bit-virtual.xml          |  0
 .../gdb-xml}/riscv-64bit-cpu.xml              |  0
 .../gdb-xml}/riscv-64bit-fpu.xml              |  0
 .../gdb-xml}/riscv-64bit-virtual.xml          |  0
 {gdb-xml => gdbstub/gdb-xml}/rx-core.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml      |  0
 .../gdb-xml}/s390-virt-kvm.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml  |  0
 gdbstub/meson.build                           | 23 +++++++++++
 gdbstub/trace-events                          |  7 ++++
 scripts/feature_to_c.py                       | 14 ++++---
 stubs/meson.build                             |  2 -
 126 files changed, 170 insertions(+), 168 deletions(-)
 rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-pauth.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile-mve.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp-sysregs.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/cf-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml (93%)
 rename {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit-linux.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lsx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml (93%)
 rename {gdb-xml => gdbstub/gdb-xml}/microblaze-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/microblaze-stack-protect.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-altivec.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-spe.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power64-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-virtual.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-virtual.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/rx-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-virt-kvm.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml (100%)

-- 
2.53.0


Re: [PATCH v3 00/12] gdbstub: Always infer base register index from GDB XML
Posted by Pierrick Bouvier 4 weeks ago
On 3/10/26 2:59 PM, Philippe Mathieu-Daudé wrote:
> Missing review: #9
> 
> Generic fix for a latent bug reported by Florian:
> https://lore.kernel.org/qemu-devel/e44df309-d40d-46f0-88a8-7ac55f9a3634@fhofhammer.de/
> 
> Use the 'regnum' XML tag for feature base register index
> (after fixing the incorrect m68k FPU ones).
> 
> Include patches from "gdbstub: Generate a single gdbstub-xml.c /
> gdb_static_features[]".
> 
> v3: Correctly update @base_reg in gdb_register_coprocessor()
> 
> Philippe Mathieu-Daudé (12):
>    target/i386/gdbstub: Remove stale comment
>    meson: Restrict gdbstub to user/system builds
>    gdbstub: Simplify gdb_init_cpu() logic
>    gdbstub: Add trace events for around XML parsing / generation
>    gdbstub: Have scripts/feature_to_c.py generate more verbose output
>    gdbstub: Make base register explicit in m68k GDB XML files
>    gdbstub: Remove @g_pos argument in gdb_register_coprocessor()
>    gdbstub: Emit base_register index in GDBFeature entries
>    gdbstub: Consider GDBFeature::base_reg in gdb_register_coprocessor()
>    gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
>    gdbstub: Move gdb-xml/ within gdbstub/
>    gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
> 
>   MAINTAINERS                                   | 19 +++++-----
>   docs/devel/codebase.rst                       |  2 -
>   configs/targets/aarch64-bsd-user.mak          |  2 +-
>   configs/targets/aarch64-linux-user.mak        |  2 +-
>   configs/targets/aarch64-softmmu.mak           |  2 +-
>   configs/targets/aarch64_be-linux-user.mak     |  2 +-
>   configs/targets/alpha-linux-user.mak          |  2 +-
>   configs/targets/alpha-softmmu.mak             |  2 +-
>   configs/targets/arm-bsd-user.mak              |  2 +-
>   configs/targets/arm-linux-user.mak            |  2 +-
>   configs/targets/arm-softmmu.mak               |  2 +-
>   configs/targets/armeb-linux-user.mak          |  2 +-
>   configs/targets/avr-softmmu.mak               |  2 +-
>   configs/targets/hexagon-linux-user.mak        |  2 +-
>   configs/targets/i386-bsd-user.mak             |  2 +-
>   configs/targets/i386-linux-user.mak           |  2 +-
>   configs/targets/i386-softmmu.mak              |  2 +-
>   configs/targets/loongarch64-linux-user.mak    |  2 +-
>   configs/targets/loongarch64-softmmu.mak       |  2 +-
>   configs/targets/m68k-linux-user.mak           |  2 +-
>   configs/targets/m68k-softmmu.mak              |  2 +-
>   configs/targets/microblaze-linux-user.mak     |  2 +-
>   configs/targets/microblaze-softmmu.mak        |  2 +-
>   configs/targets/microblazeel-linux-user.mak   |  2 +-
>   configs/targets/or1k-linux-user.mak           |  2 +-
>   configs/targets/or1k-softmmu.mak              |  2 +-
>   configs/targets/ppc-linux-user.mak            |  2 +-
>   configs/targets/ppc-softmmu.mak               |  2 +-
>   configs/targets/ppc64-linux-user.mak          |  2 +-
>   configs/targets/ppc64-softmmu.mak             |  2 +-
>   configs/targets/ppc64le-linux-user.mak        |  2 +-
>   configs/targets/riscv32-linux-user.mak        |  2 +-
>   configs/targets/riscv32-softmmu.mak           |  2 +-
>   configs/targets/riscv64-bsd-user.mak          |  2 +-
>   configs/targets/riscv64-linux-user.mak        |  2 +-
>   configs/targets/riscv64-softmmu.mak           |  2 +-
>   configs/targets/rx-softmmu.mak                |  2 +-
>   configs/targets/s390x-linux-user.mak          |  2 +-
>   configs/targets/s390x-softmmu.mak             |  2 +-
>   configs/targets/sparc-linux-user.mak          |  2 +-
>   configs/targets/sparc-softmmu.mak             |  2 +-
>   configs/targets/sparc32plus-linux-user.mak    |  2 +-
>   configs/targets/sparc64-linux-user.mak        |  2 +-
>   configs/targets/sparc64-softmmu.mak           |  2 +-
>   configs/targets/x86_64-bsd-user.mak           |  2 +-
>   configs/targets/x86_64-linux-user.mak         |  2 +-
>   configs/targets/x86_64-softmmu.mak            |  2 +-
>   meson.build                                   | 12 +-----
>   include/exec/gdbstub.h                        |  4 +-
>   stubs/gdbstub.c => gdbstub/gdb-xml-stub.c     |  0
>   gdbstub/gdbstub.c                             | 38 ++++++++++++-------
>   target/arm/gdbstub.c                          | 21 ++++------
>   target/arm/gdbstub64.c                        | 19 ++++------
>   target/hexagon/cpu.c                          |  2 +-
>   target/i386/gdbstub.c                         | 12 ++----
>   target/loongarch/gdbstub.c                    |  6 +--
>   target/m68k/helper.c                          |  4 +-
>   target/microblaze/cpu.c                       |  3 +-
>   target/ppc/gdbstub.c                          | 11 +++---
>   target/riscv/gdbstub.c                        | 18 +++------
>   target/s390x/gdbstub.c                        | 15 ++++----
>   target/sparc/gdbstub.c                        | 12 ++----
>   {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml |  0
>   {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml  |  0
>   {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml  |  0
>   .../gdb-xml}/aarch64-pauth.xml                |  0
>   {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml |  0
>   {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml   |  0
>   {gdb-xml => gdbstub/gdb-xml}/arm-core.xml     |  0
>   .../gdb-xml}/arm-m-profile-mve.xml            |  0
>   .../gdb-xml}/arm-m-profile.xml                |  0
>   {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml     |  0
>   .../gdb-xml}/arm-vfp-sysregs.xml              |  0
>   {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml      |  0
>   {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml     |  0
>   {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml      |  0
>   {gdb-xml => gdbstub/gdb-xml}/cf-core.xml      |  0
>   {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml        |  2 +-
>   {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml |  0
>   {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml  |  0
>   .../gdb-xml}/i386-32bit-linux.xml             |  0
>   {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml   |  0
>   .../gdb-xml}/i386-64bit-apx.xml               |  0
>   .../gdb-xml}/i386-64bit-linux.xml             |  0
>   {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml   |  0
>   .../gdb-xml}/loongarch-base32.xml             |  0
>   .../gdb-xml}/loongarch-base64.xml             |  0
>   .../gdb-xml}/loongarch-fpu.xml                |  0
>   .../gdb-xml}/loongarch-lasx.xml               |  0
>   .../gdb-xml}/loongarch-lsx.xml                |  0
>   {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml    |  0
>   {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml      |  2 +-
>   .../gdb-xml}/microblaze-core.xml              |  0
>   .../gdb-xml}/microblaze-stack-protect.xml     |  0
>   {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml    |  0
>   .../gdb-xml}/power-altivec.xml                |  0
>   {gdb-xml => gdbstub/gdb-xml}/power-core.xml   |  0
>   {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml    |  0
>   {gdb-xml => gdbstub/gdb-xml}/power-spe.xml    |  0
>   {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml    |  0
>   {gdb-xml => gdbstub/gdb-xml}/power64-core.xml |  0
>   .../gdb-xml}/riscv-32bit-cpu.xml              |  0
>   .../gdb-xml}/riscv-32bit-fpu.xml              |  0
>   .../gdb-xml}/riscv-32bit-virtual.xml          |  0
>   .../gdb-xml}/riscv-64bit-cpu.xml              |  0
>   .../gdb-xml}/riscv-64bit-fpu.xml              |  0
>   .../gdb-xml}/riscv-64bit-virtual.xml          |  0
>   {gdb-xml => gdbstub/gdb-xml}/rx-core.xml      |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml     |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml      |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml     |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml      |  0
>   .../gdb-xml}/s390-virt-kvm.xml                |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml    |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml      |  0
>   {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml |  0
>   {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml  |  0
>   {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml  |  0
>   {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml  |  0
>   {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml  |  0
>   {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml  |  0
>   {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml  |  0
>   gdbstub/meson.build                           | 23 +++++++++++
>   gdbstub/trace-events                          |  7 ++++
>   scripts/feature_to_c.py                       | 14 ++++---
>   stubs/meson.build                             |  2 -
>   126 files changed, 170 insertions(+), 168 deletions(-)
>   rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/aarch64-pauth.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile-mve.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp-sysregs.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/cf-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml (93%)
>   rename {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit-linux.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lsx.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml (93%)
>   rename {gdb-xml => gdbstub/gdb-xml}/microblaze-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/microblaze-stack-protect.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/power-altivec.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/power-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/power-spe.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/power64-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-cpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-virtual.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-fpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-virtual.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/rx-core.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-virt-kvm.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml (100%)
>   rename {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml (100%)
> 

Tested on my machine with cross compilers installed, check-tcg works for 
all targets.
Tested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>

Regards,
Pierrick