[PATCH-for-5.2 v2] configure: Check vhost-user is available for vhost-user-blk-server

Philippe Mathieu-Daudé posted 1 patch 3 years, 5 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
configure | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH-for-5.2 v2] configure: Check vhost-user is available for vhost-user-blk-server
Posted by Philippe Mathieu-Daudé 3 years, 5 months ago
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

Supersedes: <20201106190409.10571-1-philmd@redhat.com>
---
 configure | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 805f7791503..39b65dcd070 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
@@ -2389,7 +2393,6 @@ if test "$vhost_net" = ""; then
 fi
 
 # 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
-- 
2.26.2

Re: [PATCH-for-5.2 v2] configure: Check vhost-user is available for vhost-user-blk-server
Posted by Philippe Mathieu-Daudé 3 years, 5 months ago
On 11/9/20 3:03 PM, 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
> 
> Supersedes: <20201106190409.10571-1-philmd@redhat.com>
> ---
>  configure | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 805f7791503..39b65dcd070 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
> @@ -2389,7 +2393,6 @@ if test "$vhost_net" = ""; then
>  fi
>  
>  # libvhost-user is Linux-only
> -test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux

Pfff I didn't meant to commit this hunk.
I'll respin, sorry.

>  if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>    error_exit "--enable-vhost-user-blk-server is only available on Linux"
>  fi
> 


Re: [PATCH-for-5.2 v2] configure: Check vhost-user is available for vhost-user-blk-server
Posted by Philippe Mathieu-Daudé 3 years, 5 months ago
On Mon, Nov 9, 2020 at 3:07 PM Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> On 11/9/20 3:03 PM, 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
> >
> > Supersedes: <20201106190409.10571-1-philmd@redhat.com>
> > ---
> >  configure | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index 805f7791503..39b65dcd070 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
> > @@ -2389,7 +2393,6 @@ if test "$vhost_net" = ""; then
> >  fi
> >
> >  # libvhost-user is Linux-only
> > -test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
>
> Pfff I didn't meant to commit this hunk.
> I'll respin, sorry.

Thomas reviewed v3 and finally v2 is better...

>
> >  if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
> >    error_exit "--enable-vhost-user-blk-server is only available on Linux"
> >  fi
> >
>