On 25/09/20 15:42, Stefan Hajnoczi wrote: > Don't compile contrib/libvhost-user/libvhost-user.c again. Instead build > the static library once and then reuse it throughout QEMU. > > Also switch from CONFIG_LINUX to CONFIG_VHOST_USER, which is what the > vhost-user tools (vhost-user-gpu, etc) do. > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
Looks good. Unrelated to this patch, probably the contrib/libvhost-user directory should be moved under tools. Paolo > --- > block/export/export.c | 8 ++++---- > block/export/meson.build | 2 +- > contrib/libvhost-user/meson.build | 1 + > meson.build | 6 +++++- > tests/qtest/meson.build | 2 +- > util/meson.build | 4 +++- > 6 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/block/export/export.c b/block/export/export.c > index bd7cac241f..550897e236 100644 > --- a/block/export/export.c > +++ b/block/export/export.c > @@ -17,17 +17,17 @@ > #include "sysemu/block-backend.h" > #include "block/export.h" > #include "block/nbd.h" > -#if CONFIG_LINUX > -#include "block/export/vhost-user-blk-server.h" > -#endif > #include "qapi/error.h" > #include "qapi/qapi-commands-block-export.h" > #include "qapi/qapi-events-block-export.h" > #include "qemu/id.h" > +#ifdef CONFIG_VHOST_USER > +#include "vhost-user-blk-server.h" > +#endif > > static const BlockExportDriver *blk_exp_drivers[] = { > &blk_exp_nbd, > -#if CONFIG_LINUX > +#ifdef CONFIG_VHOST_USER > &blk_exp_vhost_user_blk, > #endif > }; > diff --git a/block/export/meson.build b/block/export/meson.build > index ef3a9576f7..469a7aa0f5 100644 > --- a/block/export/meson.build > +++ b/block/export/meson.build > @@ -1,2 +1,2 @@ > block_ss.add(files('export.c')) > -block_ss.add(when: 'CONFIG_LINUX', if_true: files('vhost-user-blk-server.c', > '../../contrib/libvhost-user/libvhost-user.c')) > +block_ss.add(when: 'CONFIG_VHOST_USER', if_true: > files('vhost-user-blk-server.c')) > diff --git a/contrib/libvhost-user/meson.build > b/contrib/libvhost-user/meson.build > index e68dd1a581..a261e7665f 100644 > --- a/contrib/libvhost-user/meson.build > +++ b/contrib/libvhost-user/meson.build > @@ -1,3 +1,4 @@ > libvhost_user = static_library('vhost-user', > files('libvhost-user.c', > 'libvhost-user-glib.c'), > build_by_default: false) > +vhost_user = declare_dependency(link_with: libvhost_user) > diff --git a/meson.build b/meson.build > index 4c6c7310fa..eb84b97ebb 100644 > --- a/meson.build > +++ b/meson.build > @@ -788,6 +788,11 @@ trace_events_subdirs += [ > 'util', > ] > > +vhost_user = not_found > +if 'CONFIG_VHOST_USER' in config_host > + subdir('contrib/libvhost-user') > +endif > + > subdir('qapi') > subdir('qobject') > subdir('stubs') > @@ -1169,7 +1174,6 @@ if have_tools > install: true) > > if 'CONFIG_VHOST_USER' in config_host > - subdir('contrib/libvhost-user') > subdir('contrib/vhost-user-blk') > subdir('contrib/vhost-user-gpu') > subdir('contrib/vhost-user-input') > diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build > index c72821b09a..aa8d0985e1 100644 > --- a/tests/qtest/meson.build > +++ b/tests/qtest/meson.build > @@ -191,7 +191,7 @@ qos_test_ss.add( > ) > qos_test_ss.add(when: 'CONFIG_VIRTFS', if_true: files('virtio-9p-test.c')) > qos_test_ss.add(when: 'CONFIG_VHOST_USER', if_true: > files('vhost-user-test.c')) > -qos_test_ss.add(when: 'CONFIG_LINUX', if_true: > files('vhost-user-blk-test.c')) > +qos_test_ss.add(when: 'CONFIG_VHOST_USER', if_true: > files('vhost-user-blk-test.c')) > > extra_qtest_deps = { > 'bios-tables-test': [io], > diff --git a/util/meson.build b/util/meson.build > index 2296e81b34..9b2a7a5de9 100644 > --- a/util/meson.build > +++ b/util/meson.build > @@ -66,7 +66,9 @@ if have_block > util_ss.add(files('main-loop.c')) > util_ss.add(files('nvdimm-utils.c')) > util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', > 'qemu-coroutine-io.c')) > - util_ss.add(when: 'CONFIG_LINUX', if_true: files('vhost-user-server.c')) > + util_ss.add(when: 'CONFIG_VHOST_USER', if_true: [ > + files('vhost-user-server.c'), vhost_user > + ]) > util_ss.add(files('block-helpers.c')) > util_ss.add(files('qemu-coroutine-sleep.c')) > util_ss.add(files('qemu-co-shared-resource.c')) >