qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: QEMU Developers <qemu-devel@nongnu.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH-for-5.2 v3] configure: Check vhost-user is available for vhost-user-blk-server
Date: Mon, 9 Nov 2020 19:52:00 +0100	[thread overview]
Message-ID: <b6c81bd3-7b18-0610-09e8-a68db4f7f734@redhat.com> (raw)
In-Reply-To: <11346f41-40eb-f8e0-7405-558de89513d7@redhat.com>

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.



  reply	other threads:[~2020-11-09 18:53 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-09 14:07 [PATCH-for-5.2 v3] configure: Check vhost-user is available for vhost-user-blk-server Philippe Mathieu-Daudé
2020-11-09 17:22 ` Thomas Huth
2020-11-09 18:41   ` Philippe Mathieu-Daudé
2020-11-09 18:44     ` Thomas Huth
2020-11-09 18:52       ` Philippe Mathieu-Daudé [this message]
2020-11-09 19:15         ` Philippe Mathieu-Daudé
2020-11-10  3:15           ` Thomas Huth
2020-11-10  7:54             ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b6c81bd3-7b18-0610-09e8-a68db4f7f734@redhat.com \
    --to=philmd@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).