In commit 83d5db95d38 ("meson: Allow system binaries to not
have target-specific units") we allowed targets with empty
target_system_arch[] source set, but missed hw_arch[] could
also be empty when building modules.
Skip such case, otherwise due to commit a1ced487549
("hw/microblaze: Build files once"), building with
--enable-modules triggers:
../meson.build:4034:14: ERROR: Key microblaze is not in the dictionary.
Fixes: a1ced487549 ("hw/microblaze: Build files once")
Reported-by: Frederic Bezies <[email protected]>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3272
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-Id: <[email protected]>
---
meson.build | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 3108f01e887..a84f14258b0 100644
--- a/meson.build
+++ b/meson.build
@@ -3957,6 +3957,11 @@ if enable_modules
foreach target : target_dirs
if target.endswith('-softmmu')
config_target = config_target_mak[target]
+ arch = config_target['TARGET_NAME'] == 'sparc64' ? 'sparc64' :
config_target['TARGET_BASE_ARCH']
+ if not hw_arch.has_key(arch)
+ continue
+ endif
+
config_devices_mak = target + '-config-devices.mak'
modinfo_src = custom_target('modinfo-' + target + '.c',
output: 'modinfo-' + target + '.c',
@@ -3966,8 +3971,6 @@ if enable_modules
modinfo_lib = static_library('modinfo-' + target + '.c', modinfo_src)
modinfo_dep = declare_dependency(link_with: modinfo_lib)
-
- arch = config_target['TARGET_NAME'] == 'sparc64' ? 'sparc64' :
config_target['TARGET_BASE_ARCH']
hw_arch[arch].add(modinfo_dep)
endif
endforeach
--
2.52.0