On 08/11/2020 21.45, Philippe Mathieu-Daudé wrote: > Check vhost-user is available to build vhost-user-blk-server to fix: > > $ ../configure \ > --disable-vhost-user --enable-vhost-user-blk-server && \ > make qemu-nbd > ... > [505/505] Linking target qemu-nbd > FAILED: qemu-nbd > cc -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined > -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa > libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro > -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a > libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa > @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 > -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 > -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl > -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so > -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group > /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in > function `vu_blk_process_vq': > block/export/vhost-user-blk-server.c:203: undefined reference to > `vu_get_queue' > /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference > to `vu_queue_pop' > /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in > function `vu_blk_queue_set_started': > block/export/vhost-user-blk-server.c:228: undefined reference to > `vu_get_queue' > /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in > function `vu_blk_req_complete': > block/export/vhost-user-blk-server.c:55: undefined reference to > `vu_queue_push' > /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to > `vu_queue_notify' > /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in > function `vu_blk_queue_set_started': > block/export/vhost-user-blk-server.c:229: undefined reference to > `vu_set_queue_handler' > /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function > `vu_client_trip': > util/vhost-user-server.c:176: undefined reference to `vu_dispatch' > /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit' > /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function > `vu_accept': > util/vhost-user-server.c:291: undefined reference to `vu_init' > collect2: error: ld returned 1 exit status > ninja: build stopped: subcommand failed. > make: *** [Makefile:171: run-ninja] Error 1 > > Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > configure | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/configure b/configure > index 805f7791503..5079ebb416a 100755 > --- a/configure > +++ b/configure > @@ -2390,6 +2390,9 @@ fi > > # libvhost-user is Linux-only > test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux > +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then > + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" > +fi
This patch looks incomplete to me. If I now do: $ .../configure --target-list=x86_64-softmmu --disable-vhost-user I get: ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user ... but I did not say --enable-vhost-user-blk-server ! So if --disable-vhost-user has been given, it should also automatically disable all the other vhost-user switches, I think. Thomas