Hi Fabiano,

On 23/4/24 20:02, Fabiano Rosas wrote:
Paolo Bonzini <pbonz...@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 <pbonz...@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'

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.

Regards,

Phil.

Reply via email to