On 01/02/21 10:18, Philippe Mathieu-Daudé wrote:
FYI using 'imply FSDEV_9P' instead I get:
/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:754: undefined reference to `xen_9pfs_ops'
Ok, so then we have the case of a file (hw/xen/xen-legacy-backend.c)
brought in by CONFIG_XEN. In that case this patch is incorrect...
The function is:
void xen_be_register_common(void)
{
xen_set_dynamic_sysbus();
xen_be_register("console", &xen_console_ops);
xen_be_register("vkbd", &xen_kbdmouse_ops);
#ifdef CONFIG_VIRTFS
xen_be_register("9pfs", &xen_9pfs_ops);
#endif
#ifdef CONFIG_USB_LIBUSB
xen_be_register("qusb", &xen_usb_ops);
#endif
}
The object is compiled using:
-- >8 --
-#ifdef CONFIG_VIRTFS
+#ifdef CONFIG_FSDEV_9P
xen_be_register("9pfs", &xen_9pfs_ops);
#endif
---
... and this is the best fix, together with:
- a "#include CONFIG_DEVICES" at the top (to get CONFIG_FSDEV_9P)
- moving xen-legacy-backend.c from softmmu_ss to specific_ss (to get
CONFIG_DEVICES)
- changing "select" to "imply" in accel/Kconfig (otherwise the patch has
no effect)
But really, doing nothing and just dropping this patch is perfectly fine.
Paolo