On 08.08.2017 18:26, Greg Kurz wrote: > On Tue, 8 Aug 2017 17:38:27 +0200 > Cornelia Huck <[email protected]> wrote: > >> Nothing in fsdev/ or hw/9pfs/ depends on pci; it should rather depend >> on CONFIG_VIRTFS and on the presence of an appropriate virtio transport >> device. >> >> Let's introduce CONFIG_VIRTIO_CCW to cover s390x and check for >> CONFIG_VIRTFS && (CONFIG_VIRTIO_PCI || CONFIG_VIRTIO_CCW). >> >> Signed-off-by: Cornelia Huck <[email protected]> >> --- >> >> This is the alternative approach to "9pfs: fix and simplify dependencies". >> Uglier; but probably not broken... >> > > Yikes. I don't know why yet but this doesn't work for PCI-less targets > like cris-softmmu... > > LINK cris-softmmu/qemu-system-cris > vl.o: In function `fsdev_init_func': > vl.c:2360: undefined reference to `qemu_fsdev_add' > >> --- >> default-configs/s390x-softmmu.mak | 1 + >> fsdev/Makefile.objs | 9 +++------ >> hw/Makefile.objs | 2 +- >> 3 files changed, 5 insertions(+), 7 deletions(-) >> >> diff --git a/default-configs/s390x-softmmu.mak >> b/default-configs/s390x-softmmu.mak >> index 51191b77df..e4c5236ceb 100644 >> --- a/default-configs/s390x-softmmu.mak >> +++ b/default-configs/s390x-softmmu.mak >> @@ -8,3 +8,4 @@ CONFIG_S390_FLIC=y >> CONFIG_S390_FLIC_KVM=$(CONFIG_KVM) >> CONFIG_VFIO_CCW=$(CONFIG_LINUX) >> CONFIG_WDT_DIAG288=y >> +CONFIG_VIRTIO_CCW=y >> diff --git a/fsdev/Makefile.objs b/fsdev/Makefile.objs >> index 659df6e187..10d8caa291 100644 >> --- a/fsdev/Makefile.objs >> +++ b/fsdev/Makefile.objs >> @@ -1,10 +1,7 @@ >> -ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy) >> # Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add. >> -# only pull in the actual virtio-9p device if we also enabled virtio. >> -common-obj-y = qemu-fsdev.o 9p-marshal.o 9p-iov-marshal.o >> -else >> -common-obj-y = qemu-fsdev-dummy.o >> -endif >> +# only pull in the actual virtio-9p device if we also enabled a virtio >> backend. >> +common-obj-$(call land, $(CONFIG_VIRTFS),$(call lor, >> $(CONFIG_VIRTIO_PCI),$(CONFIG_VIRTIO_CCW)))= qemu-fsdev.o 9p-marshal.o >> 9p-iov-marshal.o >> +common-obj-$(call lnot, $(call land, $(CONFIG_VIRTFS),$(call lor, >> $(CONFIG_VIRTIO_PCI),$(CONFIG_VIRTIO_CCW)))) = qemu-fsdev-dummy.o >> common-obj-y += qemu-fsdev-opts.o qemu-fsdev-throttle.o >> >> # Toplevel always builds this; targets without virtio will put it in >> diff --git a/hw/Makefile.objs b/hw/Makefile.objs >> index a2c61f6b09..10942fe0b4 100644 >> --- a/hw/Makefile.objs >> +++ b/hw/Makefile.objs >> @@ -1,4 +1,4 @@ >> -devices-dirs-$(call land, $(CONFIG_VIRTIO),$(call >> land,$(CONFIG_VIRTFS),$(CONFIG_PCI))) += 9pfs/ >> +devices-dirs-$(call land, $(CONFIG_VIRTFS),$(call >> lor,$(CONFIG_VIRTIO_PCI),$(CONFIG_VIRTIO_CCW))) += 9pfs/ >> devices-dirs-$(CONFIG_SOFTMMU) += acpi/ >> devices-dirs-$(CONFIG_SOFTMMU) += adc/ >> devices-dirs-$(CONFIG_SOFTMMU) += audio/
I think the problem are the white spaces after a ",". For example for
the following test code in a makefile:
@echo test1: $(call lnot, n)
@echo test2: $(call lnot,n)
I get the following output:
test1: n
test2: y
Hope that helps,
Thomas
signature.asc
Description: OpenPGP digital signature
