* [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
@ 2026-02-27 10:43 Philippe Mathieu-Daudé
2026-02-27 10:43 ` [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds Philippe Mathieu-Daudé
` (4 more replies)
0 siblings, 5 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-02-27 10:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Pierrick Bouvier, Alex Bennée
v4: Move gdb-xml/ directory under gdbstub/
v3: Restrict meson to gdbstub/
v2: Check array length
Philippe Mathieu-Daudé (4):
meson: Restrict gdbstub to user/system builds
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/microblazeel-softmmu.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 +----------
stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0
{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 | 0
{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 | 0
.../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 | 21 +++++++++++++++++++
stubs/meson.build | 2 --
112 files changed, 77 insertions(+), 71 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 (100%)
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 (100%)
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.52.0
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds
2026-02-27 10:43 [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
@ 2026-02-27 10:43 ` Philippe Mathieu-Daudé
2026-02-27 10:57 ` Manos Pitsidianakis
2026-02-27 13:00 ` Alex Bennée
2026-02-27 10:43 ` [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES Philippe Mathieu-Daudé
` (3 subsequent siblings)
4 siblings, 2 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-02-27 10:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Pierrick Bouvier, Alex Bennée
Limited builds (tools, documentation) don't need to generate /
build gdbstub files. Only process the gdbstub/ folder when
user / system emulation / acceleration is built.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 3cd1d8dbc66..60415df69a1 100644
--- a/meson.build
+++ b/meson.build
@@ -3724,7 +3724,6 @@ subdir('qom')
subdir('authz')
subdir('crypto')
subdir('ui')
-subdir('gdbstub')
if have_system
subdir('hw')
else
@@ -3767,6 +3766,7 @@ if have_system or have_user
output: 'decode-@BASENAME@.c.inc',
arguments: ['@INPUT@', '@EXTRA_ARGS@', '-o', '@OUTPUT@'])
subdir('libdecnumber')
+ subdir('gdbstub')
subdir('target')
endif
--
2.52.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
2026-02-27 10:43 [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
2026-02-27 10:43 ` [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds Philippe Mathieu-Daudé
@ 2026-02-27 10:43 ` Philippe Mathieu-Daudé
2026-02-27 11:00 ` Manos Pitsidianakis
` (2 more replies)
2026-02-27 10:43 ` [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/ Philippe Mathieu-Daudé
` (2 subsequent siblings)
4 siblings, 3 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-02-27 10:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Pierrick Bouvier, Alex Bennée
All GDB XML files are in the gdb-xml/ directory. No need to be
so verbose in TARGET_XML_FILES, let meson prepend the directory.
Except meson.build lines, this is a mechanical change done running:
$ sed -i -e s,gdb-xml/,,g $(git grep -l gdb-xml configs/targets/)
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
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/microblazeel-softmmu.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 | 6 +++++-
47 files changed, 51 insertions(+), 47 deletions(-)
diff --git a/configs/targets/aarch64-bsd-user.mak b/configs/targets/aarch64-bsd-user.mak
index 7f42e060477..3a839b301e4 100644
--- a/configs/targets/aarch64-bsd-user.mak
+++ b/configs/targets/aarch64-bsd-user.mak
@@ -1,4 +1,4 @@
TARGET_ARCH=aarch64
TARGET_BASE_ARCH=arm
-TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-sme2.xml
+TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aarch64-sme2.xml
TARGET_LONG_BITS=64
diff --git a/configs/targets/aarch64-linux-user.mak b/configs/targets/aarch64-linux-user.mak
index bf328b3b80c..ddfacc092dd 100644
--- a/configs/targets/aarch64-linux-user.mak
+++ b/configs/targets/aarch64-linux-user.mak
@@ -1,6 +1,6 @@
TARGET_ARCH=aarch64
TARGET_BASE_ARCH=arm
-TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-mte.xml gdb-xml/aarch64-sme2.xml
+TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aarch64-mte.xml aarch64-sme2.xml
TARGET_HAS_BFLT=y
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
diff --git a/configs/targets/aarch64-softmmu.mak b/configs/targets/aarch64-softmmu.mak
index d14bcfc4900..9a20187e2c1 100644
--- a/configs/targets/aarch64-softmmu.mak
+++ b/configs/targets/aarch64-softmmu.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=aarch64
TARGET_BASE_ARCH=arm
TARGET_KVM_HAVE_GUEST_DEBUG=y
-TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-sme2.xml
+TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml aarch64-pauth.xml aarch64-sme2.xml
# needed by boot.c
TARGET_NEED_FDT=y
TARGET_LONG_BITS=64
diff --git a/configs/targets/aarch64_be-linux-user.mak b/configs/targets/aarch64_be-linux-user.mak
index 284430add7b..83209fa2ae5 100644
--- a/configs/targets/aarch64_be-linux-user.mak
+++ b/configs/targets/aarch64_be-linux-user.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=aarch64
TARGET_BASE_ARCH=arm
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-mte.xml gdb-xml/aarch64-sme2.xml
+TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aarch64-mte.xml aarch64-sme2.xml
TARGET_HAS_BFLT=y
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
diff --git a/configs/targets/alpha-linux-user.mak b/configs/targets/alpha-linux-user.mak
index 2f1312f0362..fbb9c680915 100644
--- a/configs/targets/alpha-linux-user.mak
+++ b/configs/targets/alpha-linux-user.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=alpha
TARGET_SYSTBL_ABI=common
TARGET_SYSTBL=syscall.tbl
TARGET_LONG_BITS=64
-TARGET_XML_FILES= gdb-xml/alpha-core.xml
+TARGET_XML_FILES= alpha-core.xml
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/configs/targets/alpha-softmmu.mak b/configs/targets/alpha-softmmu.mak
index 5c6af0eafc1..fb412d1b53f 100644
--- a/configs/targets/alpha-softmmu.mak
+++ b/configs/targets/alpha-softmmu.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=alpha
TARGET_LONG_BITS=64
-TARGET_XML_FILES= gdb-xml/alpha-core.xml
+TARGET_XML_FILES= alpha-core.xml
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/configs/targets/arm-bsd-user.mak b/configs/targets/arm-bsd-user.mak
index 472a4f9fb11..b520819e776 100644
--- a/configs/targets/arm-bsd-user.mak
+++ b/configs/targets/arm-bsd-user.mak
@@ -1,3 +1,3 @@
TARGET_ARCH=arm
-TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
+TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/arm-linux-user.mak b/configs/targets/arm-linux-user.mak
index bf35ded7fea..3793782d067 100644
--- a/configs/targets/arm-linux-user.mak
+++ b/configs/targets/arm-linux-user.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=arm
TARGET_SYSTBL_ABI=common,oabi
TARGET_SYSTBL=syscall.tbl
-TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
+TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
TARGET_HAS_BFLT=y
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
diff --git a/configs/targets/arm-softmmu.mak b/configs/targets/arm-softmmu.mak
index 6a5a8eda949..35af7da79f2 100644
--- a/configs/targets/arm-softmmu.mak
+++ b/configs/targets/arm-softmmu.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=arm
-TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
+TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
# needed by boot.c
TARGET_NEED_FDT=y
TARGET_LONG_BITS=32
diff --git a/configs/targets/armeb-linux-user.mak b/configs/targets/armeb-linux-user.mak
index 35fa4d91b3c..536bc95af71 100644
--- a/configs/targets/armeb-linux-user.mak
+++ b/configs/targets/armeb-linux-user.mak
@@ -2,7 +2,7 @@ TARGET_ARCH=arm
TARGET_SYSTBL_ABI=common,oabi
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
+TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
TARGET_HAS_BFLT=y
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
diff --git a/configs/targets/avr-softmmu.mak b/configs/targets/avr-softmmu.mak
index baf20fb7f2f..0a00f128749 100644
--- a/configs/targets/avr-softmmu.mak
+++ b/configs/targets/avr-softmmu.mak
@@ -1,4 +1,4 @@
TARGET_ARCH=avr
-TARGET_XML_FILES= gdb-xml/avr-cpu.xml
+TARGET_XML_FILES= avr-cpu.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/configs/targets/hexagon-linux-user.mak b/configs/targets/hexagon-linux-user.mak
index 6763e2111d5..51fde5d60e6 100644
--- a/configs/targets/hexagon-linux-user.mak
+++ b/configs/targets/hexagon-linux-user.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=hexagon
-TARGET_XML_FILES=gdb-xml/hexagon-core.xml gdb-xml/hexagon-hvx.xml
+TARGET_XML_FILES=hexagon-core.xml hexagon-hvx.xml
TARGET_SYSTBL=syscall.tbl
TARGET_SYSTBL_ABI=common,32,hexagon,time32,stat64,rlimit,renameat
TARGET_LONG_BITS=32
diff --git a/configs/targets/i386-bsd-user.mak b/configs/targets/i386-bsd-user.mak
index 70e098da491..485f571cb6c 100644
--- a/configs/targets/i386-bsd-user.mak
+++ b/configs/targets/i386-bsd-user.mak
@@ -1,3 +1,3 @@
TARGET_ARCH=i386
-TARGET_XML_FILES= gdb-xml/i386-32bit.xml
+TARGET_XML_FILES= i386-32bit.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/i386-linux-user.mak b/configs/targets/i386-linux-user.mak
index ea68a266fce..a3ea4c39c52 100644
--- a/configs/targets/i386-linux-user.mak
+++ b/configs/targets/i386-linux-user.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=i386
TARGET_SYSTBL_ABI=i386
TARGET_SYSTBL=syscall_32.tbl
-TARGET_XML_FILES= gdb-xml/i386-32bit.xml gdb-xml/i386-32bit-linux.xml
+TARGET_XML_FILES= i386-32bit.xml i386-32bit-linux.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/i386-softmmu.mak b/configs/targets/i386-softmmu.mak
index 19ef4a6690d..38a8f85201f 100644
--- a/configs/targets/i386-softmmu.mak
+++ b/configs/targets/i386-softmmu.mak
@@ -1,6 +1,6 @@
TARGET_ARCH=i386
TARGET_KVM_HAVE_GUEST_DEBUG=y
TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
-TARGET_XML_FILES= gdb-xml/i386-32bit.xml
+TARGET_XML_FILES= i386-32bit.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/configs/targets/loongarch64-linux-user.mak b/configs/targets/loongarch64-linux-user.mak
index 4ea12794705..63b0bfc07b8 100644
--- a/configs/targets/loongarch64-linux-user.mak
+++ b/configs/targets/loongarch64-linux-user.mak
@@ -1,7 +1,7 @@
# Default configuration for loongarch64-linux-user
TARGET_ARCH=loongarch64
TARGET_BASE_ARCH=loongarch
-TARGET_XML_FILES=gdb-xml/loongarch-base64.xml gdb-xml/loongarch-fpu.xml gdb-xml/loongarch-lsx.xml gdb-xml/loongarch-lasx.xml
+TARGET_XML_FILES=loongarch-base64.xml loongarch-fpu.xml loongarch-lsx.xml loongarch-lasx.xml
TARGET_SYSTBL=syscall.tbl
TARGET_SYSTBL_ABI=common,64
TARGET_LONG_BITS=64
diff --git a/configs/targets/loongarch64-softmmu.mak b/configs/targets/loongarch64-softmmu.mak
index 38c0f68ddbc..476407f9413 100644
--- a/configs/targets/loongarch64-softmmu.mak
+++ b/configs/targets/loongarch64-softmmu.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=loongarch64
TARGET_BASE_ARCH=loongarch
TARGET_KVM_HAVE_GUEST_DEBUG=y
-TARGET_XML_FILES= gdb-xml/loongarch-base32.xml gdb-xml/loongarch-base64.xml gdb-xml/loongarch-fpu.xml gdb-xml/loongarch-lsx.xml gdb-xml/loongarch-lasx.xml
+TARGET_XML_FILES= loongarch-base32.xml loongarch-base64.xml loongarch-fpu.xml loongarch-lsx.xml loongarch-lasx.xml
# all boards require libfdt
TARGET_NEED_FDT=y
TARGET_LONG_BITS=64
diff --git a/configs/targets/m68k-linux-user.mak b/configs/targets/m68k-linux-user.mak
index 2d9bae22707..b64f33e759a 100644
--- a/configs/targets/m68k-linux-user.mak
+++ b/configs/targets/m68k-linux-user.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=m68k
TARGET_SYSTBL_ABI=common
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/cf-core.xml gdb-xml/cf-fp.xml gdb-xml/m68k-core.xml gdb-xml/m68k-fp.xml
+TARGET_XML_FILES= cf-core.xml cf-fp.xml m68k-core.xml m68k-fp.xml
TARGET_HAS_BFLT=y
TARGET_LONG_BITS=32
diff --git a/configs/targets/m68k-softmmu.mak b/configs/targets/m68k-softmmu.mak
index bacc52e96a9..0bc889f326e 100644
--- a/configs/targets/m68k-softmmu.mak
+++ b/configs/targets/m68k-softmmu.mak
@@ -1,4 +1,4 @@
TARGET_ARCH=m68k
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/cf-core.xml gdb-xml/cf-fp.xml gdb-xml/m68k-core.xml gdb-xml/m68k-fp.xml
+TARGET_XML_FILES= cf-core.xml cf-fp.xml m68k-core.xml m68k-fp.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/microblaze-linux-user.mak b/configs/targets/microblaze-linux-user.mak
index 37727797695..31150f980c8 100644
--- a/configs/targets/microblaze-linux-user.mak
+++ b/configs/targets/microblaze-linux-user.mak
@@ -3,5 +3,5 @@ TARGET_SYSTBL_ABI=common
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
TARGET_HAS_BFLT=y
-TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
+TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/microblaze-softmmu.mak b/configs/targets/microblaze-softmmu.mak
index cf635798c90..f2b6ab93fbe 100644
--- a/configs/targets/microblaze-softmmu.mak
+++ b/configs/targets/microblaze-softmmu.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=microblaze
TARGET_BIG_ENDIAN=y
# needed by boot.c
TARGET_NEED_FDT=y
-TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
+TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/configs/targets/microblazeel-linux-user.mak b/configs/targets/microblazeel-linux-user.mak
index a51a05488d3..5dcd4b5b183 100644
--- a/configs/targets/microblazeel-linux-user.mak
+++ b/configs/targets/microblazeel-linux-user.mak
@@ -2,5 +2,5 @@ TARGET_ARCH=microblaze
TARGET_SYSTBL_ABI=common
TARGET_SYSTBL=syscall.tbl
TARGET_HAS_BFLT=y
-TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
+TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/microblazeel-softmmu.mak b/configs/targets/microblazeel-softmmu.mak
index 52feb957b48..56adbaa5ad4 100644
--- a/configs/targets/microblazeel-softmmu.mak
+++ b/configs/targets/microblazeel-softmmu.mak
@@ -1,6 +1,6 @@
TARGET_ARCH=microblaze
# needed by boot.c
TARGET_NEED_FDT=y
-TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
+TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/configs/targets/or1k-linux-user.mak b/configs/targets/or1k-linux-user.mak
index 9f8c178ef10..ecb95253680 100644
--- a/configs/targets/or1k-linux-user.mak
+++ b/configs/targets/or1k-linux-user.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=or1k
TARGET_BIG_ENDIAN=y
TARGET_SYSTBL_ABI=common,32,or1k,time32,stat64,rlimit,renameat
TARGET_SYSTBL=syscall.tbl
-TARGET_XML_FILES= gdb-xml/or1k-core.xml
+TARGET_XML_FILES= or1k-core.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/or1k-softmmu.mak b/configs/targets/or1k-softmmu.mak
index 24d89bc3e65..c3ca0a2c6ba 100644
--- a/configs/targets/or1k-softmmu.mak
+++ b/configs/targets/or1k-softmmu.mak
@@ -2,7 +2,7 @@ TARGET_ARCH=or1k
TARGET_BIG_ENDIAN=y
# needed by boot.c and all boards
TARGET_NEED_FDT=y
-TARGET_XML_FILES= gdb-xml/or1k-core.xml
+TARGET_XML_FILES= or1k-core.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/ppc-linux-user.mak b/configs/targets/ppc-linux-user.mak
index 970d04a5ba1..5ddec598760 100644
--- a/configs/targets/ppc-linux-user.mak
+++ b/configs/targets/ppc-linux-user.mak
@@ -2,5 +2,5 @@ TARGET_ARCH=ppc
TARGET_SYSTBL_ABI=common,nospu,32
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/power-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml
+TARGET_XML_FILES= power-core.xml power-fpu.xml power-altivec.xml power-spe.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/ppc-softmmu.mak b/configs/targets/ppc-softmmu.mak
index 9bfa7df6c36..867898bd47c 100644
--- a/configs/targets/ppc-softmmu.mak
+++ b/configs/targets/ppc-softmmu.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=ppc
TARGET_BIG_ENDIAN=y
TARGET_KVM_HAVE_GUEST_DEBUG=y
-TARGET_XML_FILES= gdb-xml/power-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml
+TARGET_XML_FILES= power-core.xml power-fpu.xml power-altivec.xml power-spe.xml
TARGET_LONG_BITS=32
diff --git a/configs/targets/ppc64-linux-user.mak b/configs/targets/ppc64-linux-user.mak
index 461f1c67d15..fcedce1b4e0 100644
--- a/configs/targets/ppc64-linux-user.mak
+++ b/configs/targets/ppc64-linux-user.mak
@@ -4,5 +4,5 @@ TARGET_ABI_DIR=ppc
TARGET_SYSTBL_ABI=common,nospu,64
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml
+TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml
TARGET_LONG_BITS=64
diff --git a/configs/targets/ppc64-softmmu.mak b/configs/targets/ppc64-softmmu.mak
index 74572864b36..10d7a2681e7 100644
--- a/configs/targets/ppc64-softmmu.mak
+++ b/configs/targets/ppc64-softmmu.mak
@@ -2,7 +2,7 @@ TARGET_ARCH=ppc64
TARGET_BASE_ARCH=ppc
TARGET_BIG_ENDIAN=y
TARGET_KVM_HAVE_GUEST_DEBUG=y
-TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml
+TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml
# all boards require libfdt
TARGET_NEED_FDT=y
TARGET_LONG_BITS=64
diff --git a/configs/targets/ppc64le-linux-user.mak b/configs/targets/ppc64le-linux-user.mak
index cf9d8a400d9..b5a81b58868 100644
--- a/configs/targets/ppc64le-linux-user.mak
+++ b/configs/targets/ppc64le-linux-user.mak
@@ -3,5 +3,5 @@ TARGET_BASE_ARCH=ppc
TARGET_ABI_DIR=ppc
TARGET_SYSTBL_ABI=common,nospu,64
TARGET_SYSTBL=syscall.tbl
-TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml
+TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml
TARGET_LONG_BITS=64
diff --git a/configs/targets/riscv32-linux-user.mak b/configs/targets/riscv32-linux-user.mak
index a0ef03c0c3f..f069ab9a0f9 100644
--- a/configs/targets/riscv32-linux-user.mak
+++ b/configs/targets/riscv32-linux-user.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=riscv32
TARGET_BASE_ARCH=riscv
TARGET_ABI_DIR=riscv
-TARGET_XML_FILES= gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-32bit-virtual.xml
+TARGET_XML_FILES= riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-32bit-virtual.xml
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
TARGET_SYSTBL_ABI=32
diff --git a/configs/targets/riscv32-softmmu.mak b/configs/targets/riscv32-softmmu.mak
index 7476e596082..26080599be7 100644
--- a/configs/targets/riscv32-softmmu.mak
+++ b/configs/targets/riscv32-softmmu.mak
@@ -1,6 +1,6 @@
TARGET_ARCH=riscv32
TARGET_BASE_ARCH=riscv
-TARGET_XML_FILES= gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-32bit-virtual.xml
+TARGET_XML_FILES= riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-32bit-virtual.xml
# needed by boot.c
TARGET_NEED_FDT=y
TARGET_LONG_BITS=32
diff --git a/configs/targets/riscv64-bsd-user.mak b/configs/targets/riscv64-bsd-user.mak
index c6348a79629..bc85d9ed04e 100644
--- a/configs/targets/riscv64-bsd-user.mak
+++ b/configs/targets/riscv64-bsd-user.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=riscv64
TARGET_BASE_ARCH=riscv
TARGET_ABI_DIR=riscv
-TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml
+TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-64bit-virtual.xml
TARGET_LONG_BITS=64
diff --git a/configs/targets/riscv64-linux-user.mak b/configs/targets/riscv64-linux-user.mak
index aac7568305d..bca08645124 100644
--- a/configs/targets/riscv64-linux-user.mak
+++ b/configs/targets/riscv64-linux-user.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=riscv64
TARGET_BASE_ARCH=riscv
TARGET_ABI_DIR=riscv
-TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml
+TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-64bit-virtual.xml
CONFIG_SEMIHOSTING=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
TARGET_SYSTBL_ABI=64
diff --git a/configs/targets/riscv64-softmmu.mak b/configs/targets/riscv64-softmmu.mak
index f836f08c5b9..5059c550480 100644
--- a/configs/targets/riscv64-softmmu.mak
+++ b/configs/targets/riscv64-softmmu.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=riscv64
TARGET_BASE_ARCH=riscv
TARGET_KVM_HAVE_GUEST_DEBUG=y
-TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-virtual.xml
+TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-64bit-virtual.xml riscv-32bit-cpu.xml riscv-32bit-virtual.xml
# needed by boot.c
TARGET_NEED_FDT=y
TARGET_LONG_BITS=64
diff --git a/configs/targets/rx-softmmu.mak b/configs/targets/rx-softmmu.mak
index 281a165873a..1959d1b4ccc 100644
--- a/configs/targets/rx-softmmu.mak
+++ b/configs/targets/rx-softmmu.mak
@@ -1,5 +1,5 @@
TARGET_ARCH=rx
-TARGET_XML_FILES= gdb-xml/rx-core.xml
+TARGET_XML_FILES= rx-core.xml
# all boards require libfdt
TARGET_NEED_FDT=y
TARGET_LONG_BITS=32
diff --git a/configs/targets/s390x-linux-user.mak b/configs/targets/s390x-linux-user.mak
index e3723f5dc54..2dbcae0a6e2 100644
--- a/configs/targets/s390x-linux-user.mak
+++ b/configs/targets/s390x-linux-user.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=s390x
TARGET_SYSTBL_ABI=common,64
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES= gdb-xml/s390x-core64.xml gdb-xml/s390-acr.xml gdb-xml/s390-fpr.xml gdb-xml/s390-vx.xml gdb-xml/s390-cr.xml gdb-xml/s390-virt.xml gdb-xml/s390-virt-kvm.xml gdb-xml/s390-gs.xml
+TARGET_XML_FILES= s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml s390-virt-kvm.xml s390-gs.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/s390x-softmmu.mak b/configs/targets/s390x-softmmu.mak
index 544657cfe2d..e273075f1a9 100644
--- a/configs/targets/s390x-softmmu.mak
+++ b/configs/targets/s390x-softmmu.mak
@@ -1,6 +1,6 @@
TARGET_ARCH=s390x
TARGET_BIG_ENDIAN=y
TARGET_KVM_HAVE_GUEST_DEBUG=y
-TARGET_XML_FILES= gdb-xml/s390x-core64.xml gdb-xml/s390-acr.xml gdb-xml/s390-fpr.xml gdb-xml/s390-vx.xml gdb-xml/s390-cr.xml gdb-xml/s390-virt.xml gdb-xml/s390-virt-kvm.xml gdb-xml/s390-gs.xml
+TARGET_XML_FILES= s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml s390-virt-kvm.xml s390-gs.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/sparc-linux-user.mak b/configs/targets/sparc-linux-user.mak
index 01446e28783..2b6f8077399 100644
--- a/configs/targets/sparc-linux-user.mak
+++ b/configs/targets/sparc-linux-user.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=sparc
TARGET_SYSTBL_ABI=common,32
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES=gdb-xml/sparc32-cpu.xml gdb-xml/sparc32-fpu.xml gdb-xml/sparc32-cp0.xml
+TARGET_XML_FILES=sparc32-cpu.xml sparc32-fpu.xml sparc32-cp0.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/sparc-softmmu.mak b/configs/targets/sparc-softmmu.mak
index ed846735f41..126ce12abb0 100644
--- a/configs/targets/sparc-softmmu.mak
+++ b/configs/targets/sparc-softmmu.mak
@@ -1,6 +1,6 @@
TARGET_ARCH=sparc
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES=gdb-xml/sparc32-cpu.xml gdb-xml/sparc32-fpu.xml gdb-xml/sparc32-cp0.xml
+TARGET_XML_FILES=sparc32-cpu.xml sparc32-fpu.xml sparc32-cp0.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/sparc32plus-linux-user.mak b/configs/targets/sparc32plus-linux-user.mak
index cf49c53ce44..a1d8530ecfd 100644
--- a/configs/targets/sparc32plus-linux-user.mak
+++ b/configs/targets/sparc32plus-linux-user.mak
@@ -5,6 +5,6 @@ TARGET_ABI_DIR=sparc
TARGET_SYSTBL_ABI=common,32
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES=gdb-xml/sparc64-cpu.xml gdb-xml/sparc64-fpu.xml gdb-xml/sparc64-cp0.xml
+TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/sparc64-linux-user.mak b/configs/targets/sparc64-linux-user.mak
index 81d18fcc85b..c48a03aeb9e 100644
--- a/configs/targets/sparc64-linux-user.mak
+++ b/configs/targets/sparc64-linux-user.mak
@@ -4,6 +4,6 @@ TARGET_ABI_DIR=sparc
TARGET_SYSTBL_ABI=common,64
TARGET_SYSTBL=syscall.tbl
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES=gdb-xml/sparc64-cpu.xml gdb-xml/sparc64-fpu.xml gdb-xml/sparc64-cp0.xml
+TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/sparc64-softmmu.mak b/configs/targets/sparc64-softmmu.mak
index 602783ef0f6..4e621fb8e39 100644
--- a/configs/targets/sparc64-softmmu.mak
+++ b/configs/targets/sparc64-softmmu.mak
@@ -1,7 +1,7 @@
TARGET_ARCH=sparc64
TARGET_BASE_ARCH=sparc
TARGET_BIG_ENDIAN=y
-TARGET_XML_FILES=gdb-xml/sparc64-cpu.xml gdb-xml/sparc64-fpu.xml gdb-xml/sparc64-cp0.xml
+TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
diff --git a/configs/targets/x86_64-bsd-user.mak b/configs/targets/x86_64-bsd-user.mak
index d62d656f2c6..d754186347f 100644
--- a/configs/targets/x86_64-bsd-user.mak
+++ b/configs/targets/x86_64-bsd-user.mak
@@ -1,4 +1,4 @@
TARGET_ARCH=x86_64
TARGET_BASE_ARCH=i386
-TARGET_XML_FILES= gdb-xml/i386-64bit.xml
+TARGET_XML_FILES= i386-64bit.xml
TARGET_LONG_BITS=64
diff --git a/configs/targets/x86_64-linux-user.mak b/configs/targets/x86_64-linux-user.mak
index b093ab5a167..7f9527fd1de 100644
--- a/configs/targets/x86_64-linux-user.mak
+++ b/configs/targets/x86_64-linux-user.mak
@@ -2,5 +2,5 @@ TARGET_ARCH=x86_64
TARGET_BASE_ARCH=i386
TARGET_SYSTBL_ABI=common,64
TARGET_SYSTBL=syscall_64.tbl
-TARGET_XML_FILES= gdb-xml/i386-64bit.xml gdb-xml/i386-64bit-linux.xml
+TARGET_XML_FILES= i386-64bit.xml i386-64bit-linux.xml
TARGET_LONG_BITS=64
diff --git a/configs/targets/x86_64-softmmu.mak b/configs/targets/x86_64-softmmu.mak
index 151862158c7..c7f8746b4f5 100644
--- a/configs/targets/x86_64-softmmu.mak
+++ b/configs/targets/x86_64-softmmu.mak
@@ -2,6 +2,6 @@ TARGET_ARCH=x86_64
TARGET_BASE_ARCH=i386
TARGET_KVM_HAVE_GUEST_DEBUG=y
TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
-TARGET_XML_FILES= gdb-xml/i386-64bit.xml gdb-xml/i386-64bit-apx.xml
+TARGET_XML_FILES= i386-64bit.xml i386-64bit-apx.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
diff --git a/meson.build b/meson.build
index 60415df69a1..42f9cfb5512 100644
--- a/meson.build
+++ b/meson.build
@@ -4302,9 +4302,13 @@ foreach target : target_dirs
endif
if 'TARGET_XML_FILES' in config_target
+ gdbstub_xml_files = []
+ foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
+ gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
+ endforeach
gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
output: target + '-gdbstub-xml.c',
- input: files(config_target['TARGET_XML_FILES'].split()),
+ input: files(gdbstub_xml_files),
command: [feature_to_c, '@INPUT@'],
capture: true)
arch_srcs += gdbstub_xml
--
2.52.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/
2026-02-27 10:43 [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
2026-02-27 10:43 ` [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds Philippe Mathieu-Daudé
2026-02-27 10:43 ` [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES Philippe Mathieu-Daudé
@ 2026-02-27 10:43 ` Philippe Mathieu-Daudé
2026-02-27 10:58 ` Manos Pitsidianakis
2026-02-27 13:00 ` Alex Bennée
2026-02-27 10:43 ` [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
2026-02-27 15:01 ` [PATCH v4 0/4] " Alex Bennée
4 siblings, 2 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-02-27 10:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Pierrick Bouvier, Alex Bennée
gdb-xml/ files are only consumed by gdbstub API.
No need for a top-level entry, move them to gdbstub/.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
MAINTAINERS | 19 +++++++++----------
docs/devel/codebase.rst | 2 --
meson.build | 2 +-
{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 | 0
{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 | 0
.../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
63 files changed, 10 insertions(+), 13 deletions(-)
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 (100%)
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 (100%)
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%)
diff --git a/MAINTAINERS b/MAINTAINERS
index 606b16762cf..fd316018b68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -106,7 +106,7 @@ M: Thomas Huth <thuth@redhat.com>
S: Supported
F: configs/devices/s390x-softmmu/default.mak
F: configs/targets/s390x-softmmu.mak
-F: gdb-xml/s390*.xml
+F: gdbstub/gdb-xml/s390*.xml
F: hw/char/sclp*.[hc]
F: hw/char/terminal3270.c
F: hw/intc/s390_flic.c
@@ -214,8 +214,8 @@ F: include/hw/cpu/a*mpcore.h
F: docs/system/target-arm.rst
F: docs/system/arm/cpu-features.rst
F: docs/system/arm/emulation.rst
-F: gdb-xml/arm*.xml
-F: gdb-xml/aarch64*.xml
+F: gdbstub/gdb-xml/arm*.xml
+F: gdbstub/gdb-xml/aarch64*.xml
ARM SMMU
M: Eric Auger <eric.auger@redhat.com>
@@ -230,7 +230,7 @@ AVR TCG CPUs
M: Michael Rolnik <mrolnik@gmail.com>
S: Maintained
F: docs/system/target-avr.rst
-F: gdb-xml/avr-cpu.xml
+F: gdbstub/gdb-xml/avr-cpu.xml
F: target/avr/
F: tests/functional/avr/
@@ -245,7 +245,7 @@ F: tests/tcg/hexagon/
F: disas/hexagon.c
F: configs/targets/hexagon-linux-user/default.mak
F: docker/dockerfiles/debian-hexagon-cross.docker
-F: gdb-xml/hexagon*.xml
+F: gdbstub/gdb-xml/hexagon*.xml
T: git https://github.com/quic/qemu.git hex-next
Hexagon idef-parser
@@ -304,7 +304,7 @@ M: Stafford Horne <shorne@gmail.com>
S: Odd Fixes
F: docs/system/or1k/cpu-features.rst
F: target/or1k/
-F: gdb-xml/or1k-core.xml
+F: gdbstub/gdb-xml/or1k-core.xml
F: hw/or1k/
F: include/hw/or1k/
F: tests/functional/or1k/meson.build
@@ -403,7 +403,7 @@ M: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
M: Artyom Tarasenko <atar4qemu@gmail.com>
S: Maintained
F: target/sparc/
-F: gdb-xml/sparc*.xml
+F: gdbstub/gdb-xml/sparc*.xml
F: hw/sparc/
F: hw/sparc64/
F: include/hw/sparc/sparc64.h
@@ -491,7 +491,7 @@ S: Supported
F: target/s390x/kvm/
F: target/s390x/machine.c
F: target/s390x/sigp.c
-F: gdb-xml/s390*.xml
+F: gdbstub/gdb-xml/s390*.xml
T: git https://github.com/borntraeger/qemu.git s390-next
L: qemu-s390x@nongnu.org
@@ -1348,7 +1348,7 @@ F: include/hw/intc/loongson_ipi_common.h
F: hw/intc/loongarch_*.c
F: hw/intc/loongson_ipi_common.c
F: hw/rtc/ls7a_rtc.c
-F: gdb-xml/loongarch*.xml
+F: gdbstub/gdb-xml/loongarch*.xml
M68K Machines
-------------
@@ -3299,7 +3299,6 @@ F: docs/system/gdb.rst
F: gdbstub/*
F: include/exec/gdbstub.h
F: include/gdbstub/*
-F: gdb-xml/
F: tests/tcg/multiarch/gdbstub/*
F: scripts/feature_to_c.py
F: scripts/probe-gdb-support.py
diff --git a/docs/devel/codebase.rst b/docs/devel/codebase.rst
index 69d88271178..f09307b8971 100644
--- a/docs/devel/codebase.rst
+++ b/docs/devel/codebase.rst
@@ -88,8 +88,6 @@ yet, so sometimes the source code is all you have.
`VirtFS <https://www.linux-kvm.org/page/VirtFS>`_ support.
* `gdbstub <https://gitlab.com/qemu-project/qemu/-/tree/master/gdbstub>`_:
`GDB <GDB usage>` support.
-* `gdb-xml <https://gitlab.com/qemu-project/qemu/-/tree/master/gdb-xml>`_:
- Set of XML files describing architectures and used by `gdbstub <GDB usage>`.
* `host <https://gitlab.com/qemu-project/qemu/-/tree/master/host>`_:
Various architecture specific header files (crypto, atomic, memory
operations).
diff --git a/meson.build b/meson.build
index 42f9cfb5512..56a746fed00 100644
--- a/meson.build
+++ b/meson.build
@@ -4304,7 +4304,7 @@ foreach target : target_dirs
if 'TARGET_XML_FILES' in config_target
gdbstub_xml_files = []
foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
- gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
+ gdbstub_xml_files += 'gdbstub/gdb-xml/' + gdbstub_xml
endforeach
gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
output: target + '-gdbstub-xml.c',
diff --git a/gdb-xml/aarch64-core.xml b/gdbstub/gdb-xml/aarch64-core.xml
similarity index 100%
rename from gdb-xml/aarch64-core.xml
rename to gdbstub/gdb-xml/aarch64-core.xml
diff --git a/gdb-xml/aarch64-fpu.xml b/gdbstub/gdb-xml/aarch64-fpu.xml
similarity index 100%
rename from gdb-xml/aarch64-fpu.xml
rename to gdbstub/gdb-xml/aarch64-fpu.xml
diff --git a/gdb-xml/aarch64-mte.xml b/gdbstub/gdb-xml/aarch64-mte.xml
similarity index 100%
rename from gdb-xml/aarch64-mte.xml
rename to gdbstub/gdb-xml/aarch64-mte.xml
diff --git a/gdb-xml/aarch64-pauth.xml b/gdbstub/gdb-xml/aarch64-pauth.xml
similarity index 100%
rename from gdb-xml/aarch64-pauth.xml
rename to gdbstub/gdb-xml/aarch64-pauth.xml
diff --git a/gdb-xml/aarch64-sme2.xml b/gdbstub/gdb-xml/aarch64-sme2.xml
similarity index 100%
rename from gdb-xml/aarch64-sme2.xml
rename to gdbstub/gdb-xml/aarch64-sme2.xml
diff --git a/gdb-xml/alpha-core.xml b/gdbstub/gdb-xml/alpha-core.xml
similarity index 100%
rename from gdb-xml/alpha-core.xml
rename to gdbstub/gdb-xml/alpha-core.xml
diff --git a/gdb-xml/arm-core.xml b/gdbstub/gdb-xml/arm-core.xml
similarity index 100%
rename from gdb-xml/arm-core.xml
rename to gdbstub/gdb-xml/arm-core.xml
diff --git a/gdb-xml/arm-m-profile-mve.xml b/gdbstub/gdb-xml/arm-m-profile-mve.xml
similarity index 100%
rename from gdb-xml/arm-m-profile-mve.xml
rename to gdbstub/gdb-xml/arm-m-profile-mve.xml
diff --git a/gdb-xml/arm-m-profile.xml b/gdbstub/gdb-xml/arm-m-profile.xml
similarity index 100%
rename from gdb-xml/arm-m-profile.xml
rename to gdbstub/gdb-xml/arm-m-profile.xml
diff --git a/gdb-xml/arm-neon.xml b/gdbstub/gdb-xml/arm-neon.xml
similarity index 100%
rename from gdb-xml/arm-neon.xml
rename to gdbstub/gdb-xml/arm-neon.xml
diff --git a/gdb-xml/arm-vfp-sysregs.xml b/gdbstub/gdb-xml/arm-vfp-sysregs.xml
similarity index 100%
rename from gdb-xml/arm-vfp-sysregs.xml
rename to gdbstub/gdb-xml/arm-vfp-sysregs.xml
diff --git a/gdb-xml/arm-vfp.xml b/gdbstub/gdb-xml/arm-vfp.xml
similarity index 100%
rename from gdb-xml/arm-vfp.xml
rename to gdbstub/gdb-xml/arm-vfp.xml
diff --git a/gdb-xml/arm-vfp3.xml b/gdbstub/gdb-xml/arm-vfp3.xml
similarity index 100%
rename from gdb-xml/arm-vfp3.xml
rename to gdbstub/gdb-xml/arm-vfp3.xml
diff --git a/gdb-xml/avr-cpu.xml b/gdbstub/gdb-xml/avr-cpu.xml
similarity index 100%
rename from gdb-xml/avr-cpu.xml
rename to gdbstub/gdb-xml/avr-cpu.xml
diff --git a/gdb-xml/cf-core.xml b/gdbstub/gdb-xml/cf-core.xml
similarity index 100%
rename from gdb-xml/cf-core.xml
rename to gdbstub/gdb-xml/cf-core.xml
diff --git a/gdb-xml/cf-fp.xml b/gdbstub/gdb-xml/cf-fp.xml
similarity index 100%
rename from gdb-xml/cf-fp.xml
rename to gdbstub/gdb-xml/cf-fp.xml
diff --git a/gdb-xml/hexagon-core.xml b/gdbstub/gdb-xml/hexagon-core.xml
similarity index 100%
rename from gdb-xml/hexagon-core.xml
rename to gdbstub/gdb-xml/hexagon-core.xml
diff --git a/gdb-xml/hexagon-hvx.xml b/gdbstub/gdb-xml/hexagon-hvx.xml
similarity index 100%
rename from gdb-xml/hexagon-hvx.xml
rename to gdbstub/gdb-xml/hexagon-hvx.xml
diff --git a/gdb-xml/i386-32bit-linux.xml b/gdbstub/gdb-xml/i386-32bit-linux.xml
similarity index 100%
rename from gdb-xml/i386-32bit-linux.xml
rename to gdbstub/gdb-xml/i386-32bit-linux.xml
diff --git a/gdb-xml/i386-32bit.xml b/gdbstub/gdb-xml/i386-32bit.xml
similarity index 100%
rename from gdb-xml/i386-32bit.xml
rename to gdbstub/gdb-xml/i386-32bit.xml
diff --git a/gdb-xml/i386-64bit-apx.xml b/gdbstub/gdb-xml/i386-64bit-apx.xml
similarity index 100%
rename from gdb-xml/i386-64bit-apx.xml
rename to gdbstub/gdb-xml/i386-64bit-apx.xml
diff --git a/gdb-xml/i386-64bit-linux.xml b/gdbstub/gdb-xml/i386-64bit-linux.xml
similarity index 100%
rename from gdb-xml/i386-64bit-linux.xml
rename to gdbstub/gdb-xml/i386-64bit-linux.xml
diff --git a/gdb-xml/i386-64bit.xml b/gdbstub/gdb-xml/i386-64bit.xml
similarity index 100%
rename from gdb-xml/i386-64bit.xml
rename to gdbstub/gdb-xml/i386-64bit.xml
diff --git a/gdb-xml/loongarch-base32.xml b/gdbstub/gdb-xml/loongarch-base32.xml
similarity index 100%
rename from gdb-xml/loongarch-base32.xml
rename to gdbstub/gdb-xml/loongarch-base32.xml
diff --git a/gdb-xml/loongarch-base64.xml b/gdbstub/gdb-xml/loongarch-base64.xml
similarity index 100%
rename from gdb-xml/loongarch-base64.xml
rename to gdbstub/gdb-xml/loongarch-base64.xml
diff --git a/gdb-xml/loongarch-fpu.xml b/gdbstub/gdb-xml/loongarch-fpu.xml
similarity index 100%
rename from gdb-xml/loongarch-fpu.xml
rename to gdbstub/gdb-xml/loongarch-fpu.xml
diff --git a/gdb-xml/loongarch-lasx.xml b/gdbstub/gdb-xml/loongarch-lasx.xml
similarity index 100%
rename from gdb-xml/loongarch-lasx.xml
rename to gdbstub/gdb-xml/loongarch-lasx.xml
diff --git a/gdb-xml/loongarch-lsx.xml b/gdbstub/gdb-xml/loongarch-lsx.xml
similarity index 100%
rename from gdb-xml/loongarch-lsx.xml
rename to gdbstub/gdb-xml/loongarch-lsx.xml
diff --git a/gdb-xml/m68k-core.xml b/gdbstub/gdb-xml/m68k-core.xml
similarity index 100%
rename from gdb-xml/m68k-core.xml
rename to gdbstub/gdb-xml/m68k-core.xml
diff --git a/gdb-xml/m68k-fp.xml b/gdbstub/gdb-xml/m68k-fp.xml
similarity index 100%
rename from gdb-xml/m68k-fp.xml
rename to gdbstub/gdb-xml/m68k-fp.xml
diff --git a/gdb-xml/microblaze-core.xml b/gdbstub/gdb-xml/microblaze-core.xml
similarity index 100%
rename from gdb-xml/microblaze-core.xml
rename to gdbstub/gdb-xml/microblaze-core.xml
diff --git a/gdb-xml/microblaze-stack-protect.xml b/gdbstub/gdb-xml/microblaze-stack-protect.xml
similarity index 100%
rename from gdb-xml/microblaze-stack-protect.xml
rename to gdbstub/gdb-xml/microblaze-stack-protect.xml
diff --git a/gdb-xml/or1k-core.xml b/gdbstub/gdb-xml/or1k-core.xml
similarity index 100%
rename from gdb-xml/or1k-core.xml
rename to gdbstub/gdb-xml/or1k-core.xml
diff --git a/gdb-xml/power-altivec.xml b/gdbstub/gdb-xml/power-altivec.xml
similarity index 100%
rename from gdb-xml/power-altivec.xml
rename to gdbstub/gdb-xml/power-altivec.xml
diff --git a/gdb-xml/power-core.xml b/gdbstub/gdb-xml/power-core.xml
similarity index 100%
rename from gdb-xml/power-core.xml
rename to gdbstub/gdb-xml/power-core.xml
diff --git a/gdb-xml/power-fpu.xml b/gdbstub/gdb-xml/power-fpu.xml
similarity index 100%
rename from gdb-xml/power-fpu.xml
rename to gdbstub/gdb-xml/power-fpu.xml
diff --git a/gdb-xml/power-spe.xml b/gdbstub/gdb-xml/power-spe.xml
similarity index 100%
rename from gdb-xml/power-spe.xml
rename to gdbstub/gdb-xml/power-spe.xml
diff --git a/gdb-xml/power-vsx.xml b/gdbstub/gdb-xml/power-vsx.xml
similarity index 100%
rename from gdb-xml/power-vsx.xml
rename to gdbstub/gdb-xml/power-vsx.xml
diff --git a/gdb-xml/power64-core.xml b/gdbstub/gdb-xml/power64-core.xml
similarity index 100%
rename from gdb-xml/power64-core.xml
rename to gdbstub/gdb-xml/power64-core.xml
diff --git a/gdb-xml/riscv-32bit-cpu.xml b/gdbstub/gdb-xml/riscv-32bit-cpu.xml
similarity index 100%
rename from gdb-xml/riscv-32bit-cpu.xml
rename to gdbstub/gdb-xml/riscv-32bit-cpu.xml
diff --git a/gdb-xml/riscv-32bit-fpu.xml b/gdbstub/gdb-xml/riscv-32bit-fpu.xml
similarity index 100%
rename from gdb-xml/riscv-32bit-fpu.xml
rename to gdbstub/gdb-xml/riscv-32bit-fpu.xml
diff --git a/gdb-xml/riscv-32bit-virtual.xml b/gdbstub/gdb-xml/riscv-32bit-virtual.xml
similarity index 100%
rename from gdb-xml/riscv-32bit-virtual.xml
rename to gdbstub/gdb-xml/riscv-32bit-virtual.xml
diff --git a/gdb-xml/riscv-64bit-cpu.xml b/gdbstub/gdb-xml/riscv-64bit-cpu.xml
similarity index 100%
rename from gdb-xml/riscv-64bit-cpu.xml
rename to gdbstub/gdb-xml/riscv-64bit-cpu.xml
diff --git a/gdb-xml/riscv-64bit-fpu.xml b/gdbstub/gdb-xml/riscv-64bit-fpu.xml
similarity index 100%
rename from gdb-xml/riscv-64bit-fpu.xml
rename to gdbstub/gdb-xml/riscv-64bit-fpu.xml
diff --git a/gdb-xml/riscv-64bit-virtual.xml b/gdbstub/gdb-xml/riscv-64bit-virtual.xml
similarity index 100%
rename from gdb-xml/riscv-64bit-virtual.xml
rename to gdbstub/gdb-xml/riscv-64bit-virtual.xml
diff --git a/gdb-xml/rx-core.xml b/gdbstub/gdb-xml/rx-core.xml
similarity index 100%
rename from gdb-xml/rx-core.xml
rename to gdbstub/gdb-xml/rx-core.xml
diff --git a/gdb-xml/s390-acr.xml b/gdbstub/gdb-xml/s390-acr.xml
similarity index 100%
rename from gdb-xml/s390-acr.xml
rename to gdbstub/gdb-xml/s390-acr.xml
diff --git a/gdb-xml/s390-cr.xml b/gdbstub/gdb-xml/s390-cr.xml
similarity index 100%
rename from gdb-xml/s390-cr.xml
rename to gdbstub/gdb-xml/s390-cr.xml
diff --git a/gdb-xml/s390-fpr.xml b/gdbstub/gdb-xml/s390-fpr.xml
similarity index 100%
rename from gdb-xml/s390-fpr.xml
rename to gdbstub/gdb-xml/s390-fpr.xml
diff --git a/gdb-xml/s390-gs.xml b/gdbstub/gdb-xml/s390-gs.xml
similarity index 100%
rename from gdb-xml/s390-gs.xml
rename to gdbstub/gdb-xml/s390-gs.xml
diff --git a/gdb-xml/s390-virt-kvm.xml b/gdbstub/gdb-xml/s390-virt-kvm.xml
similarity index 100%
rename from gdb-xml/s390-virt-kvm.xml
rename to gdbstub/gdb-xml/s390-virt-kvm.xml
diff --git a/gdb-xml/s390-virt.xml b/gdbstub/gdb-xml/s390-virt.xml
similarity index 100%
rename from gdb-xml/s390-virt.xml
rename to gdbstub/gdb-xml/s390-virt.xml
diff --git a/gdb-xml/s390-vx.xml b/gdbstub/gdb-xml/s390-vx.xml
similarity index 100%
rename from gdb-xml/s390-vx.xml
rename to gdbstub/gdb-xml/s390-vx.xml
diff --git a/gdb-xml/s390x-core64.xml b/gdbstub/gdb-xml/s390x-core64.xml
similarity index 100%
rename from gdb-xml/s390x-core64.xml
rename to gdbstub/gdb-xml/s390x-core64.xml
diff --git a/gdb-xml/sparc32-cp0.xml b/gdbstub/gdb-xml/sparc32-cp0.xml
similarity index 100%
rename from gdb-xml/sparc32-cp0.xml
rename to gdbstub/gdb-xml/sparc32-cp0.xml
diff --git a/gdb-xml/sparc32-cpu.xml b/gdbstub/gdb-xml/sparc32-cpu.xml
similarity index 100%
rename from gdb-xml/sparc32-cpu.xml
rename to gdbstub/gdb-xml/sparc32-cpu.xml
diff --git a/gdb-xml/sparc32-fpu.xml b/gdbstub/gdb-xml/sparc32-fpu.xml
similarity index 100%
rename from gdb-xml/sparc32-fpu.xml
rename to gdbstub/gdb-xml/sparc32-fpu.xml
diff --git a/gdb-xml/sparc64-cp0.xml b/gdbstub/gdb-xml/sparc64-cp0.xml
similarity index 100%
rename from gdb-xml/sparc64-cp0.xml
rename to gdbstub/gdb-xml/sparc64-cp0.xml
diff --git a/gdb-xml/sparc64-cpu.xml b/gdbstub/gdb-xml/sparc64-cpu.xml
similarity index 100%
rename from gdb-xml/sparc64-cpu.xml
rename to gdbstub/gdb-xml/sparc64-cpu.xml
diff --git a/gdb-xml/sparc64-fpu.xml b/gdbstub/gdb-xml/sparc64-fpu.xml
similarity index 100%
rename from gdb-xml/sparc64-fpu.xml
rename to gdbstub/gdb-xml/sparc64-fpu.xml
--
2.52.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
2026-02-27 10:43 [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2026-02-27 10:43 ` [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/ Philippe Mathieu-Daudé
@ 2026-02-27 10:43 ` Philippe Mathieu-Daudé
2026-02-27 11:07 ` Manos Pitsidianakis
2026-03-01 14:05 ` Chao Liu
2026-02-27 15:01 ` [PATCH v4 0/4] " Alex Bennée
4 siblings, 2 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-02-27 10:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Pierrick Bouvier, Alex Bennée
gdb_static_features[] only contains strings, nothing target-specific.
Instead of generating one file per target, generate a single file
with a single gdb_static_features[] array.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
meson.build | 14 --------------
stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0
gdbstub/meson.build | 21 +++++++++++++++++++++
stubs/meson.build | 2 --
4 files changed, 21 insertions(+), 16 deletions(-)
rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
diff --git a/meson.build b/meson.build
index 56a746fed00..875a0bb1999 100644
--- a/meson.build
+++ b/meson.build
@@ -4221,7 +4221,6 @@ if have_rust
endif
-feature_to_c = find_program('scripts/feature_to_c.py')
rust_root_crate = find_program('scripts/rust/rust_root_crate.sh')
if host_os == 'darwin'
@@ -4301,19 +4300,6 @@ foreach target : target_dirs
endif
endif
- if 'TARGET_XML_FILES' in config_target
- gdbstub_xml_files = []
- foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
- gdbstub_xml_files += 'gdbstub/gdb-xml/' + gdbstub_xml
- endforeach
- gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
- output: target + '-gdbstub-xml.c',
- input: files(gdbstub_xml_files),
- command: [feature_to_c, '@INPUT@'],
- capture: true)
- arch_srcs += gdbstub_xml
- endif
-
if target in config_target_info
arch_srcs += config_target_info[target]
else
diff --git a/stubs/gdbstub.c b/gdbstub/gdb-xml-stub.c
similarity index 100%
rename from stubs/gdbstub.c
rename to gdbstub/gdb-xml-stub.c
diff --git a/gdbstub/meson.build b/gdbstub/meson.build
index 15c666f5752..a25a5ae9fbf 100644
--- a/gdbstub/meson.build
+++ b/gdbstub/meson.build
@@ -4,6 +4,27 @@
# types such as hwaddr.
#
+gdbstub_xml_files = []
+foreach target : target_dirs
+ config_target = config_target_mak[target]
+ if 'TARGET_XML_FILES' in config_target
+ foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
+ gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
+ endforeach
+ endif
+endforeach
+if gdbstub_xml_files.length() > 0
+ feature_to_c = find_program('../scripts/feature_to_c.py')
+ gdbstub_xml = custom_target('gdbstub-xml.c',
+ output: 'gdbstub-xml.c',
+ input: files(gdbstub_xml_files),
+ command: [feature_to_c, '@INPUT@'],
+ capture: true)
+else
+ gdbstub_xml = files('gdb-xml-stub.c')
+endif
+common_ss.add(gdbstub_xml)
+
# We build two versions of gdbstub, one for each mode
user_ss.add(files(
'gdbstub.c',
diff --git a/stubs/meson.build b/stubs/meson.build
index 8a07059500d..1e0f6f47377 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -89,8 +89,6 @@ if have_system
endif
if have_system or have_user
- stub_ss.add(files('gdbstub.c'))
-
# Also included in have_system for --disable-tcg builds
stub_ss.add(files('replay.c'))
--
2.52.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds
2026-02-27 10:43 ` [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds Philippe Mathieu-Daudé
@ 2026-02-27 10:57 ` Manos Pitsidianakis
2026-02-27 13:00 ` Alex Bennée
1 sibling, 0 replies; 16+ messages in thread
From: Manos Pitsidianakis @ 2026-02-27 10:57 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
On Fri, Feb 27, 2026 at 12:43 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> Limited builds (tools, documentation) don't need to generate /
> build gdbstub files. Only process the gdbstub/ folder when
> user / system emulation / acceleration is built.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meson.build b/meson.build
> index 3cd1d8dbc66..60415df69a1 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -3724,7 +3724,6 @@ subdir('qom')
> subdir('authz')
> subdir('crypto')
> subdir('ui')
> -subdir('gdbstub')
> if have_system
> subdir('hw')
> else
> @@ -3767,6 +3766,7 @@ if have_system or have_user
> output: 'decode-@BASENAME@.c.inc',
> arguments: ['@INPUT@', '@EXTRA_ARGS@', '-o', '@OUTPUT@'])
> subdir('libdecnumber')
> + subdir('gdbstub')
> subdir('target')
> endif
>
> --
> 2.52.0
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/
2026-02-27 10:43 ` [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/ Philippe Mathieu-Daudé
@ 2026-02-27 10:58 ` Manos Pitsidianakis
2026-02-27 13:00 ` Alex Bennée
1 sibling, 0 replies; 16+ messages in thread
From: Manos Pitsidianakis @ 2026-02-27 10:58 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
On Fri, Feb 27, 2026 at 12:44 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> gdb-xml/ files are only consumed by gdbstub API.
> No need for a top-level entry, move them to gdbstub/.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> MAINTAINERS | 19 +++++++++----------
> docs/devel/codebase.rst | 2 --
> meson.build | 2 +-
> {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 | 0
> {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 | 0
> .../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
> 63 files changed, 10 insertions(+), 13 deletions(-)
> 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 (100%)
> 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 (100%)
> 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%)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 606b16762cf..fd316018b68 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -106,7 +106,7 @@ M: Thomas Huth <thuth@redhat.com>
> S: Supported
> F: configs/devices/s390x-softmmu/default.mak
> F: configs/targets/s390x-softmmu.mak
> -F: gdb-xml/s390*.xml
> +F: gdbstub/gdb-xml/s390*.xml
> F: hw/char/sclp*.[hc]
> F: hw/char/terminal3270.c
> F: hw/intc/s390_flic.c
> @@ -214,8 +214,8 @@ F: include/hw/cpu/a*mpcore.h
> F: docs/system/target-arm.rst
> F: docs/system/arm/cpu-features.rst
> F: docs/system/arm/emulation.rst
> -F: gdb-xml/arm*.xml
> -F: gdb-xml/aarch64*.xml
> +F: gdbstub/gdb-xml/arm*.xml
> +F: gdbstub/gdb-xml/aarch64*.xml
>
> ARM SMMU
> M: Eric Auger <eric.auger@redhat.com>
> @@ -230,7 +230,7 @@ AVR TCG CPUs
> M: Michael Rolnik <mrolnik@gmail.com>
> S: Maintained
> F: docs/system/target-avr.rst
> -F: gdb-xml/avr-cpu.xml
> +F: gdbstub/gdb-xml/avr-cpu.xml
> F: target/avr/
> F: tests/functional/avr/
>
> @@ -245,7 +245,7 @@ F: tests/tcg/hexagon/
> F: disas/hexagon.c
> F: configs/targets/hexagon-linux-user/default.mak
> F: docker/dockerfiles/debian-hexagon-cross.docker
> -F: gdb-xml/hexagon*.xml
> +F: gdbstub/gdb-xml/hexagon*.xml
> T: git https://github.com/quic/qemu.git hex-next
>
> Hexagon idef-parser
> @@ -304,7 +304,7 @@ M: Stafford Horne <shorne@gmail.com>
> S: Odd Fixes
> F: docs/system/or1k/cpu-features.rst
> F: target/or1k/
> -F: gdb-xml/or1k-core.xml
> +F: gdbstub/gdb-xml/or1k-core.xml
> F: hw/or1k/
> F: include/hw/or1k/
> F: tests/functional/or1k/meson.build
> @@ -403,7 +403,7 @@ M: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> M: Artyom Tarasenko <atar4qemu@gmail.com>
> S: Maintained
> F: target/sparc/
> -F: gdb-xml/sparc*.xml
> +F: gdbstub/gdb-xml/sparc*.xml
> F: hw/sparc/
> F: hw/sparc64/
> F: include/hw/sparc/sparc64.h
> @@ -491,7 +491,7 @@ S: Supported
> F: target/s390x/kvm/
> F: target/s390x/machine.c
> F: target/s390x/sigp.c
> -F: gdb-xml/s390*.xml
> +F: gdbstub/gdb-xml/s390*.xml
> T: git https://github.com/borntraeger/qemu.git s390-next
> L: qemu-s390x@nongnu.org
>
> @@ -1348,7 +1348,7 @@ F: include/hw/intc/loongson_ipi_common.h
> F: hw/intc/loongarch_*.c
> F: hw/intc/loongson_ipi_common.c
> F: hw/rtc/ls7a_rtc.c
> -F: gdb-xml/loongarch*.xml
> +F: gdbstub/gdb-xml/loongarch*.xml
>
> M68K Machines
> -------------
> @@ -3299,7 +3299,6 @@ F: docs/system/gdb.rst
> F: gdbstub/*
> F: include/exec/gdbstub.h
> F: include/gdbstub/*
> -F: gdb-xml/
> F: tests/tcg/multiarch/gdbstub/*
> F: scripts/feature_to_c.py
> F: scripts/probe-gdb-support.py
> diff --git a/docs/devel/codebase.rst b/docs/devel/codebase.rst
> index 69d88271178..f09307b8971 100644
> --- a/docs/devel/codebase.rst
> +++ b/docs/devel/codebase.rst
> @@ -88,8 +88,6 @@ yet, so sometimes the source code is all you have.
> `VirtFS <https://www.linux-kvm.org/page/VirtFS>`_ support.
> * `gdbstub <https://gitlab.com/qemu-project/qemu/-/tree/master/gdbstub>`_:
> `GDB <GDB usage>` support.
> -* `gdb-xml <https://gitlab.com/qemu-project/qemu/-/tree/master/gdb-xml>`_:
> - Set of XML files describing architectures and used by `gdbstub <GDB usage>`.
> * `host <https://gitlab.com/qemu-project/qemu/-/tree/master/host>`_:
> Various architecture specific header files (crypto, atomic, memory
> operations).
> diff --git a/meson.build b/meson.build
> index 42f9cfb5512..56a746fed00 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -4304,7 +4304,7 @@ foreach target : target_dirs
> if 'TARGET_XML_FILES' in config_target
> gdbstub_xml_files = []
> foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
> - gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
> + gdbstub_xml_files += 'gdbstub/gdb-xml/' + gdbstub_xml
> endforeach
> gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
> output: target + '-gdbstub-xml.c',
> diff --git a/gdb-xml/aarch64-core.xml b/gdbstub/gdb-xml/aarch64-core.xml
> similarity index 100%
> rename from gdb-xml/aarch64-core.xml
> rename to gdbstub/gdb-xml/aarch64-core.xml
> diff --git a/gdb-xml/aarch64-fpu.xml b/gdbstub/gdb-xml/aarch64-fpu.xml
> similarity index 100%
> rename from gdb-xml/aarch64-fpu.xml
> rename to gdbstub/gdb-xml/aarch64-fpu.xml
> diff --git a/gdb-xml/aarch64-mte.xml b/gdbstub/gdb-xml/aarch64-mte.xml
> similarity index 100%
> rename from gdb-xml/aarch64-mte.xml
> rename to gdbstub/gdb-xml/aarch64-mte.xml
> diff --git a/gdb-xml/aarch64-pauth.xml b/gdbstub/gdb-xml/aarch64-pauth.xml
> similarity index 100%
> rename from gdb-xml/aarch64-pauth.xml
> rename to gdbstub/gdb-xml/aarch64-pauth.xml
> diff --git a/gdb-xml/aarch64-sme2.xml b/gdbstub/gdb-xml/aarch64-sme2.xml
> similarity index 100%
> rename from gdb-xml/aarch64-sme2.xml
> rename to gdbstub/gdb-xml/aarch64-sme2.xml
> diff --git a/gdb-xml/alpha-core.xml b/gdbstub/gdb-xml/alpha-core.xml
> similarity index 100%
> rename from gdb-xml/alpha-core.xml
> rename to gdbstub/gdb-xml/alpha-core.xml
> diff --git a/gdb-xml/arm-core.xml b/gdbstub/gdb-xml/arm-core.xml
> similarity index 100%
> rename from gdb-xml/arm-core.xml
> rename to gdbstub/gdb-xml/arm-core.xml
> diff --git a/gdb-xml/arm-m-profile-mve.xml b/gdbstub/gdb-xml/arm-m-profile-mve.xml
> similarity index 100%
> rename from gdb-xml/arm-m-profile-mve.xml
> rename to gdbstub/gdb-xml/arm-m-profile-mve.xml
> diff --git a/gdb-xml/arm-m-profile.xml b/gdbstub/gdb-xml/arm-m-profile.xml
> similarity index 100%
> rename from gdb-xml/arm-m-profile.xml
> rename to gdbstub/gdb-xml/arm-m-profile.xml
> diff --git a/gdb-xml/arm-neon.xml b/gdbstub/gdb-xml/arm-neon.xml
> similarity index 100%
> rename from gdb-xml/arm-neon.xml
> rename to gdbstub/gdb-xml/arm-neon.xml
> diff --git a/gdb-xml/arm-vfp-sysregs.xml b/gdbstub/gdb-xml/arm-vfp-sysregs.xml
> similarity index 100%
> rename from gdb-xml/arm-vfp-sysregs.xml
> rename to gdbstub/gdb-xml/arm-vfp-sysregs.xml
> diff --git a/gdb-xml/arm-vfp.xml b/gdbstub/gdb-xml/arm-vfp.xml
> similarity index 100%
> rename from gdb-xml/arm-vfp.xml
> rename to gdbstub/gdb-xml/arm-vfp.xml
> diff --git a/gdb-xml/arm-vfp3.xml b/gdbstub/gdb-xml/arm-vfp3.xml
> similarity index 100%
> rename from gdb-xml/arm-vfp3.xml
> rename to gdbstub/gdb-xml/arm-vfp3.xml
> diff --git a/gdb-xml/avr-cpu.xml b/gdbstub/gdb-xml/avr-cpu.xml
> similarity index 100%
> rename from gdb-xml/avr-cpu.xml
> rename to gdbstub/gdb-xml/avr-cpu.xml
> diff --git a/gdb-xml/cf-core.xml b/gdbstub/gdb-xml/cf-core.xml
> similarity index 100%
> rename from gdb-xml/cf-core.xml
> rename to gdbstub/gdb-xml/cf-core.xml
> diff --git a/gdb-xml/cf-fp.xml b/gdbstub/gdb-xml/cf-fp.xml
> similarity index 100%
> rename from gdb-xml/cf-fp.xml
> rename to gdbstub/gdb-xml/cf-fp.xml
> diff --git a/gdb-xml/hexagon-core.xml b/gdbstub/gdb-xml/hexagon-core.xml
> similarity index 100%
> rename from gdb-xml/hexagon-core.xml
> rename to gdbstub/gdb-xml/hexagon-core.xml
> diff --git a/gdb-xml/hexagon-hvx.xml b/gdbstub/gdb-xml/hexagon-hvx.xml
> similarity index 100%
> rename from gdb-xml/hexagon-hvx.xml
> rename to gdbstub/gdb-xml/hexagon-hvx.xml
> diff --git a/gdb-xml/i386-32bit-linux.xml b/gdbstub/gdb-xml/i386-32bit-linux.xml
> similarity index 100%
> rename from gdb-xml/i386-32bit-linux.xml
> rename to gdbstub/gdb-xml/i386-32bit-linux.xml
> diff --git a/gdb-xml/i386-32bit.xml b/gdbstub/gdb-xml/i386-32bit.xml
> similarity index 100%
> rename from gdb-xml/i386-32bit.xml
> rename to gdbstub/gdb-xml/i386-32bit.xml
> diff --git a/gdb-xml/i386-64bit-apx.xml b/gdbstub/gdb-xml/i386-64bit-apx.xml
> similarity index 100%
> rename from gdb-xml/i386-64bit-apx.xml
> rename to gdbstub/gdb-xml/i386-64bit-apx.xml
> diff --git a/gdb-xml/i386-64bit-linux.xml b/gdbstub/gdb-xml/i386-64bit-linux.xml
> similarity index 100%
> rename from gdb-xml/i386-64bit-linux.xml
> rename to gdbstub/gdb-xml/i386-64bit-linux.xml
> diff --git a/gdb-xml/i386-64bit.xml b/gdbstub/gdb-xml/i386-64bit.xml
> similarity index 100%
> rename from gdb-xml/i386-64bit.xml
> rename to gdbstub/gdb-xml/i386-64bit.xml
> diff --git a/gdb-xml/loongarch-base32.xml b/gdbstub/gdb-xml/loongarch-base32.xml
> similarity index 100%
> rename from gdb-xml/loongarch-base32.xml
> rename to gdbstub/gdb-xml/loongarch-base32.xml
> diff --git a/gdb-xml/loongarch-base64.xml b/gdbstub/gdb-xml/loongarch-base64.xml
> similarity index 100%
> rename from gdb-xml/loongarch-base64.xml
> rename to gdbstub/gdb-xml/loongarch-base64.xml
> diff --git a/gdb-xml/loongarch-fpu.xml b/gdbstub/gdb-xml/loongarch-fpu.xml
> similarity index 100%
> rename from gdb-xml/loongarch-fpu.xml
> rename to gdbstub/gdb-xml/loongarch-fpu.xml
> diff --git a/gdb-xml/loongarch-lasx.xml b/gdbstub/gdb-xml/loongarch-lasx.xml
> similarity index 100%
> rename from gdb-xml/loongarch-lasx.xml
> rename to gdbstub/gdb-xml/loongarch-lasx.xml
> diff --git a/gdb-xml/loongarch-lsx.xml b/gdbstub/gdb-xml/loongarch-lsx.xml
> similarity index 100%
> rename from gdb-xml/loongarch-lsx.xml
> rename to gdbstub/gdb-xml/loongarch-lsx.xml
> diff --git a/gdb-xml/m68k-core.xml b/gdbstub/gdb-xml/m68k-core.xml
> similarity index 100%
> rename from gdb-xml/m68k-core.xml
> rename to gdbstub/gdb-xml/m68k-core.xml
> diff --git a/gdb-xml/m68k-fp.xml b/gdbstub/gdb-xml/m68k-fp.xml
> similarity index 100%
> rename from gdb-xml/m68k-fp.xml
> rename to gdbstub/gdb-xml/m68k-fp.xml
> diff --git a/gdb-xml/microblaze-core.xml b/gdbstub/gdb-xml/microblaze-core.xml
> similarity index 100%
> rename from gdb-xml/microblaze-core.xml
> rename to gdbstub/gdb-xml/microblaze-core.xml
> diff --git a/gdb-xml/microblaze-stack-protect.xml b/gdbstub/gdb-xml/microblaze-stack-protect.xml
> similarity index 100%
> rename from gdb-xml/microblaze-stack-protect.xml
> rename to gdbstub/gdb-xml/microblaze-stack-protect.xml
> diff --git a/gdb-xml/or1k-core.xml b/gdbstub/gdb-xml/or1k-core.xml
> similarity index 100%
> rename from gdb-xml/or1k-core.xml
> rename to gdbstub/gdb-xml/or1k-core.xml
> diff --git a/gdb-xml/power-altivec.xml b/gdbstub/gdb-xml/power-altivec.xml
> similarity index 100%
> rename from gdb-xml/power-altivec.xml
> rename to gdbstub/gdb-xml/power-altivec.xml
> diff --git a/gdb-xml/power-core.xml b/gdbstub/gdb-xml/power-core.xml
> similarity index 100%
> rename from gdb-xml/power-core.xml
> rename to gdbstub/gdb-xml/power-core.xml
> diff --git a/gdb-xml/power-fpu.xml b/gdbstub/gdb-xml/power-fpu.xml
> similarity index 100%
> rename from gdb-xml/power-fpu.xml
> rename to gdbstub/gdb-xml/power-fpu.xml
> diff --git a/gdb-xml/power-spe.xml b/gdbstub/gdb-xml/power-spe.xml
> similarity index 100%
> rename from gdb-xml/power-spe.xml
> rename to gdbstub/gdb-xml/power-spe.xml
> diff --git a/gdb-xml/power-vsx.xml b/gdbstub/gdb-xml/power-vsx.xml
> similarity index 100%
> rename from gdb-xml/power-vsx.xml
> rename to gdbstub/gdb-xml/power-vsx.xml
> diff --git a/gdb-xml/power64-core.xml b/gdbstub/gdb-xml/power64-core.xml
> similarity index 100%
> rename from gdb-xml/power64-core.xml
> rename to gdbstub/gdb-xml/power64-core.xml
> diff --git a/gdb-xml/riscv-32bit-cpu.xml b/gdbstub/gdb-xml/riscv-32bit-cpu.xml
> similarity index 100%
> rename from gdb-xml/riscv-32bit-cpu.xml
> rename to gdbstub/gdb-xml/riscv-32bit-cpu.xml
> diff --git a/gdb-xml/riscv-32bit-fpu.xml b/gdbstub/gdb-xml/riscv-32bit-fpu.xml
> similarity index 100%
> rename from gdb-xml/riscv-32bit-fpu.xml
> rename to gdbstub/gdb-xml/riscv-32bit-fpu.xml
> diff --git a/gdb-xml/riscv-32bit-virtual.xml b/gdbstub/gdb-xml/riscv-32bit-virtual.xml
> similarity index 100%
> rename from gdb-xml/riscv-32bit-virtual.xml
> rename to gdbstub/gdb-xml/riscv-32bit-virtual.xml
> diff --git a/gdb-xml/riscv-64bit-cpu.xml b/gdbstub/gdb-xml/riscv-64bit-cpu.xml
> similarity index 100%
> rename from gdb-xml/riscv-64bit-cpu.xml
> rename to gdbstub/gdb-xml/riscv-64bit-cpu.xml
> diff --git a/gdb-xml/riscv-64bit-fpu.xml b/gdbstub/gdb-xml/riscv-64bit-fpu.xml
> similarity index 100%
> rename from gdb-xml/riscv-64bit-fpu.xml
> rename to gdbstub/gdb-xml/riscv-64bit-fpu.xml
> diff --git a/gdb-xml/riscv-64bit-virtual.xml b/gdbstub/gdb-xml/riscv-64bit-virtual.xml
> similarity index 100%
> rename from gdb-xml/riscv-64bit-virtual.xml
> rename to gdbstub/gdb-xml/riscv-64bit-virtual.xml
> diff --git a/gdb-xml/rx-core.xml b/gdbstub/gdb-xml/rx-core.xml
> similarity index 100%
> rename from gdb-xml/rx-core.xml
> rename to gdbstub/gdb-xml/rx-core.xml
> diff --git a/gdb-xml/s390-acr.xml b/gdbstub/gdb-xml/s390-acr.xml
> similarity index 100%
> rename from gdb-xml/s390-acr.xml
> rename to gdbstub/gdb-xml/s390-acr.xml
> diff --git a/gdb-xml/s390-cr.xml b/gdbstub/gdb-xml/s390-cr.xml
> similarity index 100%
> rename from gdb-xml/s390-cr.xml
> rename to gdbstub/gdb-xml/s390-cr.xml
> diff --git a/gdb-xml/s390-fpr.xml b/gdbstub/gdb-xml/s390-fpr.xml
> similarity index 100%
> rename from gdb-xml/s390-fpr.xml
> rename to gdbstub/gdb-xml/s390-fpr.xml
> diff --git a/gdb-xml/s390-gs.xml b/gdbstub/gdb-xml/s390-gs.xml
> similarity index 100%
> rename from gdb-xml/s390-gs.xml
> rename to gdbstub/gdb-xml/s390-gs.xml
> diff --git a/gdb-xml/s390-virt-kvm.xml b/gdbstub/gdb-xml/s390-virt-kvm.xml
> similarity index 100%
> rename from gdb-xml/s390-virt-kvm.xml
> rename to gdbstub/gdb-xml/s390-virt-kvm.xml
> diff --git a/gdb-xml/s390-virt.xml b/gdbstub/gdb-xml/s390-virt.xml
> similarity index 100%
> rename from gdb-xml/s390-virt.xml
> rename to gdbstub/gdb-xml/s390-virt.xml
> diff --git a/gdb-xml/s390-vx.xml b/gdbstub/gdb-xml/s390-vx.xml
> similarity index 100%
> rename from gdb-xml/s390-vx.xml
> rename to gdbstub/gdb-xml/s390-vx.xml
> diff --git a/gdb-xml/s390x-core64.xml b/gdbstub/gdb-xml/s390x-core64.xml
> similarity index 100%
> rename from gdb-xml/s390x-core64.xml
> rename to gdbstub/gdb-xml/s390x-core64.xml
> diff --git a/gdb-xml/sparc32-cp0.xml b/gdbstub/gdb-xml/sparc32-cp0.xml
> similarity index 100%
> rename from gdb-xml/sparc32-cp0.xml
> rename to gdbstub/gdb-xml/sparc32-cp0.xml
> diff --git a/gdb-xml/sparc32-cpu.xml b/gdbstub/gdb-xml/sparc32-cpu.xml
> similarity index 100%
> rename from gdb-xml/sparc32-cpu.xml
> rename to gdbstub/gdb-xml/sparc32-cpu.xml
> diff --git a/gdb-xml/sparc32-fpu.xml b/gdbstub/gdb-xml/sparc32-fpu.xml
> similarity index 100%
> rename from gdb-xml/sparc32-fpu.xml
> rename to gdbstub/gdb-xml/sparc32-fpu.xml
> diff --git a/gdb-xml/sparc64-cp0.xml b/gdbstub/gdb-xml/sparc64-cp0.xml
> similarity index 100%
> rename from gdb-xml/sparc64-cp0.xml
> rename to gdbstub/gdb-xml/sparc64-cp0.xml
> diff --git a/gdb-xml/sparc64-cpu.xml b/gdbstub/gdb-xml/sparc64-cpu.xml
> similarity index 100%
> rename from gdb-xml/sparc64-cpu.xml
> rename to gdbstub/gdb-xml/sparc64-cpu.xml
> diff --git a/gdb-xml/sparc64-fpu.xml b/gdbstub/gdb-xml/sparc64-fpu.xml
> similarity index 100%
> rename from gdb-xml/sparc64-fpu.xml
> rename to gdbstub/gdb-xml/sparc64-fpu.xml
> --
> 2.52.0
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
2026-02-27 10:43 ` [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES Philippe Mathieu-Daudé
@ 2026-02-27 11:00 ` Manos Pitsidianakis
2026-02-27 12:21 ` Warner Losh
2026-02-27 13:01 ` Alex Bennée
2 siblings, 0 replies; 16+ messages in thread
From: Manos Pitsidianakis @ 2026-02-27 11:00 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
On Fri, Feb 27, 2026 at 12:44 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> All GDB XML files are in the gdb-xml/ directory. No need to be
> so verbose in TARGET_XML_FILES, let meson prepend the directory.
>
> Except meson.build lines, this is a mechanical change done running:
>
> $ sed -i -e s,gdb-xml/,,g $(git grep -l gdb-xml configs/targets/)
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> 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/microblazeel-softmmu.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 | 6 +++++-
> 47 files changed, 51 insertions(+), 47 deletions(-)
>
> diff --git a/configs/targets/aarch64-bsd-user.mak b/configs/targets/aarch64-bsd-user.mak
> index 7f42e060477..3a839b301e4 100644
> --- a/configs/targets/aarch64-bsd-user.mak
> +++ b/configs/targets/aarch64-bsd-user.mak
> @@ -1,4 +1,4 @@
> TARGET_ARCH=aarch64
> TARGET_BASE_ARCH=arm
> -TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-sme2.xml
> +TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aarch64-sme2.xml
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/aarch64-linux-user.mak b/configs/targets/aarch64-linux-user.mak
> index bf328b3b80c..ddfacc092dd 100644
> --- a/configs/targets/aarch64-linux-user.mak
> +++ b/configs/targets/aarch64-linux-user.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=aarch64
> TARGET_BASE_ARCH=arm
> -TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-mte.xml gdb-xml/aarch64-sme2.xml
> +TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aarch64-mte.xml aarch64-sme2.xml
> TARGET_HAS_BFLT=y
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
> diff --git a/configs/targets/aarch64-softmmu.mak b/configs/targets/aarch64-softmmu.mak
> index d14bcfc4900..9a20187e2c1 100644
> --- a/configs/targets/aarch64-softmmu.mak
> +++ b/configs/targets/aarch64-softmmu.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=aarch64
> TARGET_BASE_ARCH=arm
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> -TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-sme2.xml
> +TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml aarch64-pauth.xml aarch64-sme2.xml
> # needed by boot.c
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/aarch64_be-linux-user.mak b/configs/targets/aarch64_be-linux-user.mak
> index 284430add7b..83209fa2ae5 100644
> --- a/configs/targets/aarch64_be-linux-user.mak
> +++ b/configs/targets/aarch64_be-linux-user.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=aarch64
> TARGET_BASE_ARCH=arm
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-mte.xml gdb-xml/aarch64-sme2.xml
> +TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml aarch64-mte.xml aarch64-sme2.xml
> TARGET_HAS_BFLT=y
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
> diff --git a/configs/targets/alpha-linux-user.mak b/configs/targets/alpha-linux-user.mak
> index 2f1312f0362..fbb9c680915 100644
> --- a/configs/targets/alpha-linux-user.mak
> +++ b/configs/targets/alpha-linux-user.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=alpha
> TARGET_SYSTBL_ABI=common
> TARGET_SYSTBL=syscall.tbl
> TARGET_LONG_BITS=64
> -TARGET_XML_FILES= gdb-xml/alpha-core.xml
> +TARGET_XML_FILES= alpha-core.xml
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/configs/targets/alpha-softmmu.mak b/configs/targets/alpha-softmmu.mak
> index 5c6af0eafc1..fb412d1b53f 100644
> --- a/configs/targets/alpha-softmmu.mak
> +++ b/configs/targets/alpha-softmmu.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=alpha
> TARGET_LONG_BITS=64
> -TARGET_XML_FILES= gdb-xml/alpha-core.xml
> +TARGET_XML_FILES= alpha-core.xml
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/configs/targets/arm-bsd-user.mak b/configs/targets/arm-bsd-user.mak
> index 472a4f9fb11..b520819e776 100644
> --- a/configs/targets/arm-bsd-user.mak
> +++ b/configs/targets/arm-bsd-user.mak
> @@ -1,3 +1,3 @@
> TARGET_ARCH=arm
> -TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
> +TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/arm-linux-user.mak b/configs/targets/arm-linux-user.mak
> index bf35ded7fea..3793782d067 100644
> --- a/configs/targets/arm-linux-user.mak
> +++ b/configs/targets/arm-linux-user.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=arm
> TARGET_SYSTBL_ABI=common,oabi
> TARGET_SYSTBL=syscall.tbl
> -TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
> +TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
> TARGET_HAS_BFLT=y
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
> diff --git a/configs/targets/arm-softmmu.mak b/configs/targets/arm-softmmu.mak
> index 6a5a8eda949..35af7da79f2 100644
> --- a/configs/targets/arm-softmmu.mak
> +++ b/configs/targets/arm-softmmu.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=arm
> -TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
> +TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
> # needed by boot.c
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/armeb-linux-user.mak b/configs/targets/armeb-linux-user.mak
> index 35fa4d91b3c..536bc95af71 100644
> --- a/configs/targets/armeb-linux-user.mak
> +++ b/configs/targets/armeb-linux-user.mak
> @@ -2,7 +2,7 @@ TARGET_ARCH=arm
> TARGET_SYSTBL_ABI=common,oabi
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml
> +TARGET_XML_FILES= arm-core.xml arm-vfp.xml arm-vfp3.xml arm-vfp-sysregs.xml arm-neon.xml arm-m-profile.xml arm-m-profile-mve.xml
> TARGET_HAS_BFLT=y
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
> diff --git a/configs/targets/avr-softmmu.mak b/configs/targets/avr-softmmu.mak
> index baf20fb7f2f..0a00f128749 100644
> --- a/configs/targets/avr-softmmu.mak
> +++ b/configs/targets/avr-softmmu.mak
> @@ -1,4 +1,4 @@
> TARGET_ARCH=avr
> -TARGET_XML_FILES= gdb-xml/avr-cpu.xml
> +TARGET_XML_FILES= avr-cpu.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/configs/targets/hexagon-linux-user.mak b/configs/targets/hexagon-linux-user.mak
> index 6763e2111d5..51fde5d60e6 100644
> --- a/configs/targets/hexagon-linux-user.mak
> +++ b/configs/targets/hexagon-linux-user.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=hexagon
> -TARGET_XML_FILES=gdb-xml/hexagon-core.xml gdb-xml/hexagon-hvx.xml
> +TARGET_XML_FILES=hexagon-core.xml hexagon-hvx.xml
> TARGET_SYSTBL=syscall.tbl
> TARGET_SYSTBL_ABI=common,32,hexagon,time32,stat64,rlimit,renameat
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/i386-bsd-user.mak b/configs/targets/i386-bsd-user.mak
> index 70e098da491..485f571cb6c 100644
> --- a/configs/targets/i386-bsd-user.mak
> +++ b/configs/targets/i386-bsd-user.mak
> @@ -1,3 +1,3 @@
> TARGET_ARCH=i386
> -TARGET_XML_FILES= gdb-xml/i386-32bit.xml
> +TARGET_XML_FILES= i386-32bit.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/i386-linux-user.mak b/configs/targets/i386-linux-user.mak
> index ea68a266fce..a3ea4c39c52 100644
> --- a/configs/targets/i386-linux-user.mak
> +++ b/configs/targets/i386-linux-user.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=i386
> TARGET_SYSTBL_ABI=i386
> TARGET_SYSTBL=syscall_32.tbl
> -TARGET_XML_FILES= gdb-xml/i386-32bit.xml gdb-xml/i386-32bit-linux.xml
> +TARGET_XML_FILES= i386-32bit.xml i386-32bit-linux.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/i386-softmmu.mak b/configs/targets/i386-softmmu.mak
> index 19ef4a6690d..38a8f85201f 100644
> --- a/configs/targets/i386-softmmu.mak
> +++ b/configs/targets/i386-softmmu.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=i386
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
> -TARGET_XML_FILES= gdb-xml/i386-32bit.xml
> +TARGET_XML_FILES= i386-32bit.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/configs/targets/loongarch64-linux-user.mak b/configs/targets/loongarch64-linux-user.mak
> index 4ea12794705..63b0bfc07b8 100644
> --- a/configs/targets/loongarch64-linux-user.mak
> +++ b/configs/targets/loongarch64-linux-user.mak
> @@ -1,7 +1,7 @@
> # Default configuration for loongarch64-linux-user
> TARGET_ARCH=loongarch64
> TARGET_BASE_ARCH=loongarch
> -TARGET_XML_FILES=gdb-xml/loongarch-base64.xml gdb-xml/loongarch-fpu.xml gdb-xml/loongarch-lsx.xml gdb-xml/loongarch-lasx.xml
> +TARGET_XML_FILES=loongarch-base64.xml loongarch-fpu.xml loongarch-lsx.xml loongarch-lasx.xml
> TARGET_SYSTBL=syscall.tbl
> TARGET_SYSTBL_ABI=common,64
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/loongarch64-softmmu.mak b/configs/targets/loongarch64-softmmu.mak
> index 38c0f68ddbc..476407f9413 100644
> --- a/configs/targets/loongarch64-softmmu.mak
> +++ b/configs/targets/loongarch64-softmmu.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=loongarch64
> TARGET_BASE_ARCH=loongarch
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> -TARGET_XML_FILES= gdb-xml/loongarch-base32.xml gdb-xml/loongarch-base64.xml gdb-xml/loongarch-fpu.xml gdb-xml/loongarch-lsx.xml gdb-xml/loongarch-lasx.xml
> +TARGET_XML_FILES= loongarch-base32.xml loongarch-base64.xml loongarch-fpu.xml loongarch-lsx.xml loongarch-lasx.xml
> # all boards require libfdt
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/m68k-linux-user.mak b/configs/targets/m68k-linux-user.mak
> index 2d9bae22707..b64f33e759a 100644
> --- a/configs/targets/m68k-linux-user.mak
> +++ b/configs/targets/m68k-linux-user.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=m68k
> TARGET_SYSTBL_ABI=common
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/cf-core.xml gdb-xml/cf-fp.xml gdb-xml/m68k-core.xml gdb-xml/m68k-fp.xml
> +TARGET_XML_FILES= cf-core.xml cf-fp.xml m68k-core.xml m68k-fp.xml
> TARGET_HAS_BFLT=y
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/m68k-softmmu.mak b/configs/targets/m68k-softmmu.mak
> index bacc52e96a9..0bc889f326e 100644
> --- a/configs/targets/m68k-softmmu.mak
> +++ b/configs/targets/m68k-softmmu.mak
> @@ -1,4 +1,4 @@
> TARGET_ARCH=m68k
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/cf-core.xml gdb-xml/cf-fp.xml gdb-xml/m68k-core.xml gdb-xml/m68k-fp.xml
> +TARGET_XML_FILES= cf-core.xml cf-fp.xml m68k-core.xml m68k-fp.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/microblaze-linux-user.mak b/configs/targets/microblaze-linux-user.mak
> index 37727797695..31150f980c8 100644
> --- a/configs/targets/microblaze-linux-user.mak
> +++ b/configs/targets/microblaze-linux-user.mak
> @@ -3,5 +3,5 @@ TARGET_SYSTBL_ABI=common
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> TARGET_HAS_BFLT=y
> -TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
> +TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/microblaze-softmmu.mak b/configs/targets/microblaze-softmmu.mak
> index cf635798c90..f2b6ab93fbe 100644
> --- a/configs/targets/microblaze-softmmu.mak
> +++ b/configs/targets/microblaze-softmmu.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=microblaze
> TARGET_BIG_ENDIAN=y
> # needed by boot.c
> TARGET_NEED_FDT=y
> -TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
> +TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/configs/targets/microblazeel-linux-user.mak b/configs/targets/microblazeel-linux-user.mak
> index a51a05488d3..5dcd4b5b183 100644
> --- a/configs/targets/microblazeel-linux-user.mak
> +++ b/configs/targets/microblazeel-linux-user.mak
> @@ -2,5 +2,5 @@ TARGET_ARCH=microblaze
> TARGET_SYSTBL_ABI=common
> TARGET_SYSTBL=syscall.tbl
> TARGET_HAS_BFLT=y
> -TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
> +TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/microblazeel-softmmu.mak b/configs/targets/microblazeel-softmmu.mak
> index 52feb957b48..56adbaa5ad4 100644
> --- a/configs/targets/microblazeel-softmmu.mak
> +++ b/configs/targets/microblazeel-softmmu.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=microblaze
> # needed by boot.c
> TARGET_NEED_FDT=y
> -TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml
> +TARGET_XML_FILES=microblaze-core.xml microblaze-stack-protect.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/configs/targets/or1k-linux-user.mak b/configs/targets/or1k-linux-user.mak
> index 9f8c178ef10..ecb95253680 100644
> --- a/configs/targets/or1k-linux-user.mak
> +++ b/configs/targets/or1k-linux-user.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=or1k
> TARGET_BIG_ENDIAN=y
> TARGET_SYSTBL_ABI=common,32,or1k,time32,stat64,rlimit,renameat
> TARGET_SYSTBL=syscall.tbl
> -TARGET_XML_FILES= gdb-xml/or1k-core.xml
> +TARGET_XML_FILES= or1k-core.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/or1k-softmmu.mak b/configs/targets/or1k-softmmu.mak
> index 24d89bc3e65..c3ca0a2c6ba 100644
> --- a/configs/targets/or1k-softmmu.mak
> +++ b/configs/targets/or1k-softmmu.mak
> @@ -2,7 +2,7 @@ TARGET_ARCH=or1k
> TARGET_BIG_ENDIAN=y
> # needed by boot.c and all boards
> TARGET_NEED_FDT=y
> -TARGET_XML_FILES= gdb-xml/or1k-core.xml
> +TARGET_XML_FILES= or1k-core.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/ppc-linux-user.mak b/configs/targets/ppc-linux-user.mak
> index 970d04a5ba1..5ddec598760 100644
> --- a/configs/targets/ppc-linux-user.mak
> +++ b/configs/targets/ppc-linux-user.mak
> @@ -2,5 +2,5 @@ TARGET_ARCH=ppc
> TARGET_SYSTBL_ABI=common,nospu,32
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/power-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml
> +TARGET_XML_FILES= power-core.xml power-fpu.xml power-altivec.xml power-spe.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/ppc-softmmu.mak b/configs/targets/ppc-softmmu.mak
> index 9bfa7df6c36..867898bd47c 100644
> --- a/configs/targets/ppc-softmmu.mak
> +++ b/configs/targets/ppc-softmmu.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=ppc
> TARGET_BIG_ENDIAN=y
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> -TARGET_XML_FILES= gdb-xml/power-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml
> +TARGET_XML_FILES= power-core.xml power-fpu.xml power-altivec.xml power-spe.xml
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/ppc64-linux-user.mak b/configs/targets/ppc64-linux-user.mak
> index 461f1c67d15..fcedce1b4e0 100644
> --- a/configs/targets/ppc64-linux-user.mak
> +++ b/configs/targets/ppc64-linux-user.mak
> @@ -4,5 +4,5 @@ TARGET_ABI_DIR=ppc
> TARGET_SYSTBL_ABI=common,nospu,64
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml
> +TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/ppc64-softmmu.mak b/configs/targets/ppc64-softmmu.mak
> index 74572864b36..10d7a2681e7 100644
> --- a/configs/targets/ppc64-softmmu.mak
> +++ b/configs/targets/ppc64-softmmu.mak
> @@ -2,7 +2,7 @@ TARGET_ARCH=ppc64
> TARGET_BASE_ARCH=ppc
> TARGET_BIG_ENDIAN=y
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> -TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml
> +TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml
> # all boards require libfdt
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/ppc64le-linux-user.mak b/configs/targets/ppc64le-linux-user.mak
> index cf9d8a400d9..b5a81b58868 100644
> --- a/configs/targets/ppc64le-linux-user.mak
> +++ b/configs/targets/ppc64le-linux-user.mak
> @@ -3,5 +3,5 @@ TARGET_BASE_ARCH=ppc
> TARGET_ABI_DIR=ppc
> TARGET_SYSTBL_ABI=common,nospu,64
> TARGET_SYSTBL=syscall.tbl
> -TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml
> +TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/riscv32-linux-user.mak b/configs/targets/riscv32-linux-user.mak
> index a0ef03c0c3f..f069ab9a0f9 100644
> --- a/configs/targets/riscv32-linux-user.mak
> +++ b/configs/targets/riscv32-linux-user.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=riscv32
> TARGET_BASE_ARCH=riscv
> TARGET_ABI_DIR=riscv
> -TARGET_XML_FILES= gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-32bit-virtual.xml
> +TARGET_XML_FILES= riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-32bit-virtual.xml
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
> TARGET_SYSTBL_ABI=32
> diff --git a/configs/targets/riscv32-softmmu.mak b/configs/targets/riscv32-softmmu.mak
> index 7476e596082..26080599be7 100644
> --- a/configs/targets/riscv32-softmmu.mak
> +++ b/configs/targets/riscv32-softmmu.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=riscv32
> TARGET_BASE_ARCH=riscv
> -TARGET_XML_FILES= gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-32bit-virtual.xml
> +TARGET_XML_FILES= riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-32bit-virtual.xml
> # needed by boot.c
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/riscv64-bsd-user.mak b/configs/targets/riscv64-bsd-user.mak
> index c6348a79629..bc85d9ed04e 100644
> --- a/configs/targets/riscv64-bsd-user.mak
> +++ b/configs/targets/riscv64-bsd-user.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=riscv64
> TARGET_BASE_ARCH=riscv
> TARGET_ABI_DIR=riscv
> -TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml
> +TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-64bit-virtual.xml
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/riscv64-linux-user.mak b/configs/targets/riscv64-linux-user.mak
> index aac7568305d..bca08645124 100644
> --- a/configs/targets/riscv64-linux-user.mak
> +++ b/configs/targets/riscv64-linux-user.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=riscv64
> TARGET_BASE_ARCH=riscv
> TARGET_ABI_DIR=riscv
> -TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml
> +TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-64bit-virtual.xml
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
> TARGET_SYSTBL_ABI=64
> diff --git a/configs/targets/riscv64-softmmu.mak b/configs/targets/riscv64-softmmu.mak
> index f836f08c5b9..5059c550480 100644
> --- a/configs/targets/riscv64-softmmu.mak
> +++ b/configs/targets/riscv64-softmmu.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=riscv64
> TARGET_BASE_ARCH=riscv
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> -TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-virtual.xml
> +TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml riscv-64bit-virtual.xml riscv-32bit-cpu.xml riscv-32bit-virtual.xml
> # needed by boot.c
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/rx-softmmu.mak b/configs/targets/rx-softmmu.mak
> index 281a165873a..1959d1b4ccc 100644
> --- a/configs/targets/rx-softmmu.mak
> +++ b/configs/targets/rx-softmmu.mak
> @@ -1,5 +1,5 @@
> TARGET_ARCH=rx
> -TARGET_XML_FILES= gdb-xml/rx-core.xml
> +TARGET_XML_FILES= rx-core.xml
> # all boards require libfdt
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=32
> diff --git a/configs/targets/s390x-linux-user.mak b/configs/targets/s390x-linux-user.mak
> index e3723f5dc54..2dbcae0a6e2 100644
> --- a/configs/targets/s390x-linux-user.mak
> +++ b/configs/targets/s390x-linux-user.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=s390x
> TARGET_SYSTBL_ABI=common,64
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES= gdb-xml/s390x-core64.xml gdb-xml/s390-acr.xml gdb-xml/s390-fpr.xml gdb-xml/s390-vx.xml gdb-xml/s390-cr.xml gdb-xml/s390-virt.xml gdb-xml/s390-virt-kvm.xml gdb-xml/s390-gs.xml
> +TARGET_XML_FILES= s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml s390-virt-kvm.xml s390-gs.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/s390x-softmmu.mak b/configs/targets/s390x-softmmu.mak
> index 544657cfe2d..e273075f1a9 100644
> --- a/configs/targets/s390x-softmmu.mak
> +++ b/configs/targets/s390x-softmmu.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=s390x
> TARGET_BIG_ENDIAN=y
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> -TARGET_XML_FILES= gdb-xml/s390x-core64.xml gdb-xml/s390-acr.xml gdb-xml/s390-fpr.xml gdb-xml/s390-vx.xml gdb-xml/s390-cr.xml gdb-xml/s390-virt.xml gdb-xml/s390-virt-kvm.xml gdb-xml/s390-gs.xml
> +TARGET_XML_FILES= s390x-core64.xml s390-acr.xml s390-fpr.xml s390-vx.xml s390-cr.xml s390-virt.xml s390-virt-kvm.xml s390-gs.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/sparc-linux-user.mak b/configs/targets/sparc-linux-user.mak
> index 01446e28783..2b6f8077399 100644
> --- a/configs/targets/sparc-linux-user.mak
> +++ b/configs/targets/sparc-linux-user.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=sparc
> TARGET_SYSTBL_ABI=common,32
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES=gdb-xml/sparc32-cpu.xml gdb-xml/sparc32-fpu.xml gdb-xml/sparc32-cp0.xml
> +TARGET_XML_FILES=sparc32-cpu.xml sparc32-fpu.xml sparc32-cp0.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/sparc-softmmu.mak b/configs/targets/sparc-softmmu.mak
> index ed846735f41..126ce12abb0 100644
> --- a/configs/targets/sparc-softmmu.mak
> +++ b/configs/targets/sparc-softmmu.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=sparc
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES=gdb-xml/sparc32-cpu.xml gdb-xml/sparc32-fpu.xml gdb-xml/sparc32-cp0.xml
> +TARGET_XML_FILES=sparc32-cpu.xml sparc32-fpu.xml sparc32-cp0.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/sparc32plus-linux-user.mak b/configs/targets/sparc32plus-linux-user.mak
> index cf49c53ce44..a1d8530ecfd 100644
> --- a/configs/targets/sparc32plus-linux-user.mak
> +++ b/configs/targets/sparc32plus-linux-user.mak
> @@ -5,6 +5,6 @@ TARGET_ABI_DIR=sparc
> TARGET_SYSTBL_ABI=common,32
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES=gdb-xml/sparc64-cpu.xml gdb-xml/sparc64-fpu.xml gdb-xml/sparc64-cp0.xml
> +TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/sparc64-linux-user.mak b/configs/targets/sparc64-linux-user.mak
> index 81d18fcc85b..c48a03aeb9e 100644
> --- a/configs/targets/sparc64-linux-user.mak
> +++ b/configs/targets/sparc64-linux-user.mak
> @@ -4,6 +4,6 @@ TARGET_ABI_DIR=sparc
> TARGET_SYSTBL_ABI=common,64
> TARGET_SYSTBL=syscall.tbl
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES=gdb-xml/sparc64-cpu.xml gdb-xml/sparc64-fpu.xml gdb-xml/sparc64-cp0.xml
> +TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/sparc64-softmmu.mak b/configs/targets/sparc64-softmmu.mak
> index 602783ef0f6..4e621fb8e39 100644
> --- a/configs/targets/sparc64-softmmu.mak
> +++ b/configs/targets/sparc64-softmmu.mak
> @@ -1,7 +1,7 @@
> TARGET_ARCH=sparc64
> TARGET_BASE_ARCH=sparc
> TARGET_BIG_ENDIAN=y
> -TARGET_XML_FILES=gdb-xml/sparc64-cpu.xml gdb-xml/sparc64-fpu.xml gdb-xml/sparc64-cp0.xml
> +TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> diff --git a/configs/targets/x86_64-bsd-user.mak b/configs/targets/x86_64-bsd-user.mak
> index d62d656f2c6..d754186347f 100644
> --- a/configs/targets/x86_64-bsd-user.mak
> +++ b/configs/targets/x86_64-bsd-user.mak
> @@ -1,4 +1,4 @@
> TARGET_ARCH=x86_64
> TARGET_BASE_ARCH=i386
> -TARGET_XML_FILES= gdb-xml/i386-64bit.xml
> +TARGET_XML_FILES= i386-64bit.xml
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/x86_64-linux-user.mak b/configs/targets/x86_64-linux-user.mak
> index b093ab5a167..7f9527fd1de 100644
> --- a/configs/targets/x86_64-linux-user.mak
> +++ b/configs/targets/x86_64-linux-user.mak
> @@ -2,5 +2,5 @@ TARGET_ARCH=x86_64
> TARGET_BASE_ARCH=i386
> TARGET_SYSTBL_ABI=common,64
> TARGET_SYSTBL=syscall_64.tbl
> -TARGET_XML_FILES= gdb-xml/i386-64bit.xml gdb-xml/i386-64bit-linux.xml
> +TARGET_XML_FILES= i386-64bit.xml i386-64bit-linux.xml
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/x86_64-softmmu.mak b/configs/targets/x86_64-softmmu.mak
> index 151862158c7..c7f8746b4f5 100644
> --- a/configs/targets/x86_64-softmmu.mak
> +++ b/configs/targets/x86_64-softmmu.mak
> @@ -2,6 +2,6 @@ TARGET_ARCH=x86_64
> TARGET_BASE_ARCH=i386
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
> -TARGET_XML_FILES= gdb-xml/i386-64bit.xml gdb-xml/i386-64bit-apx.xml
> +TARGET_XML_FILES= i386-64bit.xml i386-64bit-apx.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> diff --git a/meson.build b/meson.build
> index 60415df69a1..42f9cfb5512 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -4302,9 +4302,13 @@ foreach target : target_dirs
> endif
>
> if 'TARGET_XML_FILES' in config_target
> + gdbstub_xml_files = []
> + foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
> + gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
> + endforeach
> gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
> output: target + '-gdbstub-xml.c',
> - input: files(config_target['TARGET_XML_FILES'].split()),
> + input: files(gdbstub_xml_files),
> command: [feature_to_c, '@INPUT@'],
> capture: true)
> arch_srcs += gdbstub_xml
> --
> 2.52.0
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
2026-02-27 10:43 ` [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
@ 2026-02-27 11:07 ` Manos Pitsidianakis
2026-03-01 14:05 ` Chao Liu
1 sibling, 0 replies; 16+ messages in thread
From: Manos Pitsidianakis @ 2026-02-27 11:07 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
On Fri, Feb 27, 2026 at 12:44 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> gdb_static_features[] only contains strings, nothing target-specific.
Nit:
It does though, doesn't it?
./aarch64-softmmu-gdbstub-xml.c will contain aarch64-core.xml etc and
./x86_64-softmmu-gdbstub-xml.c will contain i386-64bit.xml. You
probably meant "does not depend on target-specific code".
Changes LGTM
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> Instead of generating one file per target, generate a single file
> with a single gdb_static_features[] array.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> meson.build | 14 --------------
> stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0
> gdbstub/meson.build | 21 +++++++++++++++++++++
> stubs/meson.build | 2 --
> 4 files changed, 21 insertions(+), 16 deletions(-)
> rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
>
> diff --git a/meson.build b/meson.build
> index 56a746fed00..875a0bb1999 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -4221,7 +4221,6 @@ if have_rust
> endif
>
>
> -feature_to_c = find_program('scripts/feature_to_c.py')
> rust_root_crate = find_program('scripts/rust/rust_root_crate.sh')
>
> if host_os == 'darwin'
> @@ -4301,19 +4300,6 @@ foreach target : target_dirs
> endif
> endif
>
> - if 'TARGET_XML_FILES' in config_target
> - gdbstub_xml_files = []
> - foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
> - gdbstub_xml_files += 'gdbstub/gdb-xml/' + gdbstub_xml
> - endforeach
> - gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
> - output: target + '-gdbstub-xml.c',
> - input: files(gdbstub_xml_files),
> - command: [feature_to_c, '@INPUT@'],
> - capture: true)
> - arch_srcs += gdbstub_xml
> - endif
> -
> if target in config_target_info
> arch_srcs += config_target_info[target]
> else
> diff --git a/stubs/gdbstub.c b/gdbstub/gdb-xml-stub.c
> similarity index 100%
> rename from stubs/gdbstub.c
> rename to gdbstub/gdb-xml-stub.c
> diff --git a/gdbstub/meson.build b/gdbstub/meson.build
> index 15c666f5752..a25a5ae9fbf 100644
> --- a/gdbstub/meson.build
> +++ b/gdbstub/meson.build
> @@ -4,6 +4,27 @@
> # types such as hwaddr.
> #
>
> +gdbstub_xml_files = []
> +foreach target : target_dirs
> + config_target = config_target_mak[target]
> + if 'TARGET_XML_FILES' in config_target
> + foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
> + gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
> + endforeach
> + endif
> +endforeach
> +if gdbstub_xml_files.length() > 0
> + feature_to_c = find_program('../scripts/feature_to_c.py')
> + gdbstub_xml = custom_target('gdbstub-xml.c',
> + output: 'gdbstub-xml.c',
> + input: files(gdbstub_xml_files),
> + command: [feature_to_c, '@INPUT@'],
> + capture: true)
> +else
> + gdbstub_xml = files('gdb-xml-stub.c')
> +endif
> +common_ss.add(gdbstub_xml)
> +
> # We build two versions of gdbstub, one for each mode
> user_ss.add(files(
> 'gdbstub.c',
> diff --git a/stubs/meson.build b/stubs/meson.build
> index 8a07059500d..1e0f6f47377 100644
> --- a/stubs/meson.build
> +++ b/stubs/meson.build
> @@ -89,8 +89,6 @@ if have_system
> endif
>
> if have_system or have_user
> - stub_ss.add(files('gdbstub.c'))
> -
> # Also included in have_system for --disable-tcg builds
> stub_ss.add(files('replay.c'))
>
> --
> 2.52.0
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
2026-02-27 10:43 ` [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES Philippe Mathieu-Daudé
2026-02-27 11:00 ` Manos Pitsidianakis
@ 2026-02-27 12:21 ` Warner Losh
2026-02-27 13:01 ` Alex Bennée
2 siblings, 0 replies; 16+ messages in thread
From: Warner Losh @ 2026-02-27 12:21 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
[-- Attachment #1: Type: text/plain, Size: 2100 bytes --]
On Fri, Feb 27, 2026 at 3:44 AM Philippe Mathieu-Daudé <philmd@linaro.org>
wrote:
> All GDB XML files are in the gdb-xml/ directory. No need to be
> so verbose in TARGET_XML_FILES, let meson prepend the directory.
>
> Except meson.build lines, this is a mechanical change done running:
>
> $ sed -i -e s,gdb-xml/,,g $(git grep -l gdb-xml configs/targets/)
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>
Reviewed-by: Warner Losh <imp@bsdimp.com>
This looks fine, and should work with the modified meson. One observation...
diff --git a/configs/targets/aarch64-bsd-user.mak
> b/configs/targets/aarch64-bsd-user.mak
> index 7f42e060477..3a839b301e4 100644
> --- a/configs/targets/aarch64-bsd-user.mak
> +++ b/configs/targets/aarch64-bsd-user.mak
> @@ -1,4 +1,4 @@
> TARGET_ARCH=aarch64
> TARGET_BASE_ARCH=arm
> -TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml
> gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-sme2.xml
> +TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml
> aarch64-sme2.xml
>
This seems to be missing aarch64-mte.xml that linux-user has. I have a
patch in my queue to fix this since it leads to an instant assertion in
some cases. When are you landing these changes so I can plan? Otherwise
we'll collide when we submit the pull requests. The patch came in as a pull
request on the upstream blitz...
> TARGET_LONG_BITS=64
> diff --git a/configs/targets/aarch64-linux-user.mak
> b/configs/targets/aarch64-linux-user.mak
> index bf328b3b80c..ddfacc092dd 100644
> --- a/configs/targets/aarch64-linux-user.mak
> +++ b/configs/targets/aarch64-linux-user.mak
> @@ -1,6 +1,6 @@
> TARGET_ARCH=aarch64
> TARGET_BASE_ARCH=arm
> -TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml
> gdb-xml/aarch64-pauth.xml gdb-xml/aarch64-mte.xml gdb-xml/aarch64-sme2.xml
> +TARGET_XML_FILES= aarch64-core.xml aarch64-fpu.xml aarch64-pauth.xml
> aarch64-mte.xml aarch64-sme2.xml
> TARGET_HAS_BFLT=y
> CONFIG_SEMIHOSTING=y
> CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
Warner
[-- Attachment #2: Type: text/html, Size: 2946 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds
2026-02-27 10:43 ` [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds Philippe Mathieu-Daudé
2026-02-27 10:57 ` Manos Pitsidianakis
@ 2026-02-27 13:00 ` Alex Bennée
1 sibling, 0 replies; 16+ messages in thread
From: Alex Bennée @ 2026-02-27 13:00 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> Limited builds (tools, documentation) don't need to generate /
> build gdbstub files. Only process the gdbstub/ folder when
> user / system emulation / acceleration is built.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/
2026-02-27 10:43 ` [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/ Philippe Mathieu-Daudé
2026-02-27 10:58 ` Manos Pitsidianakis
@ 2026-02-27 13:00 ` Alex Bennée
1 sibling, 0 replies; 16+ messages in thread
From: Alex Bennée @ 2026-02-27 13:00 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> gdb-xml/ files are only consumed by gdbstub API.
> No need for a top-level entry, move them to gdbstub/.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
2026-02-27 10:43 ` [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES Philippe Mathieu-Daudé
2026-02-27 11:00 ` Manos Pitsidianakis
2026-02-27 12:21 ` Warner Losh
@ 2026-02-27 13:01 ` Alex Bennée
2 siblings, 0 replies; 16+ messages in thread
From: Alex Bennée @ 2026-02-27 13:01 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> All GDB XML files are in the gdb-xml/ directory. No need to be
> so verbose in TARGET_XML_FILES, let meson prepend the directory.
>
> Except meson.build lines, this is a mechanical change done running:
>
> $ sed -i -e s,gdb-xml/,,g $(git grep -l gdb-xml configs/targets/)
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
2026-02-27 10:43 [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2026-02-27 10:43 ` [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
@ 2026-02-27 15:01 ` Alex Bennée
4 siblings, 0 replies; 16+ messages in thread
From: Alex Bennée @ 2026-02-27 15:01 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> v4: Move gdb-xml/ directory under gdbstub/
> v3: Restrict meson to gdbstub/
> v2: Check array length
>
> Philippe Mathieu-Daudé (4):
> meson: Restrict gdbstub to user/system builds
> 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[]
with the ppc fix:
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
>
> 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/microblazeel-softmmu.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 +----------
> stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0
> {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 | 0
> {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 | 0
> .../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 | 21 +++++++++++++++++++
> stubs/meson.build | 2 --
> 112 files changed, 77 insertions(+), 71 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 (100%)
> 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 (100%)
> 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%)
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
2026-02-27 10:43 ` [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
2026-02-27 11:07 ` Manos Pitsidianakis
@ 2026-03-01 14:05 ` Chao Liu
2026-03-10 15:26 ` Philippe Mathieu-Daudé
1 sibling, 1 reply; 16+ messages in thread
From: Chao Liu @ 2026-03-01 14:05 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
Hi Philippe,
On Fri, Feb 27, 2026 at 11:43:14AM +0100, Philippe Mathieu-Daudé wrote:
> gdb_static_features[] only contains strings, nothing target-specific.
> Instead of generating one file per target, generate a single file
> with a single gdb_static_features[] array.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> meson.build | 14 --------------
> stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0
> gdbstub/meson.build | 21 +++++++++++++++++++++
> stubs/meson.build | 2 --
> 4 files changed, 21 insertions(+), 16 deletions(-)
> rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
>
> diff --git a/meson.build b/meson.build
> index 56a746fed00..875a0bb1999 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -4221,7 +4221,6 @@ if have_rust
> endif
>
>
> -feature_to_c = find_program('scripts/feature_to_c.py')
> rust_root_crate = find_program('scripts/rust/rust_root_crate.sh')
>
> if host_os == 'darwin'
> @@ -4301,19 +4300,6 @@ foreach target : target_dirs
> endif
> endif
>
> - if 'TARGET_XML_FILES' in config_target
> - gdbstub_xml_files = []
> - foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
> - gdbstub_xml_files += 'gdbstub/gdb-xml/' + gdbstub_xml
> - endforeach
> - gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
> - output: target + '-gdbstub-xml.c',
> - input: files(gdbstub_xml_files),
> - command: [feature_to_c, '@INPUT@'],
> - capture: true)
> - arch_srcs += gdbstub_xml
> - endif
> -
> if target in config_target_info
> arch_srcs += config_target_info[target]
> else
> diff --git a/stubs/gdbstub.c b/gdbstub/gdb-xml-stub.c
> similarity index 100%
> rename from stubs/gdbstub.c
> rename to gdbstub/gdb-xml-stub.c
> diff --git a/gdbstub/meson.build b/gdbstub/meson.build
> index 15c666f5752..a25a5ae9fbf 100644
> --- a/gdbstub/meson.build
> +++ b/gdbstub/meson.build
> @@ -4,6 +4,27 @@
> # types such as hwaddr.
> #
>
> +gdbstub_xml_files = []
> +foreach target : target_dirs
> + config_target = config_target_mak[target]
> + if 'TARGET_XML_FILES' in config_target
> + foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
> + gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
Many XML files are shared across multiple targets. For example,
arm-core.xml appears in 5 targets (arm-softmmu, arm-linux-user,
arm-bsd-user, armeb-linux-user, arm-softmmu), riscv-64bit-fpu.xml
in 5 targets, etc.
Since there is no deduplication here, feature_to_c.py will receive
duplicate input files and generate duplicate GDBFeature entries in
gdb_static_features[]. While gdb_find_static_feature() does a
first-match linear scan so it won't break, it unnecessarily bloats
the binary.
Consider adding a dedup check:
```
if not gdbstub_xml_files.contains('gdb-xml/' + gdbstub_xml)
gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
endif
```
I tested this by actually running feature_to_c.py with the collected
XML files:
==Without deduplication:==
- Total references: 171
- Unique files: 60
- Duplicates: 111 (64.91%)
- Generated file: 669 KB, 17,777 lines
- Example: arm-core.xml appears 5 times at lines 1527, 2705, 3276, 3847, 4418
(each occurrence is 2400 bytes of identical code)
==With deduplication:==
- Generated file: 244 KB, 6,243 lines
- Space saved: 425 KB (63.57% reduction)
- No duplicate entries
---
Everything else looks good to me.
Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>
Thanks,
Chao
> + endforeach
> + endif
> +endforeach
> +if gdbstub_xml_files.length() > 0
> + feature_to_c = find_program('../scripts/feature_to_c.py')
> + gdbstub_xml = custom_target('gdbstub-xml.c',
> + output: 'gdbstub-xml.c',
> + input: files(gdbstub_xml_files),
> + command: [feature_to_c, '@INPUT@'],
> + capture: true)
> +else
> + gdbstub_xml = files('gdb-xml-stub.c')
> +endif
> +common_ss.add(gdbstub_xml)
> +
> # We build two versions of gdbstub, one for each mode
> user_ss.add(files(
> 'gdbstub.c',
> diff --git a/stubs/meson.build b/stubs/meson.build
> index 8a07059500d..1e0f6f47377 100644
> --- a/stubs/meson.build
> +++ b/stubs/meson.build
> @@ -89,8 +89,6 @@ if have_system
> endif
>
> if have_system or have_user
> - stub_ss.add(files('gdbstub.c'))
> -
> # Also included in have_system for --disable-tcg builds
> stub_ss.add(files('replay.c'))
>
> --
> 2.52.0
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]
2026-03-01 14:05 ` Chao Liu
@ 2026-03-10 15:26 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 16+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-10 15:26 UTC (permalink / raw)
To: Chao Liu
Cc: qemu-devel, Paolo Bonzini, Thomas Huth, Pierrick Bouvier,
Alex Bennée
On 1/3/26 15:05, Chao Liu wrote:
> Hi Philippe,
>
> On Fri, Feb 27, 2026 at 11:43:14AM +0100, Philippe Mathieu-Daudé wrote:
>> gdb_static_features[] only contains strings, nothing target-specific.
>> Instead of generating one file per target, generate a single file
>> with a single gdb_static_features[] array.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>> meson.build | 14 --------------
>> stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0
>> gdbstub/meson.build | 21 +++++++++++++++++++++
>> stubs/meson.build | 2 --
>> 4 files changed, 21 insertions(+), 16 deletions(-)
>> rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
>>
>> diff --git a/meson.build b/meson.build
>> index 56a746fed00..875a0bb1999 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -4221,7 +4221,6 @@ if have_rust
>> endif
>>
>>
>> -feature_to_c = find_program('scripts/feature_to_c.py')
>> rust_root_crate = find_program('scripts/rust/rust_root_crate.sh')
>>
>> if host_os == 'darwin'
>> @@ -4301,19 +4300,6 @@ foreach target : target_dirs
>> endif
>> endif
>>
>> - if 'TARGET_XML_FILES' in config_target
>> - gdbstub_xml_files = []
>> - foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
>> - gdbstub_xml_files += 'gdbstub/gdb-xml/' + gdbstub_xml
>> - endforeach
>> - gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
>> - output: target + '-gdbstub-xml.c',
>> - input: files(gdbstub_xml_files),
>> - command: [feature_to_c, '@INPUT@'],
>> - capture: true)
>> - arch_srcs += gdbstub_xml
>> - endif
>> -
>> if target in config_target_info
>> arch_srcs += config_target_info[target]
>> else
>> diff --git a/stubs/gdbstub.c b/gdbstub/gdb-xml-stub.c
>> similarity index 100%
>> rename from stubs/gdbstub.c
>> rename to gdbstub/gdb-xml-stub.c
>> diff --git a/gdbstub/meson.build b/gdbstub/meson.build
>> index 15c666f5752..a25a5ae9fbf 100644
>> --- a/gdbstub/meson.build
>> +++ b/gdbstub/meson.build
>> @@ -4,6 +4,27 @@
>> # types such as hwaddr.
>> #
>>
>> +gdbstub_xml_files = []
>> +foreach target : target_dirs
>> + config_target = config_target_mak[target]
>> + if 'TARGET_XML_FILES' in config_target
>> + foreach gdbstub_xml : config_target['TARGET_XML_FILES'].split()
>> + gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
> Many XML files are shared across multiple targets. For example,
> arm-core.xml appears in 5 targets (arm-softmmu, arm-linux-user,
> arm-bsd-user, armeb-linux-user, arm-softmmu), riscv-64bit-fpu.xml
> in 5 targets, etc.
>
> Since there is no deduplication here, feature_to_c.py will receive
> duplicate input files and generate duplicate GDBFeature entries in
> gdb_static_features[]. While gdb_find_static_feature() does a
> first-match linear scan so it won't break, it unnecessarily bloats
> the binary.
>
> Consider adding a dedup check:
>
> ```
> if not gdbstub_xml_files.contains('gdb-xml/' + gdbstub_xml)
> gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
> endif
> ```
Great suggestion, thanks!
>
> I tested this by actually running feature_to_c.py with the collected
> XML files:
>
> ==Without deduplication:==
> - Total references: 171
> - Unique files: 60
> - Duplicates: 111 (64.91%)
> - Generated file: 669 KB, 17,777 lines
> - Example: arm-core.xml appears 5 times at lines 1527, 2705, 3276, 3847, 4418
> (each occurrence is 2400 bytes of identical code)
>
> ==With deduplication:==
> - Generated file: 244 KB, 6,243 lines
> - Space saved: 425 KB (63.57% reduction)
> - No duplicate entries
>
> ---
>
> Everything else looks good to me.
>
> Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>
>
> Thanks,
> Chao
>> + endforeach
>> + endif
>> +endforeach
>> +if gdbstub_xml_files.length() > 0
>> + feature_to_c = find_program('../scripts/feature_to_c.py')
>> + gdbstub_xml = custom_target('gdbstub-xml.c',
>> + output: 'gdbstub-xml.c',
>> + input: files(gdbstub_xml_files),
>> + command: [feature_to_c, '@INPUT@'],
>> + capture: true)
>> +else
>> + gdbstub_xml = files('gdb-xml-stub.c')
>> +endif
>> +common_ss.add(gdbstub_xml)
>> +
>> # We build two versions of gdbstub, one for each mode
>> user_ss.add(files(
>> 'gdbstub.c',
>> diff --git a/stubs/meson.build b/stubs/meson.build
>> index 8a07059500d..1e0f6f47377 100644
>> --- a/stubs/meson.build
>> +++ b/stubs/meson.build
>> @@ -89,8 +89,6 @@ if have_system
>> endif
>>
>> if have_system or have_user
>> - stub_ss.add(files('gdbstub.c'))
>> -
>> # Also included in have_system for --disable-tcg builds
>> stub_ss.add(files('replay.c'))
>>
>> --
>> 2.52.0
>>
>>
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-03-10 15:27 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-27 10:43 [PATCH v4 0/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
2026-02-27 10:43 ` [PATCH v4 1/4] meson: Restrict gdbstub to user/system builds Philippe Mathieu-Daudé
2026-02-27 10:57 ` Manos Pitsidianakis
2026-02-27 13:00 ` Alex Bennée
2026-02-27 10:43 ` [PATCH v4 2/4] gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES Philippe Mathieu-Daudé
2026-02-27 11:00 ` Manos Pitsidianakis
2026-02-27 12:21 ` Warner Losh
2026-02-27 13:01 ` Alex Bennée
2026-02-27 10:43 ` [PATCH v4 3/4] gdbstub: Move gdb-xml/ within gdbstub/ Philippe Mathieu-Daudé
2026-02-27 10:58 ` Manos Pitsidianakis
2026-02-27 13:00 ` Alex Bennée
2026-02-27 10:43 ` [PATCH v4 4/4] gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[] Philippe Mathieu-Daudé
2026-02-27 11:07 ` Manos Pitsidianakis
2026-03-01 14:05 ` Chao Liu
2026-03-10 15:26 ` Philippe Mathieu-Daudé
2026-02-27 15:01 ` [PATCH v4 0/4] " Alex Bennée
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.