Il mar 13 mag 2025, 10:33 Thomas Huth <th...@redhat.com> ha scritto: > From: Thomas Huth <th...@redhat.com> > > Since commit 6f4e8a92bbd ("hw/arm: make most of the compilation units > common"), compilation of some arm machines (like musicpal) fails on > certain host systems like OpenBSD 7.6/7.7 since headers like <epoxy/gl.h> > don't reside in /usr/include and we currently don't add the right > CFLAGS for the common files to include the additional header search > paths. Add a loop similar to what we already did in commit 727bb5b477e6 > to fix it. > > With this fix applied, we can now also drop the explicit dependency > on pixman for the arm musicpal machine. >
Thanks, maybe replace common_ss with hw_common_arch_libs in the subject? These are not necessarily compiled once. Paolo Fixes: 6f4e8a92bbd ("hw/arm: make most of the compilation units common") > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > [thuth: Add commit message + changes in hw/arm/meson.build] > Signed-off-by: Thomas Huth <th...@redhat.com> > --- > meson.build | 27 ++++++++++++++++----------- > hw/arm/meson.build | 2 +- > 2 files changed, 17 insertions(+), 12 deletions(-) > > diff --git a/meson.build b/meson.build > index 5ac64075be7..7131aa2b21d 100644 > --- a/meson.build > +++ b/meson.build > @@ -3228,6 +3228,7 @@ config_devices_mak_list = [] > config_devices_h = {} > config_target_h = {} > config_target_mak = {} > +config_base_arch_mak = {} > > disassemblers = { > 'alpha' : ['CONFIG_ALPHA_DIS'], > @@ -3419,6 +3420,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 > > @@ -4099,28 +4105,27 @@ common_all = static_library('common', > > # construct common libraries per base architecture > hw_common_arch_libs = {} > -foreach target : target_dirs > - config_target = config_target_mak[target] > - target_base_arch = config_target['TARGET_BASE_ARCH'] > +foreach target_base_arch, config_base_arch : config_base_arch_mak > + if target_base_arch in hw_common_arch > + base_arch_hw = > hw_common_arch[target_base_arch].apply(config_base_arch, strict: false) > + base_arch_common = common_ss.apply(config_base_arch, strict: false) > > - # check if already generated > - if target_base_arch in hw_common_arch_libs > - continue > - endif > + lib_deps = base_arch_hw.dependencies() > + foreach dep : base_arch_common.dependencies() > + lib_deps += dep.partial_dependency(compile_args: true, includes: > true) > + endforeach > > - if target_base_arch in hw_common_arch > target_inc = [include_directories('target' / target_base_arch)] > - src = hw_common_arch[target_base_arch] > lib = static_library( > 'hw_' + target_base_arch, > build_by_default: false, > - sources: src.all_sources() + genh, > + sources: base_arch_hw.sources() + genh, > include_directories: common_user_inc + target_inc, > implicit_include_directories: false, > # prevent common code to access cpu compile time > # definition, but still allow access to cpu.h > c_args: ['-DCPU_DEFS_H', '-DCOMPILING_SYSTEM_VS_USER', > '-DCONFIG_SOFTMMU'], > - dependencies: src.all_dependencies()) > + dependencies: lib_deps) > hw_common_arch_libs += {target_base_arch: lib} > endif > endforeach > diff --git a/hw/arm/meson.build b/hw/arm/meson.build > index 5098795f61d..8e3bf495dbf 100644 > --- a/hw/arm/meson.build > +++ b/hw/arm/meson.build > @@ -8,7 +8,7 @@ arm_common_ss.add(when: 'CONFIG_HIGHBANK', if_true: > files('highbank.c')) > arm_common_ss.add(when: 'CONFIG_INTEGRATOR', if_true: > files('integratorcp.c')) > arm_common_ss.add(when: 'CONFIG_MICROBIT', if_true: files('microbit.c')) > arm_common_ss.add(when: 'CONFIG_MPS3R', if_true: files('mps3r.c')) > -arm_common_ss.add(when: 'CONFIG_MUSICPAL', if_true: [pixman, > files('musicpal.c')]) > +arm_common_ss.add(when: 'CONFIG_MUSICPAL', if_true: files('musicpal.c')) > arm_common_ss.add(when: 'CONFIG_NETDUINOPLUS2', if_true: > files('netduinoplus2.c')) > arm_common_ss.add(when: 'CONFIG_OLIMEX_STM32_H405', if_true: > files('olimex-stm32-h405.c')) > arm_common_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx.c', > 'npcm7xx_boards.c')) > -- > 2.49.0 > >