On Thu, Dec 17, 2020 at 1:41 PM Paolo Bonzini <pbonz...@redhat.com> wrote:
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > configure | 30 ++++-------------------------- > meson.build | 10 ++++++---- > meson_options.txt | 2 ++ > migration/meson.build | 2 +- > 4 files changed, 13 insertions(+), 31 deletions(-) > > diff --git a/configure b/configure > index ea5650acca..649da881a2 100755 > --- a/configure > +++ b/configure > @@ -398,7 +398,7 @@ lzo="auto" > snappy="auto" > bzip2="auto" > lzfse="auto" > -zstd="$default_feature" > +zstd="auto" > guest_agent="$default_feature" > guest_agent_with_vss="no" > guest_agent_ntddscsi="no" > @@ -1328,9 +1328,9 @@ for opt do > ;; > --disable-lzfse) lzfse="disabled" > ;; > - --disable-zstd) zstd="no" > + --disable-zstd) zstd="disabled" > ;; > - --enable-zstd) zstd="yes" > + --enable-zstd) zstd="enabled" > ;; > --enable-guest-agent) guest_agent="yes" > ;; > @@ -2458,23 +2458,6 @@ EOF > fi > fi > > -########################################## > -# zstd check > - > -if test "$zstd" != "no" ; then > - libzstd_minver="1.4.0" > - if $pkg_config --atleast-version=$libzstd_minver libzstd ; then > - zstd_cflags="$($pkg_config --cflags libzstd)" > - zstd_libs="$($pkg_config --libs libzstd)" > - zstd="yes" > - else > - if test "$zstd" = "yes" ; then > - feature_not_found "libzstd" "Install libzstd devel" > - fi > - zstd="no" > - fi > -fi > - > ########################################## > # libseccomp check > > @@ -6070,12 +6053,6 @@ if test "$avx512f_opt" = "yes" ; then > echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak > fi > > -if test "$zstd" = "yes" ; then > - echo "CONFIG_ZSTD=y" >> $config_host_mak > - echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak > - echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak > -fi > - > if test "$seccomp" = "yes"; then > echo "CONFIG_SECCOMP=y" >> $config_host_mak > echo "SECCOMP_CFLAGS=$seccomp_cflags" >> $config_host_mak > @@ -6629,6 +6606,7 @@ NINJA=$ninja $meson setup \ > -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 > -Dlibiscsi=$libiscsi \ > -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses > -Dlibudev=$libudev\ > -Dlibssh=$libssh -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy > -Dlzfse=$lzfse \ > + -Dzstd=$zstd \ > -Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \ > -Dvhost_user_blk_server=$vhost_user_blk_server \ > -Dfuse=$fuse -Dfuse_lseek=$fuse_lseek \ > diff --git a/meson.build b/meson.build > index c02d9c3e1a..93a95d7a7f 100644 > --- a/meson.build > +++ b/meson.build > @@ -380,9 +380,10 @@ if not get_option('libiscsi').auto() or have_block > method: 'pkg-config', static: enable_static) > endif > zstd = not_found > -if 'CONFIG_ZSTD' in config_host > - zstd = declare_dependency(compile_args: > config_host['ZSTD_CFLAGS'].split(), > - link_args: config_host['ZSTD_LIBS'].split()) > +if not get_option('zstd').auto() or have_block > + zstd = dependency('zstd', version: '>=1.4.0', > -> libzstd Interestingly, meson didn't seem to overwrite config-host.h correctly (that's how I noticed failed to link). I removed it and now it regenerates it correctly.. weird. + required: get_option('zstd'), > + method: 'pkg-config', static: enable_static) > endif > gbm = not_found > if 'CONFIG_GBM' in config_host > @@ -1003,6 +1004,7 @@ config_host_data.set('CONFIG_KEYUTILS', > keyutils.found()) > config_host_data.set('CONFIG_GETTID', has_gettid) > config_host_data.set('CONFIG_MALLOC_TRIM', has_malloc_trim) > config_host_data.set('CONFIG_STATX', has_statx) > +config_host_data.set('CONFIG_ZSTD', zstd.found()) > config_host_data.set('CONFIG_FUSE', fuse.found()) > config_host_data.set('CONFIG_FUSE_LSEEK', fuse_lseek.found()) > config_host_data.set('CONFIG_CFI', get_option('cfi')) > @@ -2377,7 +2379,7 @@ summary_info += {'lzo support': lzo.found()} > summary_info += {'snappy support': snappy.found()} > summary_info += {'bzip2 support': libbzip2.found()} > summary_info += {'lzfse support': liblzfse.found()} > -summary_info += {'zstd support': config_host.has_key('CONFIG_ZSTD')} > +summary_info += {'zstd support': zstd.found()} > summary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')} > summary_info += {'libxml2': > config_host.has_key('CONFIG_LIBXML2')} > summary_info += {'memory allocator': get_option('malloc')} > diff --git a/meson_options.txt b/meson_options.txt > index f74a3d78c4..5a1de9b1fe 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -92,6 +92,8 @@ option('virtiofsd', type: 'feature', value: 'auto', > description: 'build virtiofs daemon (virtiofsd)') > option('vhost_user_blk_server', type: 'feature', value: 'auto', > description: 'build vhost-user-blk server') > +option('zstd', type : 'feature', value : 'auto', > + description: 'zstd compression support') > option('fuse', type: 'feature', value: 'auto', > description: 'FUSE block device export') > option('fuse_lseek', type : 'feature', value : 'auto', > diff --git a/migration/meson.build b/migration/meson.build > index 980e37865c..c783f2f2ae 100644 > --- a/migration/meson.build > +++ b/migration/meson.build > @@ -29,6 +29,6 @@ softmmu_ss.add(files( > > softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c')) > softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: > files('block.c')) > -softmmu_ss.add(when: 'CONFIG_ZSTD', if_true: [files('multifd-zstd.c'), > zstd]) > +softmmu_ss.add(when: zstd, if_true: files('multifd-zstd.c')) > > specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('dirtyrate.c', > 'ram.c')) > -- > 2.29.2 > > >