All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL v3 00/52] Misc patches for 2020-12-21
@ 2021-01-06 14:54 Paolo Bonzini
  2021-01-06 14:54 ` [PULL 42/52] lzo: convert to meson Paolo Bonzini
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-01-06 14:54 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 41192db338588051f21501abc13743e62b0a5605:

  Merge remote-tracking branch 'remotes/ehabkost-gl/tags/machine-next-pull-request' into staging (2021-01-01 22:57:15 +0000)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to c8b2b7fed9850356f5d88bc7da2f1cefe57289bf:

  win32: drop fd registration to the main-loop on setting non-block (2021-01-06 10:21:20 +0100)

----------------------------------------------------------------
From Alex's pull request:
* improve cross-build KVM coverage
* new --without-default-features configure flag
* add __repr__ for ConsoleSocket for debugging
* build tcg tests with -Werror
* test 32 bit builds with fedora
* remove last traces of debian9
* hotfix for centos8 powertools repo

* Move lots of feature detection code to meson (Alex, myself)
* CFI and LTO support (Daniele)
* test-char dangling pointer (Eduardo)
* Build system and win32 fixes (Marc-André)
* Initialization fixes (myself)
* TCG include cleanup (Richard, myself)
* x86 'int N' fix (Peter)

----------------------------------------------------------------

v2->v3: removed libssh conversion, limited lzo/snappy/lzfse for user-only builds
 
Alex Bennée (7):
      gitlab: include aarch64-softmmu and ppc64-softmmu cross-system-build
      configure: move gettext detection to meson.build
      configure: add --without-default-features
      python: add __repr__ to ConsoleSocket to aid debugging
      gitlab: move --without-default-devices build from Travis
      gitlab: add --without-default-features build
      tests/tcg: build tests with -Werror

Daniel P. Berrangé (1):
      tests: update for rename of CentOS8 PowerTools repo

Daniele Buono (5):
      configure,meson: add option to enable LTO
      cfi: Initial support for cfi-icall in QEMU
      check-block: enable iotests with cfi-icall
      configure,meson: support Control-Flow Integrity
      docs: Add CFI Documentation

Eduardo Habkost (2):
      test-char: Destroy chardev correctly at char_file_test_internal()
      qom: Assert that objects being destroyed have no parent

Marc-André Lureau (2):
      build-sys: fix -static linking of libvhost-user
      win32: drop fd registration to the main-loop on setting non-block

Paolo Bonzini (31):
      configure: document --without-default-{features,devices}
      vl: initialize displays _after_ exiting preconfiguration
      remove TCG includes from common code
      trace: do not include TCG helper tracepoints in no-TCG builds
      Makefile: add dummy target for build.ninja dependencies
      meson: fix detection of curses with pkgconfig
      meson: use pkg-config method for libudev
      meson: use dependency to gate block modules
      meson: cleanup Kconfig.host handling
      configure: remove useless code to check for Xen PCI passthrough
      configure: remove variable bogus_os
      configure: accept --enable-slirp
      configure: remove CONFIG_FILEVERSION and CONFIG_PRODUCTVERSION
      brlapi: convert to meson
      curl: remove compatibility code, require 7.29.0
      curl: convert to meson
      glusterfs: convert to meson
      bzip2: convert to meson
      libiscsi: convert to meson
      libnfs: convert to meson
      rbd: convert to meson
      lzo: convert to meson
      snappy: convert to meson
      lzfse: convert to meson
      zstd: convert to meson
      seccomp: convert to meson
      virtfs: convert to meson
      cap_ng: convert to meson
      libattr: convert to meson
      meson.build: convert --with-default-devices to meson
      configure: move tests/qemu-iotests/common.env generation to meson

Peter Maydell (1):
      target/i386: Check privilege level for protected mode 'int N' task gate

Richard Henderson (1):
      util: Extract flush_icache_range to cacheflush.c

Thomas Huth (2):
      gitlab-CI: Test 32-bit builds with the fedora-i386-cross container
      tests/docker: Remove the remainders of debian9 containers from the Makefile

 .gitlab-ci.d/crossbuilds.yml                      |  22 +-
 .gitlab-ci.yml                                    |  14 +
 .travis.yml                                       |   8 -
 MAINTAINERS                                       |   2 +
 Makefile                                          |   1 +
 accel/Kconfig                                     |   9 +
 accel/stubs/tcg-stub.c                            |   1 -
 accel/tcg/cpu-exec.c                              |  11 +
 accel/tcg/cputlb.c                                |   2 +-
 accel/tcg/translate-all.c                         |   2 +-
 accel/tcg/user-exec.c                             |   2 +-
 block/curl.c                                      |  28 -
 block/meson.build                                 |  22 +-
 chardev/meson.build                               |   2 +-
 configure                                         | 756 +++++-----------------
 contrib/elf2dmp/meson.build                       |   2 +-
 contrib/vhost-user-scsi/meson.build               |   2 +-
 cpu.c                                             |   2 +-
 docs/devel/control-flow-integrity.rst             | 137 ++++
 docs/devel/index.rst                              |   5 +-
 docs/devel/kconfig.rst                            |  19 +-
 hw/i386/kvmvapic.c                                |   1 -
 {accel/tcg => include/exec}/translate-all.h       |   0
 include/qemu/cacheflush.h                         |  24 +
 include/qemu/compiler.h                           |  11 +
 meson.build                                       | 410 +++++++++---
 meson_options.txt                                 |  47 +-
 migration/meson.build                             |   2 +-
 monitor/misc.c                                    |   1 -
 plugins/core.c                                    |  37 ++
 plugins/loader.c                                  |   7 +
 po/meson.build                                    |   2 +-
 python/qemu/console_socket.py                     |   7 +
 qom/object.c                                      |   1 +
 softmmu/meson.build                               |   2 +-
 softmmu/physmem.c                                 |   4 +-
 softmmu/qemu-seccomp.c                            |   2 -
 softmmu/vl.c                                      |   2 +-
 target/i386/tcg/seg_helper.c                      |  35 +-
 tcg/aarch64/tcg-target.h                          |   5 -
 tcg/arm/tcg-target.h                              |   5 -
 tcg/i386/tcg-target.h                             |   4 -
 tcg/mips/tcg-target.h                             |  11 -
 tcg/ppc/tcg-target.c.inc                          |  22 -
 tcg/ppc/tcg-target.h                              |   1 -
 tcg/riscv/tcg-target.h                            |   5 -
 tcg/s390/tcg-target.h                             |   4 -
 tcg/sparc/tcg-target.h                            |   8 -
 tcg/tcg.c                                         |   1 +
 tcg/tci.c                                         |   7 +
 tcg/tci/tcg-target.h                              |   4 -
 tests/check-block.sh                              |  18 +-
 tests/docker/Makefile.include                     |   6 +-
 tests/docker/dockerfiles/centos8.docker           |   5 +-
 tests/docker/dockerfiles/fedora-i386-cross.docker |  18 +-
 tests/qemu-iotests/common.env.in                  |   3 +
 tests/qemu-iotests/meson.build                    |   3 +
 tests/tcg/Makefile.target                         |   2 +-
 tests/test-char.c                                 |   2 +-
 tools/meson.build                                 |   6 +-
 trace/meson.build                                 |   2 +-
 util/cacheflush.c                                 |  71 ++
 util/main-loop.c                                  |  11 +
 util/meson.build                                  |   2 +-
 util/oslib-posix.c                                |  11 +
 util/oslib-win32.c                                |   1 -
 version.rc                                        |   4 +-
 67 files changed, 1012 insertions(+), 874 deletions(-)
 create mode 100644 docs/devel/control-flow-integrity.rst
 rename {accel/tcg => include/exec}/translate-all.h (100%)
 create mode 100644 include/qemu/cacheflush.h
 create mode 100644 tests/qemu-iotests/common.env.in
 create mode 100644 util/cacheflush.c
-- 
2.29.2



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PULL 42/52] lzo: convert to meson
  2021-01-06 14:54 [PULL v3 00/52] Misc patches for 2020-12-21 Paolo Bonzini
@ 2021-01-06 14:54 ` Paolo Bonzini
  2021-01-06 14:54 ` [PULL 43/52] snappy: " Paolo Bonzini
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-01-06 14:54 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure         | 32 ++++----------------------------
 meson.build       | 21 ++++++++++++++++++---
 meson_options.txt |  2 ++
 3 files changed, 24 insertions(+), 31 deletions(-)

diff --git a/configure b/configure
index 1904734259..934cb098aa 100755
--- a/configure
+++ b/configure
@@ -393,7 +393,7 @@ opengl_dmabuf="no"
 cpuid_h="no"
 avx2_opt="$default_feature"
 capstone="auto"
-lzo="$default_feature"
+lzo="auto"
 snappy="$default_feature"
 bzip2="auto"
 lzfse="$default_feature"
@@ -1311,9 +1311,9 @@ for opt do
   ;;
   --disable-zlib-test)
   ;;
-  --disable-lzo) lzo="no"
+  --disable-lzo) lzo="disabled"
   ;;
-  --enable-lzo) lzo="yes"
+  --enable-lzo) lzo="enabled"
   ;;
   --disable-snappy) snappy="no"
   ;;
@@ -2457,25 +2457,6 @@ EOF
   fi
 fi
 
-##########################################
-# lzo check
-
-if test "$lzo" != "no" ; then
-    cat > $TMPC << EOF
-#include <lzo/lzo1x.h>
-int main(void) { lzo_version(); return 0; }
-EOF
-    if compile_prog "" "-llzo2" ; then
-        lzo_libs="-llzo2"
-        lzo="yes"
-    else
-        if test "$lzo" = "yes"; then
-            feature_not_found "liblzo2" "Install liblzo2 devel"
-        fi
-        lzo="no"
-    fi
-fi
-
 ##########################################
 # snappy check
 
@@ -6157,11 +6138,6 @@ if test "$avx512f_opt" = "yes" ; then
   echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak
 fi
 
-if test "$lzo" = "yes" ; then
-  echo "CONFIG_LZO=y" >> $config_host_mak
-  echo "LZO_LIBS=$lzo_libs" >> $config_host_mak
-fi
-
 if test "$snappy" = "yes" ; then
   echo "CONFIG_SNAPPY=y" >> $config_host_mak
   echo "SNAPPY_LIBS=$snappy_libs" >> $config_host_mak
@@ -6741,7 +6717,7 @@ NINJA=$ninja $meson setup \
         -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
         -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
         -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
-        -Drbd=$rbd \
+        -Drbd=$rbd -Dlzo=$lzo \
         -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 f844fc51ab..34683d5030 100644
--- a/meson.build
+++ b/meson.build
@@ -749,10 +749,24 @@ snappy = not_found
 if 'CONFIG_SNAPPY' in config_host
   snappy = declare_dependency(link_args: config_host['SNAPPY_LIBS'].split())
 endif
+
 lzo = not_found
-if 'CONFIG_LZO' in config_host
-  lzo = declare_dependency(link_args: config_host['LZO_LIBS'].split())
+if not get_option('lzo').auto() or have_system
+  lzo = cc.find_library('lzo2', has_headers: ['lzo/lzo1x.h'],
+                        required: get_option('lzo'),
+                        static: enable_static)
+endif
+if lzo.found() and not cc.links('''
+   #include <lzo/lzo1x.h>
+   int main(void) { lzo_version(); return 0; }''', dependencies: lzo)
+  lzo = not_found
+  if get_option('lzo').enabled()
+    error('could not link liblzo2')
+  else
+    warning('could not link liblzo2, disabling')
+  endif
 endif
+
 rdma = not_found
 if 'CONFIG_RDMA' in config_host
   rdma = declare_dependency(link_args: config_host['RDMA_LIBS'].split())
@@ -937,6 +951,7 @@ config_host_data.set_quoted('CONFIG_SYSCONFDIR', get_option('prefix') / get_opti
 config_host_data.set('CONFIG_BRLAPI', brlapi.found())
 config_host_data.set('CONFIG_COCOA', cocoa.found())
 config_host_data.set('CONFIG_LIBUDEV', libudev.found())
+config_host_data.set('CONFIG_LZO', lzo.found())
 config_host_data.set('CONFIG_MPATH', mpathpersist.found())
 config_host_data.set('CONFIG_MPATH_NEW_API', mpathpersist_new_api)
 config_host_data.set('CONFIG_CURL', curl.found())
@@ -2336,7 +2351,7 @@ summary_info += {'TPM support':       config_host.has_key('CONFIG_TPM')}
 summary_info += {'libssh support':    config_host.has_key('CONFIG_LIBSSH')}
 summary_info += {'QOM debugging':     config_host.has_key('CONFIG_QOM_CAST_DEBUG')}
 summary_info += {'Live block migration': config_host.has_key('CONFIG_LIVE_BLOCK_MIGRATION')}
-summary_info += {'lzo support':       config_host.has_key('CONFIG_LZO')}
+summary_info += {'lzo support':       lzo.found()}
 summary_info += {'snappy support':    config_host.has_key('CONFIG_SNAPPY')}
 summary_info += {'bzip2 support':     libbzip2.found()}
 summary_info += {'lzfse support':     config_host.has_key('CONFIG_LZFSE')}
diff --git a/meson_options.txt b/meson_options.txt
index 7c8d70a7e2..08f0bffeaf 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -62,6 +62,8 @@ option('curses', type : 'feature', value : 'auto',
        description: 'curses UI')
 option('libudev', type : 'feature', value : 'auto',
        description: 'Use libudev to enumerate host devices')
+option('lzo', type : 'feature', value : 'auto',
+       description: 'lzo compression support')
 option('rbd', type : 'feature', value : 'auto',
        description: 'Ceph block device driver')
 option('sdl', type : 'feature', value : 'auto',
-- 
2.29.2




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PULL 43/52] snappy: convert to meson
  2021-01-06 14:54 [PULL v3 00/52] Misc patches for 2020-12-21 Paolo Bonzini
  2021-01-06 14:54 ` [PULL 42/52] lzo: convert to meson Paolo Bonzini
