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 <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Manos Pitsidianakis <[email protected]> Reviewed-by: Chao Liu <[email protected]> Acked-by: Alex Bennée <[email protected]> --- meson.build | 14 -------------- stubs/gdbstub.c => gdbstub/gdb-xml-stub.c | 0 gdbstub/meson.build | 23 +++++++++++++++++++++++ stubs/meson.build | 2 -- 4 files changed, 23 insertions(+), 16 deletions(-) rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%) diff --git a/meson.build b/meson.build index 503cde5ea90..538efb7092d 100644 --- a/meson.build +++ b/meson.build @@ -4248,7 +4248,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' @@ -4328,19 +4327,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..b61d2e915c1 100644 --- a/gdbstub/meson.build +++ b/gdbstub/meson.build @@ -4,6 +4,29 @@ # 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 user_ss.add(files( 'gdbstub.c', diff --git a/stubs/meson.build b/stubs/meson.build index fad796a49da..7189ff63ed5 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.53.0
