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 | 7 +++++++
2 files changed, 8 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..0b8427d6bd1
--- /dev/null
+++ b/hw/xen/Kconfig
@@ -0,0 +1,7 @@
+config XEN_PV
+ bool
+ default y if XEN
+ depends on XEN
+ select PCI
+ select USB
+ select IDE_PIIX
--
2.26.2
On 1/31/21 3:18 PM, 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 | 7 +++++++ > 2 files changed, 8 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..0b8427d6bd1 > --- /dev/null > +++ b/hw/xen/Kconfig > @@ -0,0 +1,7 @@ > +config XEN_PV > + bool > + default y if XEN > + depends on XEN > + select PCI > + select USB > + select IDE_PIIX Well this is not enough, --without-default-devices fails: /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o: in function `cpu_physical_memory_set_dirty_range': include/exec/ram_addr.h:333: undefined reference to `xen_hvm_modified_memory' /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o: in function `ram_block_add': softmmu/physmem.c:1873: undefined reference to `xen_ram_alloc' /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o: in function `cpu_physical_memory_set_dirty_range': include/exec/ram_addr.h:333: undefined reference to `xen_hvm_modified_memory' /usr/bin/ld: include/exec/ram_addr.h:333: undefined reference to `xen_hvm_modified_memory' /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_memory.c.o: in function `cpu_physical_memory_set_dirty_range': include/exec/ram_addr.h:333: undefined reference to `xen_hvm_modified_memory' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.
On 01/02/21 11:59, Philippe Mathieu-Daudé wrote: > On 1/31/21 3:18 PM, 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 | 7 +++++++ >> 2 files changed, 8 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..0b8427d6bd1 >> --- /dev/null >> +++ b/hw/xen/Kconfig >> @@ -0,0 +1,7 @@ >> +config XEN_PV >> + bool >> + default y if XEN >> + depends on XEN >> + select PCI >> + select USB >> + select IDE_PIIX > > Well this is not enough, --without-default-devices fails: > > /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o: in > function `cpu_physical_memory_set_dirty_range': > include/exec/ram_addr.h:333: undefined reference to > `xen_hvm_modified_memory' > /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o: in > function `ram_block_add': > softmmu/physmem.c:1873: undefined reference to `xen_ram_alloc' > /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o: in > function `cpu_physical_memory_set_dirty_range': > include/exec/ram_addr.h:333: undefined reference to > `xen_hvm_modified_memory' > /usr/bin/ld: include/exec/ram_addr.h:333: undefined reference to > `xen_hvm_modified_memory' > /usr/bin/ld: libqemu-x86_64-softmmu.fa.p/softmmu_memory.c.o: in function > `cpu_physical_memory_set_dirty_range': > include/exec/ram_addr.h:333: undefined reference to > `xen_hvm_modified_memory' > collect2: error: ld returned 1 exit status > ninja: build stopped: subcommand failed. I think you can modify xen_hvm_modified_memory to become a virtual function in AccelClass. Paolo
© 2016 - 2025 Red Hat, Inc.