On 29/01/21 20:44, Philippe Mathieu-Daudé wrote:
> xenpv machine requires USB, IDE_PIIX and PCI:
>
> /usr/bin/ld:
> libcommon.fa.p/hw_xen_xen-legacy-backend.c.o: in function `xen_be_register_common':
> hw/xen/xen-legacy-backend.c:757: undefined reference to `xen_usb_ops'
> libqemu-i386-softmmu.fa.p/hw_i386_xen_xen_platform.c.o: in function `unplug_disks':
> hw/i386/xen/xen_platform.c:153: undefined reference to `pci_piix3_xen_ide_unplug'
> libqemu-i386-softmmu.fa.p/hw_i386_xen_xen_platform.c.o: in function `pci_unplug_nics':
> hw/i386/xen/xen_platform.c:137: undefined reference to `pci_for_each_device'
> libqemu-i386-softmmu.fa.p/hw_i386_xen_xen_platform.c.o: in function `xen_platform_realize':
> hw/i386/xen/xen_platform.c:483: undefined reference to `pci_register_bar'
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> hw/Kconfig | 1 +
> hw/xen/Kconfig | 6 ++++++
> 2 files changed, 7 insertions(+)
> create mode 100644 hw/xen/Kconfig
>
> diff --git a/hw/Kconfig b/hw/Kconfig
> index 5ad3c6b5a4b..f2a95591d94 100644
> --- a/hw/Kconfig
> +++ b/hw/Kconfig
> @@ -39,6 +39,7 @@ source usb/Kconfig
> source virtio/Kconfig
> source vfio/Kconfig
> source watchdog/Kconfig
> +source xen/Kconfig
>
> # arch Kconfig
> source arm/Kconfig
> diff --git a/hw/xen/Kconfig b/hw/xen/Kconfig
> new file mode 100644
> index 00000000000..15944144a17
> --- /dev/null
> +++ b/hw/xen/Kconfig
> @@ -0,0 +1,6 @@
> +config XEN_PV
> + bool
> + depends on XEN
> + select PCI
> + select USB
> + select IDE_PIIX
>
Since you're hacking around you can also "select ISA_BUS" here, but the
right solution would be to have a "config XEN_FV" and leave
hw/i386/xen/xen_platform.c out of XEN_PV.
Paolo