On 10/1/20 5:05 PM, Philippe Mathieu-Daudé wrote: > On 10/1/20 9:38 AM, Paolo Bonzini wrote: >> On 29/09/20 22:36, Philippe Mathieu-Daudé wrote: >>> Yes, the problem if I don't restrict to KVM, when >>> using the Xen accelerator odd things occur >>> (using configure --enable-xen --disable-tcg --disable-kvm): >>> >>> Compiling C object libqemu-i386-softmmu.fa.p/hw_cpu_a15mpcore.c.o >>> hw/cpu/a15mpcore.c:28:10: fatal error: kvm_arm.h: No such file or directory >>> >>> See >>> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions#Use_of_qemu-system-i386_on_ARM >> >> I don't understand. Is Xen adding CONFIG_ARM_VIRT=y to >> default-configs/i386-softmmu.mak?? > > No, this is when using: > > config ARM_VIRT > bool > + default y > > I had the understanding devices in hw/$BASEARCH would be only > included for $ARCH, but I was wrong, any arch kconfig-include > the devices of the other archs. > > I tried the following diff which doesn't build because various > devices in *non*-archdep folders use arch-specific Kconfig values: > > -- >8 -- > diff --git a/meson.build b/meson.build > index 9ab5d514d7..cfe19d0007 100644 > --- a/meson.build > +++ b/meson.build > @@ -575,6 +575,7 @@ foreach target : target_dirs > if fs.is_file(target_kconfig) > minikconf_input += [target_kconfig] > endif > + minikconf_input += 'hw' / config_target['TARGET_BASE_ARCH'] / 'Kconfig' > config_devices_mak = configure_file( > input: minikconf_input, > output: config_devices_mak, > diff --git a/hw/Kconfig b/hw/Kconfig > index 4de1797ffd..64c120175a 100644 > --- a/hw/Kconfig > +++ b/hw/Kconfig > @@ -41,29 +41,29 @@ source vfio/Kconfig > source watchdog/Kconfig > > # arch Kconfig > -source arm/Kconfig > -source alpha/Kconfig > -source avr/Kconfig > -source cris/Kconfig > -source hppa/Kconfig > -source i386/Kconfig > -source lm32/Kconfig > -source m68k/Kconfig > -source microblaze/Kconfig > -source mips/Kconfig > -source moxie/Kconfig > -source nios2/Kconfig > -source openrisc/Kconfig > -source ppc/Kconfig > -source riscv/Kconfig > -source rx/Kconfig > -source s390x/Kconfig > -source sh4/Kconfig > -source sparc/Kconfig > -source sparc64/Kconfig > -source tricore/Kconfig > -source unicore32/Kconfig > -source xtensa/Kconfig > > # Symbols used by multiple targets > config TEST_DEVICES > --- List of arch-indep Kconfig using arch-defined selectors: hw/acpi/Kconfig:42: depends on PC hw/intc/Kconfig:31: depends on ARM_GIC && KVM hw/intc/Kconfig:36: depends on OPENPIC && KVM hw/intc/Kconfig:40: depends on POWERNV || PSERIES hw/intc/Kconfig:49: depends on XICS && KVM hw/intc/Kconfig:60: depends on S390_FLIC && KVM hw/mem/Kconfig:11: depends on (PC || PSERIES || ARM_VIRT) hw/pci-bridge/Kconfig:8: default y if Q35 hw/timer/Kconfig:14: default y if PC hw/tpm/Kconfig:18: depends on TPM && PC hw/tpm/Kconfig:24: depends on TPM && PSERIES hw/vfio/Kconfig:16: depends on LINUX && S390_CCW_VIRTIO hw/vfio/Kconfig:38: depends on LINUX && S390_CCW_VIRTIO