On 12 February 2018 at 09:35, Peter Maydell <peter.mayd...@linaro.org> wrote:
> This asserts in 'make check' for NetBSD, FreeBSD, OpenBSD, OSX:
> TEST: tests/device-introspect-test... (pid=19530)
>   /aarch64/device/introspect/list:                                     OK
>   /aarch64/device/introspect/list-fields:                              OK
>   /aarch64/device/introspect/none:                                     OK
>   /aarch64/device/introspect/abstract:                                 OK
>   /aarch64/device/introspect/concrete:                                 **
> ERROR:/root/qemu/qom/object.c:372:object_initialize_with_type:
> assertion failed: (type != NULL)
> Broken pipe
> GTester: last random seed: R02Sd4e2c04f6ac00d843a31ccac4de0d914
> (pid=12686)
>   /aarch64/device/introspect/abstract-interfaces:                      OK
> FAIL: tests/device-introspect-test
> (other archs fail too, aarch64 is just the first one we hit). This
> error is often "device A instantiates device B, but device B is
> conditionally compiled in and A is always compiled; so test fails
> trying to create device A on hosts where device B isn't built" I think.

This part is indeed that problem -- the 'virtio-crypto-device' object
is built only if CONFIG_LINUX, but 'virtio-crypto-pci' is built if
CONFIG_VIRTIO_PCI, so on systems where the latter is true but not the
former you get a virtio-crypto-pci device that crashes when instantiated.

The fix should be
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -8,7 +8,7 @@ obj-y += virtio.o virtio-balloon.o
 obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
 obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
 obj-$(CONFIG_LINUX) += virtio-crypto.o
-obj-$(CONFIG_VIRTIO_PCI) += virtio-crypto-pci.o
+obj-$(call land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-pci.o

 common-obj-$(call lnot,$(CONFIG_LINUX)) += vhost-stub.o

-- PMM

Reply via email to