gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]

gdb_static_features[] does not depend on target-specific code.
Instead of generating one file per target, generate a single file
with a single gdb_static_features[] array.

Co-developed-by: Chao Liu <chao.liu.zevorn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Chao Liu <chao.liu.zevorn@gmail.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Link: https://lore.kernel.org/qemu-devel/20260310232045.58440-17-philmd@linaro.org
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé
2026-03-11 00:20:44 +01:00
committed by Pierrick Bouvier
parent 39fb349f74
commit 6511d4eed7
4 changed files with 23 additions and 16 deletions

View File

@@ -4,6 +4,29 @@
# types such as hwaddr. # 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()
if not gdbstub_xml_files.contains('gdb-xml/' + gdbstub_xml)
gdbstub_xml_files += 'gdb-xml/' + gdbstub_xml
endif
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 # We build two versions of gdbstub, one for each mode
user_ss.add(files( user_ss.add(files(
'gdbstub.c', 'gdbstub.c',

View File

@@ -4248,7 +4248,6 @@ if have_rust
endif endif
feature_to_c = find_program('scripts/feature_to_c.py')
rust_root_crate = find_program('scripts/rust/rust_root_crate.sh') rust_root_crate = find_program('scripts/rust/rust_root_crate.sh')
if host_os == 'darwin' if host_os == 'darwin'
@@ -4328,19 +4327,6 @@ foreach target : target_dirs
endif endif
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 if target in config_target_info
arch_srcs += config_target_info[target] arch_srcs += config_target_info[target]
else else

View File

@@ -89,8 +89,6 @@ if have_system
endif endif
if have_system or have_user if have_system or have_user
stub_ss.add(files('gdbstub.c'))
# Also included in have_system for --disable-tcg builds # Also included in have_system for --disable-tcg builds
stub_ss.add(files('replay.c')) stub_ss.add(files('replay.c'))