On 08.08.2017 18:26, Greg Kurz wrote:
> On Tue,  8 Aug 2017 17:38:27 +0200
> Cornelia Huck <coh...@redhat.com> 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 <coh...@redhat.com>
>> ---
>>
>> 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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to