On Thu, Dec 17, 2020 at 1:40 PM Paolo Bonzini <pbonz...@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- > block/meson.build | 2 +- > configure | 29 ++++------------------------- > contrib/vhost-user-scsi/meson.build | 2 +- > meson.build | 10 ++++++---- > meson_options.txt | 2 ++ > 5 files changed, 14 insertions(+), 31 deletions(-) > > diff --git a/block/meson.build b/block/meson.build > index b02cb14aad..134034abb4 100644 > --- a/block/meson.build > +++ b/block/meson.build > @@ -59,7 +59,7 @@ block_ss.add(when: 'CONFIG_QED', if_true: files( > block_ss.add(when: [libxml2, 'CONFIG_PARALLELS'], if_true: > files('parallels.c')) > block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c', > 'win32-aio.c')) > block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), > coref, iokit]) > -block_ss.add(when: 'CONFIG_LIBISCSI', if_true: files('iscsi-opts.c')) > +block_ss.add(when: libiscsi, if_true: files('iscsi-opts.c')) > block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c')) > block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c')) > block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c')) > diff --git a/configure b/configure > index 082ac3bf35..e22c56e8f6 100755 > --- a/configure > +++ b/configure > @@ -406,7 +406,7 @@ guest_agent_msi="$default_feature" > vss_win32_sdk="$default_feature" > win_sdk="no" > want_tools="$default_feature" > -libiscsi="$default_feature" > +libiscsi="auto" > libnfs="$default_feature" > coroutine="" > coroutine_pool="$default_feature" > @@ -1139,9 +1139,9 @@ for opt do > ;; > --enable-spice) spice="yes" > ;; > - --disable-libiscsi) libiscsi="no" > + --disable-libiscsi) libiscsi="disabled" > ;; > - --enable-libiscsi) libiscsi="yes" > + --enable-libiscsi) libiscsi="enabled" > ;; > --disable-libnfs) libnfs="no" > ;; > @@ -4315,21 +4315,6 @@ if compile_prog "" "" ; then > bswap_h=yes > fi > > -########################################## > -# Do we have libiscsi >= 1.9.0 > -if test "$libiscsi" != "no" ; then > - if $pkg_config --atleast-version=1.9.0 libiscsi; then > - libiscsi="yes" > - libiscsi_cflags=$($pkg_config --cflags libiscsi) > - libiscsi_libs=$($pkg_config --libs libiscsi) > - else > - if test "$libiscsi" = "yes" ; then > - feature_not_found "libiscsi" "Install libiscsi >= 1.9.0" > - fi > - libiscsi="no" > - fi > -fi > - > ########################################## > # Do we need librt > # uClibc provides 2 versions of clock_gettime(), one with realtime > @@ -6231,12 +6216,6 @@ if test "$zstd" = "yes" ; then > echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak > fi > > -if test "$libiscsi" = "yes" ; then > - echo "CONFIG_LIBISCSI=y" >> $config_host_mak > - echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak > - echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak > -fi > - > if test "$libnfs" = "yes" ; then > echo "CONFIG_LIBNFS=y" >> $config_host_mak > echo "LIBNFS_LIBS=$libnfs_libs" >> $config_host_mak > @@ -6802,7 +6781,7 @@ NINJA=$ninja $meson setup \ > -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg > -Dvnc_png=$vnc_png \ > -Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f > -Dvirtiofsd=$virtiofsd \ > -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \ > - -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 \ > + -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 > -Dlibiscsi=$libiscsi \ > -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\ > -Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \ > -Dvhost_user_blk_server=$vhost_user_blk_server \ > diff --git a/contrib/vhost-user-scsi/meson.build > b/contrib/vhost-user-scsi/meson.build > index 044c50bf43..cc893f6f20 100644 > --- a/contrib/vhost-user-scsi/meson.build > +++ b/contrib/vhost-user-scsi/meson.build > @@ -1,4 +1,4 @@ > -if 'CONFIG_LIBISCSI' in config_host > +if libiscsi.found() > executable('vhost-user-scsi', files('vhost-user-scsi.c'), > dependencies: [qemuutil, libiscsi, vhost_user], > build_by_default: targetos == 'linux', > diff --git a/meson.build b/meson.build > index 9ba8eecf37..3f53a7f1b2 100644 > --- a/meson.build > +++ b/meson.build > @@ -372,9 +372,10 @@ if 'CONFIG_PLUGIN' in config_host > libdl = cc.find_library('dl', required: true) > endif > libiscsi = not_found > -if 'CONFIG_LIBISCSI' in config_host > - libiscsi = declare_dependency(compile_args: > config_host['LIBISCSI_CFLAGS'].split(), > - link_args: > config_host['LIBISCSI_LIBS'].split()) > +if not get_option('libiscsi').auto() or have_block > + libiscsi = dependency('libiscsi', version: '>=1.9.0', > + required: get_option('libiscsi'), > + method: 'pkg-config', static: enable_static) > endif > zstd = not_found > if 'CONFIG_ZSTD' in config_host > @@ -926,6 +927,7 @@ config_host_data.set('CONFIG_GLUSTERFS_FALLOCATE', > glusterfs.version().version_c > config_host_data.set('CONFIG_GLUSTERFS_ZEROFILL', > glusterfs.version().version_compare('>=6')) > config_host_data.set('CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT', > glusterfs_ftruncate_has_stat) > config_host_data.set('CONFIG_GLUSTERFS_IOCB_HAS_STAT', > glusterfs_iocb_has_stat) > +config_host_data.set('CONFIG_LIBISCSI', libiscsi.found()) > config_host_data.set('CONFIG_SDL', sdl.found()) > config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found()) > config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', > have_vhost_user_blk_server) > @@ -2283,7 +2285,7 @@ summary_info += {'libusb': > config_host.has_key('CONFIG_USB_LIBUSB')} > summary_info += {'usb net redir': > config_host.has_key('CONFIG_USB_REDIR')} > summary_info += {'OpenGL support': > config_host.has_key('CONFIG_OPENGL')} > summary_info += {'OpenGL dmabufs': > config_host.has_key('CONFIG_OPENGL_DMABUF')} > -summary_info += {'libiscsi support': > config_host.has_key('CONFIG_LIBISCSI')} > +summary_info += {'libiscsi support': libiscsi.found()} > summary_info += {'libnfs support': > config_host.has_key('CONFIG_LIBNFS')} > summary_info += {'build guest agent': > config_host.has_key('CONFIG_GUEST_AGENT')} > if targetos == 'windows' > diff --git a/meson_options.txt b/meson_options.txt > index fd16f3b399..b562d4f1a6 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -50,6 +50,8 @@ option('curl', type : 'feature', value : 'auto', > description: 'CURL block device driver') > option('glusterfs', type : 'feature', value : 'auto', > description: 'Glusterfs block device driver') > +option('libiscsi', type : 'feature', value : 'auto', > + description: 'libiscsi userspace initiator') > option('mpath', type : 'feature', value : 'auto', > description: 'Multipath persistent reservation passthrough') > option('iconv', type : 'feature', value : 'auto', > -- > 2.29.2 > > >