@ 2021-01-06 14:54 ` Paolo Bonzini
  2021-01-06 14:54 ` [PULL 44/52] lzfse: " Paolo Bonzini
  2021-01-06 17:26 ` [PULL v3 00/52] Misc patches for 2020-12-21 Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-01-06 14:54 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure         | 32 ++++----------------------------
 meson.build       | 20 +++++++++++++++++---
 meson_options.txt |  2 ++
 3 files changed, 23 insertions(+), 31 deletions(-)

diff --git a/configure b/configure
index 934cb098aa..63aba41f17 100755
--- a/configure
+++ b/configure
@@ -394,7 +394,7 @@ cpuid_h="no"
 avx2_opt="$default_feature"
 capstone="auto"
 lzo="auto"
-snappy="$default_feature"
+snappy="auto"
 bzip2="auto"
 lzfse="$default_feature"
 zstd="$default_feature"
@@ -1315,9 +1315,9 @@ for opt do
   ;;
   --enable-lzo) lzo="enabled"
   ;;
-  --disable-snappy) snappy="no"
+  --disable-snappy) snappy="disabled"
   ;;
-  --enable-snappy) snappy="yes"
+  --enable-snappy) snappy="enabled"
   ;;
   --disable-bzip2) bzip2="disabled"
   ;;
@@ -2457,25 +2457,6 @@ EOF
   fi
 fi
 
-##########################################
-# snappy check
-
-if test "$snappy" != "no" ; then
-    cat > $TMPC << EOF
-#include <snappy-c.h>
-int main(void) { snappy_max_compressed_length(4096); return 0; }
-EOF
-    if compile_prog "" "-lsnappy" ; then
-        snappy_libs='-lsnappy'
-        snappy="yes"
-    else
-        if test "$snappy" = "yes"; then
-            feature_not_found "libsnappy" "Install libsnappy devel"
-        fi
-        snappy="no"
-    fi
-fi
-
 ##########################################
 # lzfse check
 
@@ -6138,11 +6119,6 @@ if test "$avx512f_opt" = "yes" ; then
   echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak
 fi
 
-if test "$snappy" = "yes" ; then
-  echo "CONFIG_SNAPPY=y" >> $config_host_mak
-  echo "SNAPPY_LIBS=$snappy_libs" >> $config_host_mak
-fi
-
 if test "$lzfse" = "yes" ; then
   echo "CONFIG_LZFSE=y" >> $config_host_mak
   echo "LZFSE_LIBS=-llzfse" >> $config_host_mak
@@ -6717,7 +6693,7 @@ NINJA=$ninja $meson setup \
         -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
         -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
         -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
-        -Drbd=$rbd -Dlzo=$lzo \
+        -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy \
         -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 34683d5030..8861434721 100644
--- a/meson.build
+++ b/meson.build
@@ -745,9 +745,22 @@ if get_option('vnc').enabled()
                               compile_args: '-DSTRUCT_IOVEC_DEFINED')
   endif
 endif
+
 snappy = not_found
-if 'CONFIG_SNAPPY' in config_host
-  snappy = declare_dependency(link_args: config_host['SNAPPY_LIBS'].split())
+if not get_option('snappy').auto() or have_system
+  snappy = cc.find_library('snappy', has_headers: ['snappy-c.h'],
+                           required: get_option('snappy'),
+                           static: enable_static)
+endif
+if snappy.found() and not cc.links('''
+   #include <snappy-c.h>
+   int main(void) { snappy_max_compressed_length(4096); return 0; }''', dependencies: snappy)
+  snappy = not_found
+  if get_option('snappy').enabled()
+    error('could not link libsnappy')
+  else
+    warning('could not link libsnappy, disabling')
+  endif
 endif
 
 lzo = not_found
@@ -970,6 +983,7 @@ config_host_data.set('CONFIG_LIBNFS', libnfs.found())
 config_host_data.set('CONFIG_RBD', rbd.found())
 config_host_data.set('CONFIG_SDL', sdl.found())
 config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
+config_host_data.set('CONFIG_SNAPPY', snappy.found())
 config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER', have_vhost_user_blk_server)
 config_host_data.set('CONFIG_VNC', vnc.found())
 config_host_data.set('CONFIG_VNC_JPEG', jpeg.found())
@@ -2352,7 +2366,7 @@ summary_info += {'libssh support':    config_host.has_key('CONFIG_LIBSSH')}
 summary_info += {'QOM debugging':     config_host.has_key('CONFIG_QOM_CAST_DEBUG')}
 summary_info += {'Live block migration': config_host.has_key('CONFIG_LIVE_BLOCK_MIGRATION')}
 summary_info += {'lzo support':       lzo.found()}
-summary_info += {'snappy support':    config_host.has_key('CONFIG_SNAPPY')}
+summary_info += {'snappy support':    snappy.found()}
 summary_info += {'bzip2 support':     libbzip2.found()}
 summary_info += {'lzfse support':     config_host.has_key('CONFIG_LZFSE')}
 summary_info += {'zstd support':      config_host.has_key('CONFIG_ZSTD')}
diff --git a/meson_options.txt b/meson_options.txt
index 08f0bffeaf..62f2e94f14 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -70,6 +70,8 @@ option('sdl', type : 'feature', value : 'auto',
        description: 'SDL user interface')
 option('sdl_image', type : 'feature', value : 'auto',
        description: 'SDL Image support for icons')
+option('snappy', type : 'feature', value : 'auto',
+       description: 'snappy compression support')
 option('u2f', type : 'feature', value : 'auto',
        description: 'U2F emulation support')
 option('vnc', type : 'feature', value : 'enabled',
-- 
2.29.2




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PULL 44/52] lzfse: convert to meson
  2021-01-06 14:54 [PULL v3 00/52] Misc patches for 2020-12-21 Paolo Bonzini
  2021-01-06 14:54 ` [PULL 42/52] lzo: convert to meson Paolo Bonzini
  2021-01-06 14:54 ` [PULL 43/52] snappy: " Paolo Bonzini
@ 2021-01-06 14:54 ` Paolo Bonzini
  2021-01-06 17:26 ` [PULL v3 00/52] Misc patches for 2020-12-21 Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-01-06 14:54 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure         | 31 ++++---------------------------
 meson.build       | 20 +++++++++++++++++---
 meson_options.txt |  2 ++
 3 files changed, 23 insertions(+), 30 deletions(-)

diff --git a/configure b/configure
index 63aba41f17..a1e1fa8b34 100755
--- a/configure
+++ b/configure
@@ -396,7 +396,7 @@ capstone="auto"
 lzo="auto"
 snappy="auto"
 bzip2="auto"
-lzfse="$default_feature"
+lzfse="auto"
 zstd="$default_feature"
 guest_agent="$default_feature"
 guest_agent_with_vss="no"
@@ -1323,9 +1323,9 @@ for opt do
   ;;
   --enable-bzip2) bzip2="enabled"
   ;;
-  --enable-lzfse) lzfse="yes"
+  --enable-lzfse) lzfse="enabled"
   ;;
-  --disable-lzfse) lzfse="no"
+  --disable-lzfse) lzfse="disabled"
   ;;
   --disable-zstd) zstd="no"
   ;;
@@ -2457,24 +2457,6 @@ EOF
   fi
 fi
 
-##########################################
-# lzfse check
-
-if test "$lzfse" != "no" ; then
-    cat > $TMPC << EOF
-#include <lzfse.h>
-int main(void) { lzfse_decode_scratch_size(); return 0; }
-EOF
-    if compile_prog "" "-llzfse" ; then
-        lzfse="yes"
-    else
-        if test "$lzfse" = "yes"; then
-            feature_not_found "lzfse" "Install lzfse devel"
-        fi
-        lzfse="no"
-    fi
-fi
-
 ##########################################
 # zstd check
 
@@ -6119,11 +6101,6 @@ if test "$avx512f_opt" = "yes" ; then
   echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak
 fi
 
-if test "$lzfse" = "yes" ; then
-  echo "CONFIG_LZFSE=y" >> $config_host_mak
-  echo "LZFSE_LIBS=-llzfse" >> $config_host_mak
-fi
-
 if test "$zstd" = "yes" ; then
   echo "CONFIG_ZSTD=y" >> $config_host_mak
   echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak
@@ -6693,7 +6670,7 @@ NINJA=$ninja $meson setup \
         -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
         -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
         -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
-        -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy \
+        -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy -Dlzfse=$lzfse \
         -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 8861434721..2a3a840103 100644
--- a/meson.build
+++ b/meson.build
@@ -691,10 +691,24 @@ if not get_option('bzip2').auto() or have_block
     endif
   endif
 endif
+
 liblzfse = not_found
-if 'CONFIG_LZFSE' in config_host
-  liblzfse = declare_dependency(link_args: config_host['LZFSE_LIBS'].split())
+if not get_option('lzfse').auto() or have_block
+  liblzfse = cc.find_library('lzfse', has_headers: ['lzfse.h'],
+                             required: get_option('lzfse'),
+                             static: enable_static)
+endif
+if liblzfse.found() and not cc.links('''
+   #include <lzfse.h>
+   int main(void) { lzfse_decode_scratch_size(); return 0; }''', dependencies: liblzfse)
+  liblzfse = not_found
+  if get_option('lzfse').enabled()
+    error('could not link liblzfse')
+  else
+    warning('could not link liblzfse, disabling')
+  endif
 endif
+
 oss = not_found
 if 'CONFIG_AUDIO_OSS' in config_host
   oss = declare_dependency(link_args: config_host['OSS_LIBS'].split())
@@ -2368,7 +2382,7 @@ summary_info += {'Live block migration': config_host.has_key('CONFIG_LIVE_BLOCK_
 summary_info += {'lzo support':       lzo.found()}
 summary_info += {'snappy support':    snappy.found()}
 summary_info += {'bzip2 support':     libbzip2.found()}
-summary_info += {'lzfse support':     config_host.has_key('CONFIG_LZFSE')}
+summary_info += {'lzfse support':     liblzfse.found()}
 summary_info += {'zstd support':      config_host.has_key('CONFIG_ZSTD')}
 summary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')}
 summary_info += {'libxml2':           config_host.has_key('CONFIG_LIBXML2')}
diff --git a/meson_options.txt b/meson_options.txt
index 62f2e94f14..7623dffc74 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -62,6 +62,8 @@ option('curses', type : 'feature', value : 'auto',
        description: 'curses UI')
 option('libudev', type : 'feature', value : 'auto',
        description: 'Use libudev to enumerate host devices')
+option('lzfse', type : 'feature', value : 'auto',
+       description: 'lzfse support for DMG images')
 option('lzo', type : 'feature', value : 'auto',
        description: 'lzo compression support')
 option('rbd', type : 'feature', value : 'auto',
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PULL v3 00/52] Misc patches for 2020-12-21
  2021-01-06 14:54 [PULL v3 00/52] Misc patches for 2020-12-21 Paolo Bonzini
                   ` (2 preceding siblings ...)
  2021-01-06 14:54 ` [PULL 44/52] lzfse: " Paolo Bonzini
@ 2021-01-06 17:26 ` Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2021-01-06 17:26 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On Wed, 6 Jan 2021 at 14:57, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 41192db338588051f21501abc13743e62b0a5605:
>
>   Merge remote-tracking branch 'remotes/ehabkost-gl/tags/machine-next-pull-request' into staging (2021-01-01 22:57:15 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to c8b2b7fed9850356f5d88bc7da2f1cefe57289bf:
>
>   win32: drop fd registration to the main-loop on setting non-block (2021-01-06 10:21:20 +0100)
>
> ----------------------------------------------------------------
> From Alex's pull request:
> * improve cross-build KVM coverage
> * new --without-default-features configure flag
> * add __repr__ for ConsoleSocket for debugging
> * build tcg tests with -Werror
> * test 32 bit builds with fedora
> * remove last traces of debian9
> * hotfix for centos8 powertools repo
>
> * Move lots of feature detection code to meson (Alex, myself)
> * CFI and LTO support (Daniele)
> * test-char dangling pointer (Eduardo)
> * Build system and win32 fixes (Marc-André)
> * Initialization fixes (myself)
> * TCG include cleanup (Richard, myself)
> * x86 'int N' fix (Peter)
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-01-06 17:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-06 14:54 [PULL v3 00/52] Misc patches for 2020-12-21 Paolo Bonzini
2021-01-06 14:54 ` [PULL 42/52] lzo: convert to meson Paolo Bonzini
2021-01-06 14:54 ` [PULL 43/52] snappy: " Paolo Bonzini
2021-01-06 14:54 ` [PULL 44/52] lzfse: " Paolo Bonzini
2021-01-06 17:26 ` [PULL v3 00/52] Misc patches for 2020-12-21 Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.