Message ID | 20201109140730.2600017-1-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PATCH-for-5.2,v3] configure: Check vhost-user is available for vhost-user-blk-server | expand |
On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: > Check vhost-user is available when building vhost-user-blk-server. > > This fixes: > > $ ../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 > > Now we get: > > $ ../configure \ > --disable-vhost-user --enable-vhost-user-blk-server && \ > ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user > > Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > Since v1: > - Addressed Thomas review comments > https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html > --- > configure | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/configure b/configure > index 805f7791503..3124be82da1 100755 > --- a/configure > +++ b/configure > @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user > if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then > error_exit "--enable-vhost-user-fs requires --enable-vhost-user" > fi > +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user > +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then > + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" > +fi A little bit later in this file, we've got : # libvhost-user is Linux-only test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then error_exit "--enable-vhost-user-blk-server is only available on Linux" fi I think it would be better to add the new code there instead. Also maybe better do something like: test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ && vhost_user_blk_server=$linux instead? Thomas
On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote: > On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: > > Check vhost-user is available when building vhost-user-blk-server. > > > > This fixes: > > > > $ ../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 > > > > Now we get: > > > > $ ../configure \ > > --disable-vhost-user --enable-vhost-user-blk-server && \ > > ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user > > > > Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > > --- > > Since v1: > > - Addressed Thomas review comments > > https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html > > --- > > configure | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/configure b/configure > > index 805f7791503..3124be82da1 100755 > > --- a/configure > > +++ b/configure > > @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user > > if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then > > error_exit "--enable-vhost-user-fs requires --enable-vhost-user" > > fi > > +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user > > +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then > > + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" > > +fi > > A little bit later in this file, we've got : > > # libvhost-user is Linux-only > test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux > if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then > error_exit "--enable-vhost-user-blk-server is only available on Linux" > fi > > I think it would be better to add the new code there instead. > Also maybe better do something like: > > test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ > && vhost_user_blk_server=$linux > > instead? I understood this option is similar to the other vhost-user related ones and should be treated the same way. > > Thomas >
On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote: > On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote: >> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: >>> Check vhost-user is available when building vhost-user-blk-server. >>> >>> This fixes: >>> >>> $ ../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 >>> >>> Now we get: >>> >>> $ ../configure \ >>> --disable-vhost-user --enable-vhost-user-blk-server && \ >>> ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user >>> >>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") >>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> --- >>> Since v1: >>> - Addressed Thomas review comments >>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html >>> --- >>> configure | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/configure b/configure >>> index 805f7791503..3124be82da1 100755 >>> --- a/configure >>> +++ b/configure >>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user >>> if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then >>> error_exit "--enable-vhost-user-fs requires --enable-vhost-user" >>> fi >>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user >>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then >>> + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" >>> +fi >> >> A little bit later in this file, we've got : >> >> # libvhost-user is Linux-only >> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux >> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then >> error_exit "--enable-vhost-user-blk-server is only available on Linux" >> fi >> >> I think it would be better to add the new code there instead. >> Also maybe better do something like: >> >> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ >> && vhost_user_blk_server=$linux >> >> instead? > > I understood this option is similar to the other vhost-user related ones > and should be treated the same way. But the second check does not make much sense anymore after your change, since "$vhost_user_blk_server" is certainly not empty anymore. So the two checks IMHO have to be combined. Thomas
On 11/9/20 7:44 PM, Thomas Huth wrote: > On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote: >> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote: >>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: >>>> Check vhost-user is available when building vhost-user-blk-server. >>>> >>>> This fixes: >>>> >>>> $ ../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 >>>> >>>> Now we get: >>>> >>>> $ ../configure \ >>>> --disable-vhost-user --enable-vhost-user-blk-server && \ >>>> ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user >>>> >>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") >>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>>> --- >>>> Since v1: >>>> - Addressed Thomas review comments >>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html >>>> --- >>>> configure | 4 ++++ >>>> 1 file changed, 4 insertions(+) >>>> >>>> diff --git a/configure b/configure >>>> index 805f7791503..3124be82da1 100755 >>>> --- a/configure >>>> +++ b/configure >>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user >>>> if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then >>>> error_exit "--enable-vhost-user-fs requires --enable-vhost-user" >>>> fi >>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user >>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then >>>> + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" >>>> +fi >>> >>> A little bit later in this file, we've got : >>> >>> # libvhost-user is Linux-only >>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux >>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then >>> error_exit "--enable-vhost-user-blk-server is only available on Linux" >>> fi >>> >>> I think it would be better to add the new code there instead. >>> Also maybe better do something like: >>> >>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ >>> && vhost_user_blk_server=$linux >>> >>> instead? >> >> I understood this option is similar to the other vhost-user related ones >> and should be treated the same way. > > But the second check does not make much sense anymore after your change, > since "$vhost_user_blk_server" is certainly not empty anymore. So the two > checks IMHO have to be combined. Ah now I see it... You are right, thanks for the review :) Phil.
On 11/9/20 7:52 PM, Philippe Mathieu-Daudé wrote: > On 11/9/20 7:44 PM, Thomas Huth wrote: >> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote: >>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote: >>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: >>>>> Check vhost-user is available when building vhost-user-blk-server. >>>>> >>>>> This fixes: >>>>> >>>>> $ ../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 >>>>> >>>>> Now we get: >>>>> >>>>> $ ../configure \ >>>>> --disable-vhost-user --enable-vhost-user-blk-server && \ >>>>> ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user >>>>> >>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") >>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>>>> --- >>>>> Since v1: >>>>> - Addressed Thomas review comments >>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html >>>>> --- >>>>> configure | 4 ++++ >>>>> 1 file changed, 4 insertions(+) >>>>> >>>>> diff --git a/configure b/configure >>>>> index 805f7791503..3124be82da1 100755 >>>>> --- a/configure >>>>> +++ b/configure >>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user >>>>> if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then >>>>> error_exit "--enable-vhost-user-fs requires --enable-vhost-user" >>>>> fi >>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user >>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then >>>>> + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" >>>>> +fi >>>> >>>> A little bit later in this file, we've got : >>>> >>>> # libvhost-user is Linux-only >>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux >>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then >>>> error_exit "--enable-vhost-user-blk-server is only available on Linux" >>>> fi >>>> >>>> I think it would be better to add the new code there instead. >>>> Also maybe better do something like: >>>> >>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ >>>> && vhost_user_blk_server=$linux >>>> >>>> instead? >>> >>> I understood this option is similar to the other vhost-user related ones >>> and should be treated the same way. >> >> But the second check does not make much sense anymore after your change, >> since "$vhost_user_blk_server" is certainly not empty anymore. So the two >> checks IMHO have to be combined. > > Ah now I see it... You are right, thanks for the review :) So we are back to v2: https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02333.html
On 09/11/2020 20.15, Philippe Mathieu-Daudé wrote: > On 11/9/20 7:52 PM, Philippe Mathieu-Daudé wrote: >> On 11/9/20 7:44 PM, Thomas Huth wrote: >>> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote: >>>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote: >>>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: >>>>>> Check vhost-user is available when building vhost-user-blk-server. >>>>>> >>>>>> This fixes: >>>>>> >>>>>> $ ../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 >>>>>> >>>>>> Now we get: >>>>>> >>>>>> $ ../configure \ >>>>>> --disable-vhost-user --enable-vhost-user-blk-server && \ >>>>>> ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user >>>>>> >>>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") >>>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>>>>> --- >>>>>> Since v1: >>>>>> - Addressed Thomas review comments >>>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html >>>>>> --- >>>>>> configure | 4 ++++ >>>>>> 1 file changed, 4 insertions(+) >>>>>> >>>>>> diff --git a/configure b/configure >>>>>> index 805f7791503..3124be82da1 100755 >>>>>> --- a/configure >>>>>> +++ b/configure >>>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user >>>>>> if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then >>>>>> error_exit "--enable-vhost-user-fs requires --enable-vhost-user" >>>>>> fi >>>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user >>>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then >>>>>> + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" >>>>>> +fi >>>>> >>>>> A little bit later in this file, we've got : >>>>> >>>>> # libvhost-user is Linux-only >>>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux >>>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then >>>>> error_exit "--enable-vhost-user-blk-server is only available on Linux" >>>>> fi >>>>> >>>>> I think it would be better to add the new code there instead. >>>>> Also maybe better do something like: >>>>> >>>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ >>>>> && vhost_user_blk_server=$linux >>>>> >>>>> instead? >>>> >>>> I understood this option is similar to the other vhost-user related ones >>>> and should be treated the same way. >>> >>> But the second check does not make much sense anymore after your change, >>> since "$vhost_user_blk_server" is certainly not empty anymore. So the two >>> checks IMHO have to be combined. >> >> Ah now I see it... You are right, thanks for the review :) > > So we are back to v2: > https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02333.html That looks wrong to me, too, since the default value is now $vhost_user and not $linux ... so it could get enabled by default on non-Linux systems, too. Thomas
On 11/10/20 4:15 AM, Thomas Huth wrote: > On 09/11/2020 20.15, Philippe Mathieu-Daudé wrote: >> On 11/9/20 7:52 PM, Philippe Mathieu-Daudé wrote: >>> On 11/9/20 7:44 PM, Thomas Huth wrote: >>>> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote: >>>>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote: >>>>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote: >>>>>>> Check vhost-user is available when building vhost-user-blk-server. >>>>>>> >>>>>>> This fixes: >>>>>>> >>>>>>> $ ../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 >>>>>>> >>>>>>> Now we get: >>>>>>> >>>>>>> $ ../configure \ >>>>>>> --disable-vhost-user --enable-vhost-user-blk-server && \ >>>>>>> ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user >>>>>>> >>>>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") >>>>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>>>>>> --- >>>>>>> Since v1: >>>>>>> - Addressed Thomas review comments >>>>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html >>>>>>> --- >>>>>>> configure | 4 ++++ >>>>>>> 1 file changed, 4 insertions(+) >>>>>>> >>>>>>> diff --git a/configure b/configure >>>>>>> index 805f7791503..3124be82da1 100755 >>>>>>> --- a/configure >>>>>>> +++ b/configure >>>>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user >>>>>>> if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then >>>>>>> error_exit "--enable-vhost-user-fs requires --enable-vhost-user" >>>>>>> fi >>>>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user >>>>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then >>>>>>> + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" >>>>>>> +fi >>>>>> >>>>>> A little bit later in this file, we've got : >>>>>> >>>>>> # libvhost-user is Linux-only >>>>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux >>>>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then >>>>>> error_exit "--enable-vhost-user-blk-server is only available on Linux" >>>>>> fi >>>>>> >>>>>> I think it would be better to add the new code there instead. >>>>>> Also maybe better do something like: >>>>>> >>>>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \ >>>>>> && vhost_user_blk_server=$linux >>>>>> >>>>>> instead? >>>>> >>>>> I understood this option is similar to the other vhost-user related ones >>>>> and should be treated the same way. >>>> >>>> But the second check does not make much sense anymore after your change, >>>> since "$vhost_user_blk_server" is certainly not empty anymore. So the two >>>> checks IMHO have to be combined. >>> >>> Ah now I see it... You are right, thanks for the review :) >> >> So we are back to v2: >> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02333.html > > That looks wrong to me, too, since the default value is now $vhost_user and > not $linux ... so it could get enabled by default on non-Linux systems, too. I'm giving up. Let see if Alex wants this fixed (as he added the job) or if we disable/remove the job if nobody worries about this config. > > Thomas >
diff --git a/configure b/configure index 805f7791503..3124be82da1 100755 --- a/configure +++ b/configure @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then error_exit "--enable-vhost-user-fs requires --enable-vhost-user" fi +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then + error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user" +fi #vhost-vdpa backends test "$vhost_net_vdpa" = "" && vhost_net_vdpa=$vhost_vdpa if test "$vhost_net_vdpa" = "yes" && test "$vhost_vdpa" = "no"; then
Check vhost-user is available when building vhost-user-blk-server. This fixes: $ ../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 Now we get: $ ../configure \ --disable-vhost-user --enable-vhost-user-blk-server && \ ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server") Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- Since v1: - Addressed Thomas review comments https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html --- configure | 4 ++++ 1 file changed, 4 insertions(+)