qemu/hw/i386/Kconfig
Eric Auger eb013cd6a1 hw/i386/microvm: Explicitly select ACPI_PCI
With a microvm-only build based on a custom device config,
we get a link failure due to undefined reference to
build_pci_host_bridge_osc_method() which is defined in hw/acpi/pci.c and
whose compilation depends on CONFIG_ACPI_PCI. Although CONFIG_ACPI
and CONFIG_PCI are set with such configuration, implied CONFIG_ACPI_PCI
in config PCI_EXPRESS_GENERIC_BRIDGE is not selected as expected.

It Looks like CONFIG_ACPI_PCI must be enforced and this patch selects
CONFIG_ACPI_PCI in MICROVM config directly as done for PC config.

Reproducer:

../configure \
 --without-default-features \
 --target-list=x86_64-softmmu \
 --enable-kvm --disable-tcg \
 --enable-pixman \
 --enable-vnc \
 --audio-drv-list="" \
 --without-default-devices \
 --with-devices-x86_64=microvm \
 --enable-vhost-user

with configs/devices/x86_64-softmmu/microvm.mak:
CONFIG_PCI_DEVICES=n

CONFIG_MICROVM=y

CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_SERIAL=y
CONFIG_VIRTIO_INPUT=y
CONFIG_VIRTIO_INPUT_HOST=y
CONFIG_VHOST_USER_INPUT=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_SCSI=y
CONFIG_VIRTIO_RNG=y
CONFIG_VIRTIO_CRYPTO=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_GPU=y
CONFIG_VHOST_USER_GPU=y

FAILED: qemu-system-x86_64
cc -m64 @qemu-system-x86_64.rsp
/usr/bin/ld: libsystem.a.p/hw_pci-host_gpex-acpi.c.o: in function `acpi_dsdt_add_host_bridge_methods':
hw/pci-host/gpex-acpi.c:83:(.text+0x274): undefined reference to `build_pci_host_bridge_osc_method'
collect2: error: ld returned 1 exit status

Fixes: af151d50ea "hw/pci-host/gpex-acpi: Use build_pci_host_bridge_osc_method"
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Message-ID: <20250804152008.247673-1-eric.auger@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
2025-08-05 17:30:45 +02:00

173 lines
3.0 KiB
Plaintext

config X86_FW_OVMF
bool
config SEV
bool
select X86_FW_OVMF
depends on KVM && X86_64
config SGX
bool
depends on KVM
config TDX
bool
select X86_FW_OVMF
depends on KVM && X86_64
config PC
bool
imply APPLESMC
imply HYPERV
imply ISA_IPMI_KCS
imply ISA_IPMI_BT
imply PCI_IPMI_KCS
imply PCI_IPMI_BT
imply IPMI_SSIF
imply ISA_DEBUG
imply PARALLEL
imply PCI_DEVICES
imply PVPANIC_ISA
imply QXL
imply SEV
imply SGX
imply TDX
imply TEST_DEVICES
imply TPM_CRB
imply TPM_TIS_ISA
imply VGA_PCI
imply VIRTIO_VGA
imply NVDIMM
imply FDC_ISA
select I8259
select I8254
select PCKBD
select PCSPK
select I8257
select MC146818RTC
# For ACPI builder:
select SERIAL_ISA
select ACPI_PCI
select ACPI_VMGENID
select ACPI_VMCLOCK
select VIRTIO_PMEM_SUPPORTED
select VIRTIO_MEM_SUPPORTED
select HV_BALLOON_SUPPORTED
config PC_PCI
bool
select APIC
select IOAPIC
select PC
config PC_ACPI
bool
select ACPI_X86
select ACPI_CPU_HOTPLUG
select ACPI_MEMORY_HOTPLUG
select ACPI_PCI_BRIDGE
select ACPI_VIOT
select SMBUS_EEPROM
select PFLASH_CFI01
depends on ACPI_SMBUS
config I440FX
bool
default y
depends on I386
imply E1000_PCI
imply VMPORT
imply VMMOUSE
select ACPI_PIIX4
select PC_PCI
select PC_ACPI
select PCI_I440FX
select PIIX
select DIMM
select SMBIOS
select SMBIOS_LEGACY
select FW_CFG_DMA
config ISAPC
bool
default y
depends on I386
imply VGA_ISA
select ISA_BUS
select PC
select IDE_ISA
# FIXME: it is in the same file as i440fx, and does not compile
# if separated
depends on I440FX
config Q35
bool
default y
depends on I386
imply VTD
imply AMD_IOMMU
imply E1000E_PCI_EXPRESS
imply VMPORT
imply VMMOUSE
imply IOMMUFD
select PC_PCI
select PC_ACPI
select PCI_EXPRESS_Q35
select LPC_ICH9
select AHCI_ICH9
select DIMM
select SMBIOS
select FW_CFG_DMA
config MICROVM
bool
default y
depends on I386 && FDT
select DEVICE_TREE
select SERIAL_ISA # for serial_hds_isa_init()
select ISA_BUS
select APIC
select IOAPIC
select I8259
select MC146818RTC
select VIRTIO_MMIO
select ACPI_PCI
select ACPI_HW_REDUCED
select PCI_EXPRESS_GENERIC_BRIDGE
select USB_XHCI_SYSBUS
select I8254
config NITRO_ENCLAVE
default y
depends on I386 && FDT # for MICROVM
depends on LIBCBOR && GNUTLS # for EIF and VIRTIO_NSM
depends on VHOST_USER # for VHOST_USER_VSOCK
select EIF
select MICROVM
select VHOST_USER_VSOCK
select VIRTIO_NSM
config X86_IOMMU
bool
depends on PC
config VTD
bool
select X86_IOMMU
config AMD_IOMMU
bool
select X86_IOMMU
config VMPORT
bool
config VMMOUSE
bool
depends on VMPORT
config XEN_EMU
bool
default y
depends on KVM && I386