Message ID | 1566284395-30287-10-git-send-email-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PULL,01/36] kvm: i386: halt poll control MSR support | expand |
Hi Paolo, On 8/20/19 8:59 AM, Paolo Bonzini wrote: > Express the complex conditions in Kconfig rather than Makefiles, since Kconfig > is better suited at expressing dependencies and detecting contradictions. > > Cc: Marc-André Lureau <marcandre.lureau@redhat.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > Kconfig.host | 1 + > fsdev/Makefile.objs | 2 +- > hw/9pfs/Kconfig | 5 +++++ > 3 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/Kconfig.host b/Kconfig.host > index aec9536..bb6e116 100644 > --- a/Kconfig.host > +++ b/Kconfig.host > @@ -28,6 +28,7 @@ config VHOST_USER > > config XEN > bool > + select FSDEV_9P if VIRTFS There is something odd with CONFIG_XEN, as it is used to select accelerator and hardware. > > config VIRTFS > bool > diff --git a/fsdev/Makefile.objs b/fsdev/Makefile.objs > index 24bbb3e..42cd70c 100644 > --- a/fsdev/Makefile.objs > +++ b/fsdev/Makefile.objs > @@ -1,6 +1,6 @@ > # Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add. > # only pull in the actual 9p backend if we also enabled virtio or xen. > -ifeq ($(call land,$(CONFIG_VIRTFS),$(call lor,$(CONFIG_VIRTIO_9P),$(CONFIG_XEN))),y) > +ifeq ($(CONFIG_FSDEV_9P),y) > common-obj-y = qemu-fsdev.o 9p-marshal.o 9p-iov-marshal.o > else > common-obj-y = qemu-fsdev-dummy.o > diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig > index 8c5032c..3ae5749 100644 > --- a/hw/9pfs/Kconfig > +++ b/hw/9pfs/Kconfig > @@ -1,4 +1,9 @@ > +config FSDEV_9P > + bool > + depends on VIRTFS Using "depends on VIRTFS && 9PFS" instead helps to reduce the link failure using --without-default-devices. > + > config VIRTIO_9P > bool > default y > depends on VIRTFS && VIRTIO > + select FSDEV_9P Here I used "depends on FSDEV_9P && VIRTIO" but this doesn't look right... Is it possible to include "config-devices.h" in hw/xen/xen-legacy-backend.c to use CONFIG_9PFS? xen_be_register_common() unconditionally calls: xen_be_register("9pfs", &xen_9pfs_ops); As I have no much idea about Xen & 9pfs, I'm a bit lost here (regarding the dependencies order). Thanks, Phil.
diff --git a/Kconfig.host b/Kconfig.host index aec9536..bb6e116 100644 --- a/Kconfig.host +++ b/Kconfig.host @@ -28,6 +28,7 @@ config VHOST_USER config XEN bool + select FSDEV_9P if VIRTFS config VIRTFS bool diff --git a/fsdev/Makefile.objs b/fsdev/Makefile.objs index 24bbb3e..42cd70c 100644 --- a/fsdev/Makefile.objs +++ b/fsdev/Makefile.objs @@ -1,6 +1,6 @@ # Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add. # only pull in the actual 9p backend if we also enabled virtio or xen. -ifeq ($(call land,$(CONFIG_VIRTFS),$(call lor,$(CONFIG_VIRTIO_9P),$(CONFIG_XEN))),y) +ifeq ($(CONFIG_FSDEV_9P),y) common-obj-y = qemu-fsdev.o 9p-marshal.o 9p-iov-marshal.o else common-obj-y = qemu-fsdev-dummy.o diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig index 8c5032c..3ae5749 100644 --- a/hw/9pfs/Kconfig +++ b/hw/9pfs/Kconfig @@ -1,4 +1,9 @@ +config FSDEV_9P + bool + depends on VIRTFS + config VIRTIO_9P bool default y depends on VIRTFS && VIRTIO + select FSDEV_9P
Express the complex conditions in Kconfig rather than Makefiles, since Kconfig is better suited at expressing dependencies and detecting contradictions. Cc: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Kconfig.host | 1 + fsdev/Makefile.objs | 2 +- hw/9pfs/Kconfig | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-)