As mentioned in 20250513115637.184940-1-th...@redhat.com, dependencies were missing when compiling per target libraries, thus breaking compilation on certain host systems.
We now explicitely add common dependencies to those libraries, so it solves the problem. Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org> --- meson.build | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 49c8b0e5f6a..197fdc1c210 100644 --- a/meson.build +++ b/meson.build @@ -3259,6 +3259,7 @@ config_devices_mak_list = [] config_devices_h = {} config_target_h = {} config_target_mak = {} +config_base_arch_mak = {} disassemblers = { 'alpha' : ['CONFIG_ALPHA_DIS'], @@ -3451,6 +3452,11 @@ foreach target : target_dirs config_all_devices += config_devices endif config_target_mak += {target: config_target} + + # build a merged config for all targets with the same TARGET_BASE_ARCH + target_base_arch = config_target['TARGET_BASE_ARCH'] + config_base_arch = config_base_arch_mak.get(target_base_arch, {}) + config_target + config_base_arch_mak += {target_base_arch: config_base_arch} endforeach target_dirs = actual_target_dirs @@ -4131,12 +4137,17 @@ common_all = static_library('common', hw_common_arch_libs = {} target_common_arch_libs = {} target_common_system_arch_libs = {} -foreach target : target_dirs +foreach target_base_arch, config_base_arch : config_base_arch_mak config_target = config_target_mak[target] - target_base_arch = config_target['TARGET_BASE_ARCH'] target_inc = [include_directories('target' / target_base_arch)] inc = [common_user_inc + target_inc] + target_common = common_ss.apply(config_target, strict: false) + common_deps = [] + foreach dep: target_common.dependencies() + common_deps += dep.partial_dependency(compile_args: true, includes: true) + endforeach + # prevent common code to access cpu compile time definition, # but still allow access to cpu.h target_c_args = ['-DCPU_DEFS_H'] @@ -4151,7 +4162,7 @@ foreach target : target_dirs sources: src.all_sources() + genh, include_directories: inc, c_args: target_system_c_args, - dependencies: src.all_dependencies()) + dependencies: src.all_dependencies() + common_deps) hw_common_arch_libs += {target_base_arch: lib} endif endif @@ -4165,7 +4176,7 @@ foreach target : target_dirs sources: src.all_sources() + genh, include_directories: inc, c_args: target_c_args, - dependencies: src.all_dependencies()) + dependencies: src.all_dependencies() + common_deps) target_common_arch_libs += {target_base_arch: lib} endif endif @@ -4179,7 +4190,7 @@ foreach target : target_dirs sources: src.all_sources() + genh, include_directories: inc, c_args: target_system_c_args, - dependencies: src.all_dependencies()) + dependencies: src.all_dependencies() + common_deps) target_common_system_arch_libs += {target_base_arch: lib} endif endif -- 2.47.2