Hi Fabiano,
On 23/4/24 20:02, Fabiano Rosas wrote:
> Paolo Bonzini <pbonzini@redhat.com> writes:
>
>> For ARM targets, boards that require TCG are already using "default y".
>> Switch ARM_VIRT to the same selection mechanism.
>>
>> No changes to generated config-devices.mak file.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> configs/devices/arm-softmmu/default.mak | 3 ++-
>> hw/arm/Kconfig | 2 ++
>> 2 files changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/configs/devices/arm-softmmu/default.mak b/configs/devices/arm-softmmu/default.mak
>> index c1cfb3bcf75..31f77c20269 100644
>> --- a/configs/devices/arm-softmmu/default.mak
>> +++ b/configs/devices/arm-softmmu/default.mak
>> @@ -5,7 +5,8 @@
>> # CONFIG_PCI_DEVICES=n
>> # CONFIG_TEST_DEVICES=n
>>
>> -CONFIG_ARM_VIRT=y
>> +# Boards are selected by default, uncomment to keep out of the build.
>> +# CONFIG_ARM_VIRT=n
>>
>> # These are selected by default when TCG is enabled, uncomment them to
>> # keep out of the build.
>> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
>> index 893a7bff66b..1e7cd01087f 100644
>> --- a/hw/arm/Kconfig
>> +++ b/hw/arm/Kconfig
>> @@ -1,5 +1,7 @@
>> config ARM_VIRT
>> bool
>> + default y
>> + depends on ARM
>> imply PCI_DEVICES
>
> We lose pci.c when building --without-default-devices:
>
> $ arch
> aarch64
> $ ../configure --target-list=aarch64-softmmu,arm-softmmu
> --disable-linux-user --without-default-devices
> $ make
> ...
> libqemu-aarch64-softmmu.fa.p/target_arm_kvm.c.o: in function `kvm_arch_fixup_msi_route':
> ../target/arm/kvm.c:1548: undefined reference to `pci_device_iommu_address_space'
I guess we can add something like
config AARCH64
select PCI if KVM
Paolo
IIRC QEMU isn't yet ready to be built with --without-default-devices
but without any machine, you need to explicit at least one. For
example you can use --with-devices-aarch64=minimal, or define a
config with only the Virt machine.
Paolo