On 7/28/25 2:39 AM, Philippe Mathieu-Daudé wrote:
On 25/7/25 22:19, Pierrick Bouvier wrote:
Move those files to hw/arm, as they depend on arm target code.
Pierrick Bouvier (3):
hw/arm/arm_gicv3_cpuif_common: move to hw/arm and compile only once
hw/arm/arm_gicv3_cpuif: move to hw/arm and compile only once
hw/arm/armv7m_nvic: move to hw/arm and compile only once
hw/{intc => arm}/arm_gicv3_cpuif.c | 2 +-
hw/{intc => arm}/arm_gicv3_cpuif_common.c | 2 +-
hw/{intc => arm}/armv7m_nvic.c | 0
Alternatively add arm_common_ss in hw/intc/meson.build?
arm_common_ss = ss.source_set()
arm_common_ss.add(when: 'CONFIG_ARM_GIC',
if_true: files('arm_gicv3_cpuif_common.c'))
arm_common_ss.add(when: 'CONFIG_ARM_GICV3',
if_true: files('arm_gicv3_cpuif.c'))
arm_common_ss.add(when: 'CONFIG_ARM_V7M',
if_true: files('armv7m_nvic.c'))
hw_common_arch += {'arm': arm_common_ss}
The problem with this approach is that we need to aggregate hw/arm and
hw/intc arm related source sets, and the last line in your proposed
change does not have this semantic.
Regarding meson, hw/intc subfolder is parsed *before* hw/arm (see
hw/meson.build), so we can't reuse the same source set, defined in
hw/arm/meson.build.
This old commit (7702e47c2) was the origin of having interrupt related
code in a generic folder, but I don't really understand the rationale
behind it to be honest. It seems to be an exception regarding all the
rest of the codebase, thus the idea to bring back things where they belong.
I'm open to any other idea someone would have. Peter, without
necessarily a working solution, do you have any preference on where
those things should be?
hw/arm/meson.build | 3 +
hw/arm/trace-events | 79 +++++++++++++++++++++++
hw/intc/meson.build | 3 -
hw/intc/trace-events | 79 -----------------------
7 files changed, 84 insertions(+), 84 deletions(-)
rename hw/{intc => arm}/arm_gicv3_cpuif.c (99%)
rename hw/{intc => arm}/arm_gicv3_cpuif_common.c (92%)
rename hw/{intc => arm}/armv7m_nvic.c (100%)