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


Reply via email to