[PULL 00/16] gdbstub: Always infer base register index from GDB XML

Pierrick Bouvier posted 16 patches 4 weeks ago
Failed in applying to current master (apply log)
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 => gdbstub/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 => gdbstub/gdb-xml}/arm-m-profile-mve.xml |  0
{gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/arm-neon.xml          |  0
{gdb-xml => gdbstub/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 => gdbstub/gdb-xml}/i386-32bit-linux.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml        |  0
{gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml        |  0
{gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml    |  0
{gdb-xml => gdbstub/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 => gdbstub/gdb-xml}/microblaze-core.xml   |  0
.../gdb-xml}/microblaze-stack-protect.xml          |  0
{gdb-xml => gdbstub/gdb-xml}/or1k-core.xml         |  0
{gdb-xml => gdbstub/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 => gdbstub/gdb-xml}/riscv-32bit-cpu.xml   |  0
{gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml   |  0
.../gdb-xml}/riscv-32bit-virtual.xml               |  0
{gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml   |  0
{gdb-xml => gdbstub/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 => gdbstub/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 --
.../dockerfiles/debian-all-test-cross.docker       |  1 +
tests/lcitool/refresh                              |  1 +
tests/tcg/multiarch/Makefile.target                |  7 ++++
129 files changed, 179 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%)
[PULL 00/16] gdbstub: Always infer base register index from GDB XML
Posted by Pierrick Bouvier 4 weeks ago
The following changes since commit ae56950eac7b61b1abf42003329ee0f3ce111711:

  Merge tag 'firmware-20260310-pull-request' of https://gitlab.com/kraxel/qemu into staging (2026-03-10 13:32:30 +0000)

are available in the Git repository at:

  https://gitlab.com/pbo-linaro/qemu tags/pr-gdbstub-20260310

for you to fetch changes up to 6511d4eed79a7e59f03e661f31924277e4d6e600:

  gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] (2026-03-10 17:12:18 -0700)

----------------------------------------------------------------
- [PATCH v4 00/16] gdbstub: Always infer base register index from GDB (=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>)
  Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-1-philmd@linaro.org

----------------------------------------------------------------
Alex Bennée (1):
      tests/docker: add gdb-multiarch to all-test-cross

Philippe Mathieu-Daudé (15):
      tests/tcg: Temporary disable multiarch tests for PPC targets
      tests/tcg: Disable prot-none test on GitLab
      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()
      tests/tcg: Re-enable disabled multiarch tests for PPC targets
      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 => gdbstub/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 => gdbstub/gdb-xml}/arm-m-profile-mve.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml          |  0
 {gdb-xml => gdbstub/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 => gdbstub/gdb-xml}/i386-32bit-linux.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml        |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml        |  0
 {gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml    |  0
 {gdb-xml => gdbstub/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 => gdbstub/gdb-xml}/microblaze-core.xml   |  0
 .../gdb-xml}/microblaze-stack-protect.xml          |  0
 {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml         |  0
 {gdb-xml => gdbstub/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 => gdbstub/gdb-xml}/riscv-32bit-cpu.xml   |  0
 {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml   |  0
 .../gdb-xml}/riscv-32bit-virtual.xml               |  0
 {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml   |  0
 {gdb-xml => gdbstub/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 => gdbstub/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 --
 .../dockerfiles/debian-all-test-cross.docker       |  1 +
 tests/lcitool/refresh                              |  1 +
 tests/tcg/multiarch/Makefile.target                |  7 ++++
 129 files changed, 179 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%)

Re: [PULL 00/16] gdbstub: Always infer base register index from GDB XML
Posted by Peter Maydell 3 weeks, 5 days ago
On Wed, 11 Mar 2026 at 01:38, Pierrick Bouvier
<pierrick.bouvier@linaro.org> wrote:
>
> The following changes since commit ae56950eac7b61b1abf42003329ee0f3ce111711:
>
>   Merge tag 'firmware-20260310-pull-request' of https://gitlab.com/kraxel/qemu into staging (2026-03-10 13:32:30 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/pbo-linaro/qemu tags/pr-gdbstub-20260310
>
> for you to fetch changes up to 6511d4eed79a7e59f03e661f31924277e4d6e600:
>
>   gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] (2026-03-10 17:12:18 -0700)
>
> ----------------------------------------------------------------
> - [PATCH v4 00/16] gdbstub: Always infer base register index from GDB (=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>)
>   Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-1-philmd@linaro.org
>
> ----------------------------------------------------------------



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/11.0
for any user-visible changes.

-- PMM
Re: [PULL 00/16] gdbstub: Always infer base register index from GDB XML
Posted by Philippe Mathieu-Daudé 3 weeks, 5 days ago
On 12/3/26 10:47, Peter Maydell wrote:
> On Wed, 11 Mar 2026 at 01:38, Pierrick Bouvier
> <pierrick.bouvier@linaro.org> wrote:
>>
>> The following changes since commit ae56950eac7b61b1abf42003329ee0f3ce111711:
>>
>>    Merge tag 'firmware-20260310-pull-request' of https://gitlab.com/kraxel/qemu into staging (2026-03-10 13:32:30 +0000)
>>
>> are available in the Git repository at:
>>
>>    https://gitlab.com/pbo-linaro/qemu tags/pr-gdbstub-20260310
>>
>> for you to fetch changes up to 6511d4eed79a7e59f03e661f31924277e4d6e600:
>>
>>    gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] (2026-03-10 17:12:18 -0700)
>>
>> ----------------------------------------------------------------
>> - [PATCH v4 00/16] gdbstub: Always infer base register index from GDB (=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>)
>>    Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-1-philmd@linaro.org
>>
>> ----------------------------------------------------------------
> 
> 
> 
> Applied, thanks.

As of this merged commit 769a37d8bd0:

   v10.0: Total build units: 7797
          (https://gitlab.com/qemu-project/qemu/-/jobs/9788294720)
   v10.1: Total build units: 6443
          (https://gitlab.com/qemu-project/qemu/-/jobs/11142814212)
   v10.2: Total build units: 6367
          (https://gitlab.com/qemu-project/qemu/-/jobs/12474666739)
current: Total build units: 5679
          (https://gitlab.com/qemu-project/qemu/-/jobs/11142814212)

v10.2 -> v11.0 delta so far: 6367 - 5679 = 688  (-12%)
v10.0 -> v11.0 delta so far: 7797 - 5679 = 2118 (-37%)

I'd like to thanks Alex for pushing this effort forward, Pierrick
Richard Anton and few others for the work done and reviews.

(We are no down to 2 duplicated common symbols, then start the
harder parts with duplicated target symbols...)
Re: [PULL 00/16] gdbstub: Always infer base register index from GDB XML
Posted by Markus Armbruster 3 weeks, 1 day ago
Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> On 12/3/26 10:47, Peter Maydell wrote:
>> On Wed, 11 Mar 2026 at 01:38, Pierrick Bouvier
>> <pierrick.bouvier@linaro.org> wrote:
>>>
>>> The following changes since commit ae56950eac7b61b1abf42003329ee0f3ce111711:
>>>
>>>    Merge tag 'firmware-20260310-pull-request' of https://gitlab.com/kraxel/qemu into staging (2026-03-10 13:32:30 +0000)
>>>
>>> are available in the Git repository at:
>>>
>>>    https://gitlab.com/pbo-linaro/qemu tags/pr-gdbstub-20260310
>>>
>>> for you to fetch changes up to 6511d4eed79a7e59f03e661f31924277e4d6e600:
>>>
>>>    gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] (2026-03-10 17:12:18 -0700)
>>>
>>> ----------------------------------------------------------------
>>> - [PATCH v4 00/16] gdbstub: Always infer base register index from GDB (=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>)
>>>    Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-1-philmd@linaro.org
>>>
>>> ----------------------------------------------------------------
>> Applied, thanks.
>
> As of this merged commit 769a37d8bd0:
>
>   v10.0: Total build units: 7797
>          (https://gitlab.com/qemu-project/qemu/-/jobs/9788294720)
>   v10.1: Total build units: 6443
>          (https://gitlab.com/qemu-project/qemu/-/jobs/11142814212)
>   v10.2: Total build units: 6367
>          (https://gitlab.com/qemu-project/qemu/-/jobs/12474666739)
> current: Total build units: 5679
>          (https://gitlab.com/qemu-project/qemu/-/jobs/11142814212)
>
> v10.2 -> v11.0 delta so far: 6367 - 5679 = 688  (-12%)
> v10.0 -> v11.0 delta so far: 7797 - 5679 = 2118 (-37%)

Lovely!  Thanks to everybody involved!

> I'd like to thanks Alex for pushing this effort forward, Pierrick
> Richard Anton and few others for the work done and reviews.
>
> (We are no down to 2 duplicated common symbols, then start the
> harder parts with duplicated target symbols...)
Re: [PULL 00/16] gdbstub: Always infer base register index from GDB XML
Posted by Pierrick Bouvier 3 weeks, 6 days ago
On 3/10/26 6:38 PM, Pierrick Bouvier wrote:
> The following changes since commit ae56950eac7b61b1abf42003329ee0f3ce111711:
> 
>    Merge tag 'firmware-20260310-pull-request' of https://gitlab.com/kraxel/qemu into staging (2026-03-10 13:32:30 +0000)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/pbo-linaro/qemu tags/pr-gdbstub-20260310
> 
> for you to fetch changes up to 6511d4eed79a7e59f03e661f31924277e4d6e600:
> 
>    gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] (2026-03-10 17:12:18 -0700)
> 
> ----------------------------------------------------------------
> - [PATCH v4 00/16] gdbstub: Always infer base register index from GDB (=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>)
>    Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-1-philmd@linaro.org
> 
> ----------------------------------------------------------------
> Alex Bennée (1):
>        tests/docker: add gdb-multiarch to all-test-cross
> 
> Philippe Mathieu-Daudé (15):
>        tests/tcg: Temporary disable multiarch tests for PPC targets
>        tests/tcg: Disable prot-none test on GitLab
>        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()
>        tests/tcg: Re-enable disabled multiarch tests for PPC targets
>        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[]
>
Send this PR for Philippe, as it's the last day for soft freeze, and 
that it's already the middle of the night in his timezone. We tested it 
together.

This series fixes original issue reported here:
https://lore.kernel.org/qemu-devel/e44df309-d40d-46f0-88a8-7ac55f9a3634@fhofhammer.de/

As well, it enables gdbstub tests that were never ran in CI since 
gdb-multiarch was not installed.

Regards,
Pierrick

Re: [PULL 00/16] gdbstub: Always infer base register index from GDB XML
Posted by Philippe Mathieu-Daudé 3 weeks, 5 days ago
On 11/3/26 02:41, Pierrick Bouvier wrote:
> On 3/10/26 6:38 PM, Pierrick Bouvier wrote:
>> The following changes since commit 
>> ae56950eac7b61b1abf42003329ee0f3ce111711:
>>
>>    Merge tag 'firmware-20260310-pull-request' of https://gitlab.com/ 
>> kraxel/qemu into staging (2026-03-10 13:32:30 +0000)
>>
>> are available in the Git repository at:
>>
>>    https://gitlab.com/pbo-linaro/qemu tags/pr-gdbstub-20260310
>>
>> for you to fetch changes up to 6511d4eed79a7e59f03e661f31924277e4d6e600:
>>
>>    gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] 
>> (2026-03-10 17:12:18 -0700)
>>
>> ----------------------------------------------------------------
>> - [PATCH v4 00/16] gdbstub: Always infer base register index from GDB 
>> (=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>)
>>    Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-1- 
>> philmd@linaro.org
>>
>> ----------------------------------------------------------------
>> Alex Bennée (1):
>>        tests/docker: add gdb-multiarch to all-test-cross
>>
>> Philippe Mathieu-Daudé (15):
>>        tests/tcg: Temporary disable multiarch tests for PPC targets
>>        tests/tcg: Disable prot-none test on GitLab
>>        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()
>>        tests/tcg: Re-enable disabled multiarch tests for PPC targets
>>        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[]
>>
> Send this PR for Philippe, as it's the last day for soft freeze, and 
> that it's already the middle of the night in his timezone. We tested it 
> together.

Thanks for the help Pierrick!

> 
> This series fixes original issue reported here:
> https://lore.kernel.org/qemu-devel/e44df309- 
> d40d-46f0-88a8-7ac55f9a3634@fhofhammer.de/
> 
> As well, it enables gdbstub tests that were never ran in CI since gdb- 
> multiarch was not installed.
> 
> Regards,
> Pierrick