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 > FAIL > 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 endif common-obj-$(call lnot,$(CONFIG_LINUX)) += vhost-stub.o thanks -- PMM