All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH  v1 00/15] testing/next pre-PR (python3.6, check-tcg)
@ 2020-09-25 15:40 Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 01/15] tests/tcg: reinstate or replace desired parts of rules.mak Alex Bennée
                   ` (14 more replies)
  0 siblings, 15 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée

Hi,

This is my pre-PR state of testing/next. Mostly it has Thomas'
python3.6 clean-ups for the various CI bits as well as Paolo's fix for
the build system to enable check-tcg to work properly again. I should
cut the PR on Monday.

I think Paolo's fixes are also in another PR but I've left them in
here because a) it makes testing easier and b) it's the 21st century
and git should cope.

Paolo Bonzini (3):
  tests/tcg: reinstate or replace desired parts of rules.mak
  meson: move libudev test
  meson: move libmpathpersist test

Thomas Huth (12):
  migration: Silence compiler warning in global_state_store_running()
  travis.yml: Drop the default softmmu builds
  travis.yml: Update Travis to use Bionic and Focal instead of Xenial
  travis.yml: Drop the superfluous Python 3.6 build
  travis.yml: Drop the Python 3.5 build
  tests/docker: Use Fedora containers for MinGW cross-builds in the
    gitlab-CI
  gitlab-ci: Remove the Debian9-based containers and containers-layer3
  tests/docker: Update the tricore container to debian 10
  shippable.yml: Remove the Debian9-based MinGW cross-compiler tests
  tests/docker: Remove old Debian 9 containers
  gitlab-ci: Increase the timeout for the cross-compiler builds
  configure: Bump the minimum required Python version to 3.6

 docs/conf.py                                  |  4 +-
 configure                                     | 95 ++-----------------
 meson.build                                   | 85 +++++++++++++++--
 migration/global_state.c                      |  4 +-
 .gitlab-ci.d/containers.yml                   | 38 +++-----
 .gitlab-ci.d/crossbuilds.yml                  |  5 +-
 .gitlab-ci.yml                                |  1 -
 .shippable.yml                                |  4 -
 .travis.yml                                   | 55 +++--------
 meson_options.txt                             |  2 +
 tests/docker/Makefile.include                 |  2 +-
 .../dockerfiles/debian-tricore-cross.docker   |  2 +-
 .../dockerfiles/debian-win32-cross.docker     | 38 --------
 .../dockerfiles/debian-win64-cross.docker     | 45 ---------
 tests/docker/dockerfiles/debian9-mxe.docker   | 21 ----
 tests/docker/dockerfiles/debian9.docker       | 32 -------
 .../dockerfiles/fedora-win32-cross.docker     | 42 ++++++++
 .../dockerfiles/fedora-win64-cross.docker     | 38 ++++++++
 tests/qemu-iotests/iotests.py                 |  2 -
 tests/tcg/Makefile.qemu                       | 13 ++-
 tests/tcg/configure.sh                        |  4 +-
 21 files changed, 211 insertions(+), 321 deletions(-)
 delete mode 100644 tests/docker/dockerfiles/debian-win32-cross.docker
 delete mode 100644 tests/docker/dockerfiles/debian-win64-cross.docker
 delete mode 100644 tests/docker/dockerfiles/debian9-mxe.docker
 delete mode 100644 tests/docker/dockerfiles/debian9.docker
 create mode 100644 tests/docker/dockerfiles/fedora-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/fedora-win64-cross.docker

-- 
2.20.1



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

* [PATCH v1 01/15] tests/tcg: reinstate or replace desired parts of rules.mak
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 02/15] meson: move libudev test Alex Bennée
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Alex Bennée, Philippe Mathieu-Daudé

From: Paolo Bonzini <pbonzini@redhat.com>

Commit 660f79309303d696531ffb394719dfab3e0c42c0 was a bit overzealous
with respect to tests/tcg, which needed quiet-command and $(BUILD_DIR).
Reinstate quiet-command, and replace $(BUILD_DIR) with just the
current directory.

Reported-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200921163425.1410280-1-pbonzini@redhat.com>
---
 tests/tcg/Makefile.qemu | 13 ++++++++++++-
 tests/tcg/configure.sh  |  4 ++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/tests/tcg/Makefile.qemu b/tests/tcg/Makefile.qemu
index 0332bad10fd4..c096c611a2b4 100644
--- a/tests/tcg/Makefile.qemu
+++ b/tests/tcg/Makefile.qemu
@@ -11,9 +11,20 @@
 # The configure script fills in extra information about
 # useful docker images or alternative compiler flags.
 
+# Usage: $(call quiet-command,command and args,"NAME","args to print")
+# This will run "command and args", and either:
+#  if V=1 just print the whole command and args
+#  otherwise print the 'quiet' output in the format "  NAME     args to print"
+# NAME should be a short name of the command, 7 letters or fewer.
+# If called with only a single argument, will print nothing in quiet mode.
+quiet-command-run = $(if $(V),,$(if $2,printf "  %-7s %s\n" $2 $3 && ))$1
+quiet-@ = $(if $(V),,@)
+quiet-command = $(quiet-@)$(call quiet-command-run,$1,$2,$3)
+
 CROSS_CC_GUEST:=
 DOCKER_IMAGE:=
--include $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak
+
+-include tests/tcg/config-$(TARGET).mak
 
 GUEST_BUILD=
 TCG_MAKE=../Makefile.target
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index 598a50cd4f31..be51bdb5a4a7 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -193,11 +193,11 @@ for target in $target_list; do
   case $target in
     *-linux-user | *-bsd-user)
       echo "CONFIG_USER_ONLY=y" >> $config_target_mak
-      echo "QEMU=\$(BUILD_DIR)/qemu-$arch" >> $config_target_mak
+      echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
       ;;
     *-softmmu)
       echo "CONFIG_SOFTMMU=y" >> $config_target_mak
-      echo "QEMU=\$(BUILD_DIR)/qemu-system-$arch" >> $config_target_mak
+      echo "QEMU=$PWD/qemu-system-$arch" >> $config_target_mak
       ;;
   esac
 
-- 
2.20.1



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

* [PATCH  v1 02/15] meson: move libudev test
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 01/15] tests/tcg: reinstate or replace desired parts of rules.mak Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 03/15] meson: move libmpathpersist test Alex Bennée
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Alex Bennée

From: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200916162621.100141-2-pbonzini@redhat.com>
Message-Id: <20200918103430.297167-2-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 configure   | 14 --------------
 meson.build |  7 ++++---
 2 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/configure b/configure
index e8e8e984f245..48bf437021f6 100755
--- a/configure
+++ b/configure
@@ -908,7 +908,6 @@ Linux)
   linux_user="yes"
   kvm="yes"
   QEMU_INCLUDES="-isystem ${source_path}/linux-headers -Ilinux-headers $QEMU_INCLUDES"
-  libudev="yes"
 ;;
 esac
 
@@ -6283,15 +6282,6 @@ if test "$libnfs" != "no" ; then
 fi
 
 ##########################################
-# Do we have libudev
-if test "$libudev" != "no" ; then
-  if $pkg_config libudev && test "$static" != "yes"; then
-    libudev="yes"
-    libudev_libs=$($pkg_config --libs libudev)
-  else
-    libudev="no"
-  fi
-fi
 
 # Exclude --warn-common with TSan to suppress warnings from the TSan libraries.
 if test "$solaris" = "no" && test "$tsan" = "no"; then
@@ -7460,10 +7450,6 @@ if test "$gcov" = "yes" ; then
   echo "CONFIG_GCOV=y" >> $config_host_mak
 fi
 
-if test "$libudev" != "no"; then
-    echo "CONFIG_LIBUDEV=y" >> $config_host_mak
-    echo "LIBUDEV_LIBS=$libudev_libs" >> $config_host_mak
-fi
 if test "$fuzzing" != "no"; then
     echo "CONFIG_FUZZ=y" >> $config_host_mak
 fi
diff --git a/meson.build b/meson.build
index f4d1ab109680..48724988972d 100644
--- a/meson.build
+++ b/meson.build
@@ -252,8 +252,8 @@ if 'CONFIG_CURL' in config_host
                             link_args: config_host['CURL_LIBS'].split())
 endif
 libudev = not_found
-if 'CONFIG_LIBUDEV' in config_host
-  libudev = declare_dependency(link_args: config_host['LIBUDEV_LIBS'].split())
+if target_os == 'linux'
+  libudev = dependency('libudev', static: enable_static)
 endif
 brlapi = not_found
 if 'CONFIG_BRLAPI' in config_host
@@ -435,6 +435,7 @@ has_gettid = cc.has_function('gettid')
 
 # Create config-host.h
 
+config_host_data.set('CONFIG_LIBUDEV', libudev.found())
 config_host_data.set('CONFIG_SDL', sdl.found())
 config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
 config_host_data.set('CONFIG_VNC', vnc.found())
@@ -1515,7 +1516,7 @@ summary_info += {'sheepdog support':  config_host.has_key('CONFIG_SHEEPDOG')}
 summary_info += {'capstone':          config_host.has_key('CONFIG_CAPSTONE')}
 summary_info += {'libpmem support':   config_host.has_key('CONFIG_LIBPMEM')}
 summary_info += {'libdaxctl support': config_host.has_key('CONFIG_LIBDAXCTL')}
-summary_info += {'libudev':           config_host.has_key('CONFIG_LIBUDEV')}
+summary_info += {'libudev':           libudev.found()}
 summary_info += {'default devices':   config_host['CONFIG_MINIKCONF_MODE'] == '--defconfig'}
 summary_info += {'plugin support':    config_host.has_key('CONFIG_PLUGIN')}
 summary_info += {'fuzzing support':   config_host.has_key('CONFIG_FUZZ')}
-- 
2.20.1



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

* [PATCH  v1 03/15] meson: move libmpathpersist test
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 01/15] tests/tcg: reinstate or replace desired parts of rules.mak Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 02/15] meson: move libudev test Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:57   ` Paolo Bonzini
  2020-09-25 15:40 ` [PATCH v1 04/15] migration: Silence compiler warning in global_state_store_running() Alex Bennée
                   ` (11 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Thomas Huth, Alex Bennée

From: Paolo Bonzini <pbonzini@redhat.com>

This is the first compiler/linker test that has been moved to Meson.
Add more section headings to keep things clearer.

[thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200918103430.297167-3-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 configure         | 77 +++-----------------------------------------
 meson.build       | 82 ++++++++++++++++++++++++++++++++++++++++++-----
 meson_options.txt |  2 ++
 3 files changed, 80 insertions(+), 81 deletions(-)

diff --git a/configure b/configure
index 48bf437021f6..b81868cf0231 100755
--- a/configure
+++ b/configure
@@ -403,7 +403,7 @@ netmap="no"
 sdl="auto"
 sdl_image="auto"
 virtfs=""
-mpath=""
+mpath="auto"
 vnc="enabled"
 sparse="no"
 vde=""
@@ -1116,9 +1116,9 @@ for opt do
   ;;
   --enable-virtfs) virtfs="yes"
   ;;
-  --disable-mpath) mpath="no"
+  --disable-mpath) mpath="disabled"
   ;;
-  --enable-mpath) mpath="yes"
+  --enable-mpath) mpath="enabled"
   ;;
   --disable-vnc) vnc="disabled"
   ;;
@@ -3848,57 +3848,6 @@ if test "$modules" = yes; then
     fi
 fi
 
-##########################################
-# libmpathpersist probe
-
-if test "$mpath" != "no" ; then
-  # probe for the new API
-  cat > $TMPC <<EOF
-#include <libudev.h>
-#include <mpath_persist.h>
-unsigned mpath_mx_alloc_len = 1024;
-int logsink;
-static struct config *multipath_conf;
-extern struct udev *udev;
-extern struct config *get_multipath_config(void);
-extern void put_multipath_config(struct config *conf);
-struct udev *udev;
-struct config *get_multipath_config(void) { return multipath_conf; }
-void put_multipath_config(struct config *conf) { }
-
-int main(void) {
-    udev = udev_new();
-    multipath_conf = mpath_lib_init();
-    return 0;
-}
-EOF
-  if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
-    mpathpersist=yes
-    mpathpersist_new_api=yes
-  else
-    # probe for the old API
-    cat > $TMPC <<EOF
-#include <libudev.h>
-#include <mpath_persist.h>
-unsigned mpath_mx_alloc_len = 1024;
-int logsink;
-int main(void) {
-    struct udev *udev = udev_new();
-    mpath_lib_init(udev);
-    return 0;
-}
-EOF
-    if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
-      mpathpersist=yes
-      mpathpersist_new_api=no
-    else
-      mpathpersist=no
-    fi
-  fi
-else
-  mpathpersist=no
-fi
-
 ##########################################
 # pthread probe
 PTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2"
@@ -6340,23 +6289,11 @@ if test "$softmmu" = yes ; then
       fi
       virtfs=no
     fi
-    if test "$mpath" != no && test "$mpathpersist" = yes ; then
-      mpath=yes
-    else
-      if test "$mpath" = yes; then
-        error_exit "Multipath requires libmpathpersist devel"
-      fi
-      mpath=no
-    fi
   else
     if test "$virtfs" = yes; then
       error_exit "VirtFS is supported only on Linux"
     fi
     virtfs=no
-    if test "$mpath" = yes; then
-      error_exit "Multipath is supported only on Linux"
-    fi
-    mpath=no
   fi
 fi
 
@@ -6897,12 +6834,6 @@ fi
 if test "$virtfs" = "yes" ; then
   echo "CONFIG_VIRTFS=y" >> $config_host_mak
 fi
-if test "$mpath" = "yes" ; then
-  echo "CONFIG_MPATH=y" >> $config_host_mak
-  if test "$mpathpersist_new_api" = "yes"; then
-    echo "CONFIG_MPATH_NEW_API=y" >> $config_host_mak
-  fi
-fi
 if test "$vhost_scsi" = "yes" ; then
   echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
 fi
@@ -7992,7 +7923,7 @@ NINJA=${ninja:-$PWD/ninjatool} $meson setup \
         -Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
         -Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
         -Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
-	-Dsdl=$sdl -Dsdl_image=$sdl_image \
+	-Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
 	-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
 	-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f\
         $cross_arg \
diff --git a/meson.build b/meson.build
index 48724988972d..c09d869f9b02 100644
--- a/meson.build
+++ b/meson.build
@@ -81,6 +81,14 @@ if 'SPARSE_CFLAGS' in config_host
                        'compile_commands.json'])
 endif
 
+###########################################
+# Target-specific checks and dependencies #
+###########################################
+
+if targetos != 'linux' and get_option('mpath').enabled()
+  error('Multipath is supported only on Linux')
+endif
+
 m = cc.find_library('m', required: false)
 util = cc.find_library('util', required: false)
 winmm = []
@@ -112,6 +120,11 @@ elif targetos == 'haiku'
             cc.find_library('network'),
             cc.find_library('bsd')]
 endif
+
+################
+# Dependencies #
+################
+
 # The path to glib.h is added to all compilation commands.  This was
 # grandfathered in from the QEMU Makefiles.
 add_project_arguments(config_host['GLIB_CFLAGS'].split(),
@@ -218,10 +231,6 @@ if 'CONFIG_SPICE' in config_host
                              link_args: config_host['SPICE_LIBS'].split())
 endif
 rt = cc.find_library('rt', required: false)
-libmpathpersist = not_found
-if config_host.has_key('CONFIG_MPATH')
-  libmpathpersist = cc.find_library('mpathpersist')
-endif
 libdl = not_found
 if 'CONFIG_PLUGIN' in config_host
   libdl = cc.find_library('dl', required: true)
@@ -252,9 +261,62 @@ if 'CONFIG_CURL' in config_host
                             link_args: config_host['CURL_LIBS'].split())
 endif
 libudev = not_found
-if target_os == 'linux'
-  libudev = dependency('libudev', static: enable_static)
+if targetos == 'linux'
+  libudev = dependency('libudev',
+                       required: get_option('mpath'),
+                       static: enable_static)
+endif
+
+mpathpersist = not_found
+if targetos == 'linux' and not get_option('mpath').disabled()
+  libmultipath = cc.find_library('multipath',
+                                 required: get_option('mpath'),
+                                 static: enable_static)
+  libmpathpersist = cc.find_library('mpathpersist',
+                                    required: get_option('mpath'),
+                                    static: enable_static)
+  if libmultipath.found() and libmpathpersist.found() and libudev.found()
+    if cc.links('''
+      #include <libudev.h>
+      #include <mpath_persist.h>
+      unsigned mpath_mx_alloc_len = 1024;
+      int logsink;
+      static struct config *multipath_conf;
+      extern struct udev *udev;
+      extern struct config *get_multipath_config(void);
+      extern void put_multipath_config(struct config *conf);
+      struct udev *udev;
+      struct config *get_multipath_config(void) { return multipath_conf; }
+      void put_multipath_config(struct config *conf) { }
+      int main(void) {
+          udev = udev_new();
+          multipath_conf = mpath_lib_init();
+          return 0;
+      }''', dependencies: [libmultipath, libmpathpersist, libudev])
+      mpathpersist = declare_dependency(dependencies: [libmultipath, libmpathpersist, libudev])
+      mpathpersist_new_api = true
+    elif cc.links('''
+      #include <libudev.h>
+      #include <mpath_persist.h>
+      unsigned mpath_mx_alloc_len = 1024;
+      int logsink;
+      int main(void) {
+          struct udev *udev = udev_new();
+          mpath_lib_init(udev);
+          return 0;
+      }''', dependencies: [libmultipath, libmpathpersist, libudev])
+      mpathpersist = declare_dependency(dependencies: [libmultipath, libmpathpersist, libudev])
+      mpathpersist_new_api = false
+    else
+      if get_option('mpath').enabled()
+        error('Cannot detect libmpathpersist API')
+      else
+        warning('Cannot detect libmpathpersist API, disabling')
+      endif
+    endif
+  endif
 endif
+
 brlapi = not_found
 if 'CONFIG_BRLAPI' in config_host
   brlapi = declare_dependency(link_args: config_host['BRLAPI_LIBS'].split())
@@ -436,6 +498,10 @@ has_gettid = cc.has_function('gettid')
 # Create config-host.h
 
 config_host_data.set('CONFIG_LIBUDEV', libudev.found())
+config_host_data.set('CONFIG_MPATH', mpathpersist.found())
+if mpathpersist.found()
+  config_host_data.set('CONFIG_MPATH_NEW_API', mpathpersist_new_api)
+endif
 config_host_data.set('CONFIG_SDL', sdl.found())
 config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
 config_host_data.set('CONFIG_VNC', vnc.found())
@@ -1185,7 +1251,7 @@ if have_tools
 
     executable('qemu-pr-helper', files('scsi/qemu-pr-helper.c', 'scsi/utils.c'),
                dependencies: [authz, crypto, io, qom, qemuutil,
-                              libcap_ng, libudev, libmpathpersist],
+                              libcap_ng, mpathpersist],
                install: true)
   endif
 
@@ -1407,7 +1473,7 @@ summary_info += {'Audio drivers':     config_host['CONFIG_AUDIO_DRIVERS']}
 summary_info += {'Block whitelist (rw)': config_host['CONFIG_BDRV_RW_WHITELIST']}
 summary_info += {'Block whitelist (ro)': config_host['CONFIG_BDRV_RO_WHITELIST']}
 summary_info += {'VirtFS support':    config_host.has_key('CONFIG_VIRTFS')}
-summary_info += {'Multipath support': config_host.has_key('CONFIG_MPATH')}
+summary_info += {'Multipath support': mpathpersist.found()}
 summary_info += {'VNC support':       vnc.found()}
 if vnc.found()
   summary_info += {'VNC SASL support':  sasl.found()}
diff --git a/meson_options.txt b/meson_options.txt
index 543cf70043a2..b38a6ae92a92 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -6,6 +6,8 @@ option('docdir', type : 'string', value : 'doc',
 option('gettext', type : 'boolean', value : true,
        description: 'Localization of the GTK+ user interface')
 
+option('mpath', type : 'feature', value : 'auto',
+       description: 'Multipath persistent reservation passthrough')
 option('sdl', type : 'feature', value : 'auto',
        description: 'SDL user interface')
 option('sdl_image', type : 'feature', value : 'auto',
-- 
2.20.1



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

* [PATCH v1 04/15] migration: Silence compiler warning in global_state_store_running()
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (2 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 03/15] meson: move libmpathpersist test Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 05/15] travis.yml: Drop the default softmmu builds Alex Bennée
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Thomas Huth, Philippe Mathieu-Daudé,
	Dr. David Alan Gilbert, Juan Quintela

From: Thomas Huth <thuth@redhat.com>

GCC 9.3.0 on Ubuntu complains:

In file included from /usr/include/string.h:495,
                 from /home/travis/build/huth/qemu/include/qemu/osdep.h:87,
                 from ../migration/global_state.c:13:
In function ‘strncpy’,
    inlined from ‘global_state_store_running’ at ../migration/global_state.c:47:5:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error:
 ‘__builtin_strncpy’ specified bound 100 equals destination size [-Werror=stringop-truncation]
  106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

... but we apparently really want to do a strncpy here - the size is already
checked with the assert() statement right in front of it. To silence the
warning, simply replace it with our strpadcpy() function.

Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com> (two years ago)
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200918103430.297167-4-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 migration/global_state.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/migration/global_state.c b/migration/global_state.c
index 25311479a4bd..a33947ca32b5 100644
--- a/migration/global_state.c
+++ b/migration/global_state.c
@@ -44,8 +44,8 @@ void global_state_store_running(void)
 {
     const char *state = RunState_str(RUN_STATE_RUNNING);
     assert(strlen(state) < sizeof(global_state.runstate));
-    strncpy((char *)global_state.runstate,
-           state, sizeof(global_state.runstate));
+    strpadcpy((char *)global_state.runstate, sizeof(global_state.runstate),
+              state, '\0');
 }
 
 bool global_state_received(void)
-- 
2.20.1



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

* [PATCH  v1 05/15] travis.yml: Drop the default softmmu builds
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (3 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 04/15] migration: Silence compiler warning in global_state_store_running() Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 06/15] travis.yml: Update Travis to use Bionic and Focal instead of Xenial Alex Bennée
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Thomas Huth, Daniel P . Berrangé,
	Philippe Mathieu-Daudé, Philippe Mathieu-Daudé,
	Cleber Rosa, Alex Bennée

From: Thomas Huth <thuth@redhat.com>

The total runtime of all Travis jobs is very long and we are testing
all softmmu targets in the gitlab-CI already - so we can speed up the
Travis testing a little bit by not testing the softmmu targets here
anymore.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200918103430.297167-5-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
---
 .travis.yml | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index c75221dca3e7..1fc49b07464d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -123,20 +123,6 @@ jobs:
         - CONFIG="--disable-system --static"
         - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
 
-
-    # we split the system builds as it takes a while to build them all
-    - name: "GCC (main-softmmu)"
-      env:
-        - CONFIG="--disable-user --target-list=${MAIN_SOFTMMU_TARGETS}"
-        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
-
-
-    - name: "GCC (other-softmmu)"
-      env:
-       - CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}"
-        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
-
-
     # Just build tools and run minimal unit and softfloat checks
     - name: "GCC check-unit and check-softfloat"
       env:
-- 
2.20.1



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

* [PATCH v1 06/15] travis.yml: Update Travis to use Bionic and Focal instead of Xenial
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (4 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 05/15] travis.yml: Drop the default softmmu builds Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 07/15] travis.yml: Drop the superfluous Python 3.6 build Alex Bennée
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Philippe Mathieu-Daudé,
	Thomas Huth, Alex Bennée, Cleber Rosa

From: Thomas Huth <thuth@redhat.com>

According to our support policy, we do not support Xenial anymore.
Time to switch the bigger parts of the builds to Focal instead.
Some few jobs have to be updated to Bionic instead, since they are
currently still failing on Focal otherwise. Also "--disable-pie" is
causing linker problems with newer versions of Ubuntu ... so remove
that switch from the jobs now (we still test it in a gitlab CI job,
so we don't lose much test coverage here).

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200918103430.297167-6-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
---
 .travis.yml | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 1fc49b07464d..80da4ebc8ea8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,7 @@
 # Additional builds with specific requirements for a full VM need to
 # be added as additional matrix: entries later on
 os: linux
-dist: xenial
+dist: focal
 language: c
 compiler:
   - gcc
@@ -10,7 +10,7 @@ cache:
   # There is one cache per branch and compiler version.
   # characteristics of each job are used to identify the cache:
   # - OS name (currently only linux)
-  # - OS distribution (for Linux, xenial, trusty, or precise)
+  # - OS distribution (for Linux, bionic or focal)
   # - Names and values of visible environment variables set in .travis.yml or Settings panel
   timeout: 1200
   ccache: true
@@ -27,7 +27,7 @@ addons:
       - libattr1-dev
       - libbrlapi-dev
       - libcap-ng-dev
-      - libgcc-4.8-dev
+      - libgcc-7-dev
       - libgnutls28-dev
       - libgtk-3-dev
       - libiscsi-dev
@@ -211,8 +211,10 @@ jobs:
 
     # gprof/gcov are GCC features
     - name: "GCC gprof/gcov"
+      dist: bionic
       env:
-        - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
+        - CONFIG="--enable-gprof --enable-gcov --disable-libssh
+                  --target-list=${MAIN_SOFTMMU_TARGETS}"
       after_success:
         - ${SRC_DIR}/scripts/travis/coverage-summary.sh
 
@@ -271,6 +273,7 @@ jobs:
 
     # Using newer GCC with sanitizers
     - name: "GCC9 with sanitizers (softmmu)"
+      dist: bionic
       addons:
         apt:
           update: true
@@ -286,7 +289,7 @@ jobs:
             - libattr1-dev
             - libbrlapi-dev
             - libcap-ng-dev
-            - libgnutls-dev
+            - libgnutls28-dev
             - libgtk-3-dev
             - libiscsi-dev
             - liblttng-ust-dev
@@ -294,14 +297,13 @@ jobs:
             - libncurses5-dev
             - libnss3-dev
             - libpixman-1-dev
-            - libpng12-dev
+            - libpng-dev
             - librados-dev
             - libsdl2-dev
             - libsdl2-image-dev
             - libseccomp-dev
             - libspice-protocol-dev
             - libspice-server-dev
-            - libssh-dev
             - liburcu-dev
             - libusb-1.0-0-dev
             - libvte-2.91-dev
@@ -311,11 +313,11 @@ jobs:
       compiler: none
       env:
         - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9
-        - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user"
+        - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-linux-user"
         - TEST_CMD=""
       before_script:
         - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
-        - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread" --extra-ldflags="-fuse-ld=gold" || { cat config.log && exit 1; }
+        - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread" || { cat config.log && exit 1; }
 
 
     # Run check-tcg against linux-user
@@ -357,7 +359,7 @@ jobs:
 
     - name: "[aarch64] GCC check-tcg"
       arch: arm64
-      dist: xenial
+      dist: focal
       addons:
         apt_packages:
           - libaio-dev
@@ -390,7 +392,7 @@ jobs:
 
     - name: "[ppc64] GCC check-tcg"
       arch: ppc64le
-      dist: xenial
+      dist: focal
       addons:
         apt_packages:
           - libaio-dev
-- 
2.20.1



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

* [PATCH  v1 07/15] travis.yml: Drop the superfluous Python 3.6 build
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (5 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 06/15] travis.yml: Update Travis to use Bionic and Focal instead of Xenial Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 08/15] travis.yml: Drop the Python 3.5 build Alex Bennée
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Philippe Mathieu-Daudé, Thomas Huth, Alex Bennée

From: Thomas Huth <thuth@redhat.com>

Python 3.6 is already the default Python in the jobs that are based
on Ubuntu Bionic, so it does not make much sense to test this again
separately.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200918103430.297167-7-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .travis.yml | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 80da4ebc8ea8..023fcf71190c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -263,14 +263,6 @@ jobs:
       python: 3.5
 
 
-    - name: "GCC Python 3.6 (x86_64-softmmu)"
-      env:
-        - CONFIG="--target-list=x86_64-softmmu"
-        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
-      language: python
-      python: 3.6
-
-
     # Using newer GCC with sanitizers
     - name: "GCC9 with sanitizers (softmmu)"
       dist: bionic
-- 
2.20.1



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

* [PATCH  v1 08/15] travis.yml: Drop the Python 3.5 build
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (6 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 07/15] travis.yml: Drop the superfluous Python 3.6 build Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 09/15] tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI Alex Bennée
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Philippe Mathieu-Daudé, Thomas Huth, Alex Bennée

From: Thomas Huth <thuth@redhat.com>

We are soon going to remove the support for Python 3.5. So remove
the CI job now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200922070441.48844-1-thuth@redhat.com>
---
 .travis.yml | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 023fcf71190c..b6fee288bec2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -254,15 +254,6 @@ jobs:
         - TEST_CMD=""
 
 
-    # Python builds
-    - name: "GCC Python 3.5 (x86_64-softmmu)"
-      env:
-        - CONFIG="--target-list=x86_64-softmmu"
-        - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
-      language: python
-      python: 3.5
-
-
     # Using newer GCC with sanitizers
     - name: "GCC9 with sanitizers (softmmu)"
       dist: bionic
-- 
2.20.1



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

* [PATCH v1 09/15] tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (7 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 08/15] travis.yml: Drop the Python 3.5 build Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 10/15] gitlab-ci: Remove the Debian9-based containers and containers-layer3 Alex Bennée
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Philippe Mathieu-Daudé,
	Thomas Huth, Alex Bennée, Wainer dos Santos Moschetta

From: Thomas Huth <thuth@redhat.com>

According to our support policy, we do not support Debian 9 in QEMU
anymore, and we only support building the Windows binaries with a
very recent version of the MinGW toolchain. So we should not test
the MinGW cross-compilation with Debian 9 anymore, but switch to
something newer like Fedora. To do this, we need a separate Fedora
container for each build that provides the QEMU_CONFIGURE_OPTS
environment variable.
Unfortunately, the MinGW 64-bit compiler seems to be a little bit
slow, so we also have to disable some features like "capstone" in the
build here to make sure that the CI pipelines still finish within a
reasonable amount of time.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200921174320.46062-2-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .gitlab-ci.d/containers.yml                   | 10 +++++
 .gitlab-ci.d/crossbuilds.yml                  |  4 +-
 .../dockerfiles/fedora-win32-cross.docker     | 42 +++++++++++++++++++
 .../dockerfiles/fedora-win64-cross.docker     | 38 +++++++++++++++++
 4 files changed, 92 insertions(+), 2 deletions(-)
 create mode 100644 tests/docker/dockerfiles/fedora-win32-cross.docker
 create mode 100644 tests/docker/dockerfiles/fedora-win64-cross.docker

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 8c89efeb6d4b..15e7b564f91f 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -248,6 +248,16 @@ i386-fedora-cross-container:
   variables:
     NAME: fedora-i386-cross
 
+win32-fedora-cross-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-win32-cross
+
+win64-fedora-cross-container:
+  <<: *container_job_definition
+  variables:
+    NAME: fedora-win64-cross
+
 amd64-ubuntu1804-container:
   <<: *container_job_definition
   variables:
diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 4ec7226b5c3c..510cfec03bb7 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -105,9 +105,9 @@ cross-s390x-user:
 cross-win32-system:
   <<: *cross_system_build_job_definition
   variables:
-    IMAGE: debian-win32-cross
+    IMAGE: fedora-win32-cross
 
 cross-win64-system:
   <<: *cross_system_build_job_definition
   variables:
-    IMAGE: debian-win64-cross
+    IMAGE: fedora-win64-cross
diff --git a/tests/docker/dockerfiles/fedora-win32-cross.docker b/tests/docker/dockerfiles/fedora-win32-cross.docker
new file mode 100644
index 000000000000..5903e1b0b44b
--- /dev/null
+++ b/tests/docker/dockerfiles/fedora-win32-cross.docker
@@ -0,0 +1,42 @@
+FROM fedora:32
+
+# Please keep this list sorted alphabetically
+ENV PACKAGES \
+    bc \
+    bzip2 \
+    diffutils \
+    findutils \
+    gcc \
+    gettext \
+    git \
+    hostname \
+    make \
+    meson \
+    mingw32-bzip2 \
+    mingw32-curl \
+    mingw32-glib2 \
+    mingw32-gmp \
+    mingw32-gnutls \
+    mingw32-gtk3 \
+    mingw32-libjpeg-turbo \
+    mingw32-libpng \
+    mingw32-libtasn1 \
+    mingw32-nettle \
+    mingw32-nsis \
+    mingw32-pixman \
+    mingw32-pkg-config \
+    mingw32-SDL2 \
+    perl \
+    perl-Test-Harness \
+    python3 \
+    python3-PyYAML \
+    python3-setuptools \
+    tar \
+    which
+
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
+ENV FEATURES mingw
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-w64-mingw32-
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
new file mode 100644
index 000000000000..7f03cd8ffca6
--- /dev/null
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -0,0 +1,38 @@
+FROM fedora:32
+
+# Please keep this list sorted alphabetically
+ENV PACKAGES \
+    bc \
+    bzip2 \
+    diffutils \
+    findutils \
+    gcc \
+    gettext \
+    git \
+    hostname \
+    make \
+    meson \
+    mingw64-bzip2 \
+    mingw64-curl \
+    mingw64-glib2 \
+    mingw64-gmp \
+    mingw64-gtk3 \
+    mingw64-libjpeg-turbo \
+    mingw64-libpng \
+    mingw64-libtasn1 \
+    mingw64-pixman \
+    mingw64-pkg-config \
+    perl \
+    perl-Test-Harness \
+    python3 \
+    python3-PyYAML \
+    python3-setuptools \
+    tar \
+    which
+
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
+ENV FEATURES mingw
+
+# Specify the cross prefix for this image (see tests/docker/common.rc)
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32- --disable-capstone
-- 
2.20.1



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

* [PATCH v1 10/15] gitlab-ci: Remove the Debian9-based containers and containers-layer3
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (8 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 09/15] tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 11/15] tests/docker: Update the tricore container to debian 10 Alex Bennée
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Thomas Huth, Daniel P . Berrangé,
	Wainer dos Santos Moschetta, Philippe Mathieu-Daudé

From: Thomas Huth <thuth@redhat.com>

According to our support policy, Debian 9 is not supported by the
QEMU project anymore. Since we now switched the MinGW cross-compiler
builds to Fedora, we do not need these Debian9-based containers
in the gitlab-CI anymore, and can now also get rid of the "layer3"
container build stage this way.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200921174320.46062-3-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .gitlab-ci.d/containers.yml | 14 --------------
 .gitlab-ci.yml              |  1 -
 2 files changed, 15 deletions(-)

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 15e7b564f91f..6769eef0ff0d 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -214,20 +214,6 @@ tricore-debian-cross-container:
   variables:
     NAME: debian-tricore-cross
 
-win32-debian-cross-container:
-  <<: *container_job_definition
-  stage: containers-layer3
-  needs: ['amd64-debian9-mxe-container']
-  variables:
-    NAME: debian-win32-cross
-
-win64-debian-cross-container:
-  <<: *container_job_definition
-  stage: containers-layer3
-  needs: ['amd64-debian9-mxe-container']
-  variables:
-    NAME: debian-win64-cross
-
 xtensa-debian-cross-container:
   <<: *container_job_definition
   variables:
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a18e18b57e54..c265e7f8ab0a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,6 @@
 stages:
   - containers
   - containers-layer2
-  - containers-layer3
   - build
   - test
 
-- 
2.20.1



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

* [PATCH v1 11/15] tests/docker: Update the tricore container to debian 10
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (9 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 10/15] gitlab-ci: Remove the Debian9-based containers and containers-layer3 Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 12/15] shippable.yml: Remove the Debian9-based MinGW cross-compiler tests Alex Bennée
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Thomas Huth, Daniel P . Berrangé,
	Philippe Mathieu-Daudé, Philippe Mathieu-Daudé,
	Alex Bennée

From: Thomas Huth <thuth@redhat.com>

We do not support Debian 9 anymore, thus update the Tricore container
to Debian 10 now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200921174320.46062-4-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .gitlab-ci.d/containers.yml                          | 2 +-
 tests/docker/Makefile.include                        | 2 +-
 tests/docker/dockerfiles/debian-tricore-cross.docker | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 6769eef0ff0d..089cea7c14c1 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -210,7 +210,7 @@ sparc64-debian-cross-container:
 tricore-debian-cross-container:
   <<: *container_job_definition
   stage: containers-layer2
-  needs: ['amd64-debian9-container']
+  needs: ['amd64-debian10-container']
   variables:
     NAME: debian-tricore-cross
 
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 75704268ff0a..02ec92830b83 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -137,7 +137,7 @@ docker-image-debian-sparc64-cross: docker-image-debian10
 docker-image-travis: NOUSER=1
 
 # Specialist build images, sometimes very limited tools
-docker-image-debian-tricore-cross: docker-image-debian9
+docker-image-debian-tricore-cross: docker-image-debian10
 docker-image-debian-all-test-cross: docker-image-debian10
 docker-image-debian-arm64-test-cross: docker-image-debian11
 
diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker
index 769d95c77bb2..985925134c67 100644
--- a/tests/docker/dockerfiles/debian-tricore-cross.docker
+++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
@@ -7,7 +7,7 @@
 #
 # SPDX-License-Identifier: GPL-2.0-or-later
 #
-FROM qemu/debian9
+FROM qemu/debian10
 
 MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
 
-- 
2.20.1



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

* [PATCH v1 12/15] shippable.yml: Remove the Debian9-based MinGW cross-compiler tests
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (10 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 11/15] tests/docker: Update the tricore container to debian 10 Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 13/15] tests/docker: Remove old Debian 9 containers Alex Bennée
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Philippe Mathieu-Daudé, Thomas Huth, Alex Bennée

From: Thomas Huth <thuth@redhat.com>

We're not supporting Debian 9 anymore, and we are now testing
MinGW cross-compiler builds in the gitlab-CI, too, so we do not
really need these jobs in the shippable.yml anymore.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200921174320.46062-5-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .shippable.yml | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/.shippable.yml b/.shippable.yml
index 0b4fd6df1d81..14350e6de8a1 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -7,10 +7,6 @@ env:
   matrix:
     - IMAGE=debian-amd64
       TARGET_LIST=x86_64-softmmu,x86_64-linux-user
-    - IMAGE=debian-win32-cross
-      TARGET_LIST=arm-softmmu,i386-softmmu
-    - IMAGE=debian-win64-cross
-      TARGET_LIST=aarch64-softmmu,sparc64-softmmu,x86_64-softmmu
     - IMAGE=debian-armel-cross
       TARGET_LIST=arm-softmmu,arm-linux-user,armeb-linux-user
     - IMAGE=debian-armhf-cross
-- 
2.20.1



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

* [PATCH  v1 13/15] tests/docker: Remove old Debian 9 containers
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (11 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 12/15] shippable.yml: Remove the Debian9-based MinGW cross-compiler tests Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 14/15] gitlab-ci: Increase the timeout for the cross-compiler builds Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 15/15] configure: Bump the minimum required Python version to 3.6 Alex Bennée
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Thomas Huth, Daniel P . Berrangé,
	Philippe Mathieu-Daudé

From: Thomas Huth <thuth@redhat.com>

We do not support Debian 9 in QEMU anymore, and the Debian 9 containers
are now no longer used in the gitlab-CI. Time to remove them.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200921174320.46062-6-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .gitlab-ci.d/containers.yml                   | 12 -----
 .../dockerfiles/debian-win32-cross.docker     | 38 ----------------
 .../dockerfiles/debian-win64-cross.docker     | 45 -------------------
 tests/docker/dockerfiles/debian9-mxe.docker   | 21 ---------
 tests/docker/dockerfiles/debian9.docker       | 32 -------------
 5 files changed, 148 deletions(-)
 delete mode 100644 tests/docker/dockerfiles/debian-win32-cross.docker
 delete mode 100644 tests/docker/dockerfiles/debian-win64-cross.docker
 delete mode 100644 tests/docker/dockerfiles/debian9-mxe.docker
 delete mode 100644 tests/docker/dockerfiles/debian9.docker

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 089cea7c14c1..11d079ea5810 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -48,18 +48,6 @@ amd64-debian11-container:
   variables:
     NAME: debian11
 
-amd64-debian9-container:
-  <<: *container_job_definition
-  variables:
-    NAME: debian9
-
-amd64-debian9-mxe-container:
-  <<: *container_job_definition
-  stage: containers-layer2
-  needs: ['amd64-debian9-container']
-  variables:
-    NAME: debian9-mxe
-
 alpha-debian-cross-container:
   <<: *container_job_definition
   stage: containers-layer2
diff --git a/tests/docker/dockerfiles/debian-win32-cross.docker b/tests/docker/dockerfiles/debian-win32-cross.docker
deleted file mode 100644
index b045e821b910..000000000000
--- a/tests/docker/dockerfiles/debian-win32-cross.docker
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Docker mingw32 cross-compiler target
-#
-# This docker target builds on the debian Stretch MXE base image.
-#
-FROM qemu/debian9-mxe
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-ENV TARGET i686
-
-ENV PATH $PATH:/usr/lib/mxe/usr/bin:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/bin
-
-ENV PKG_CONFIG_PATH \
-    $PKG_CONFIG_PATH:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/lib/pkgconfig
-
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get install -y --no-install-recommends \
-        mxe-$TARGET-w64-mingw32.shared-bzip2 \
-        mxe-$TARGET-w64-mingw32.shared-curl \
-        mxe-$TARGET-w64-mingw32.shared-glib \
-        mxe-$TARGET-w64-mingw32.shared-libgcrypt \
-        mxe-$TARGET-w64-mingw32.shared-libusb1 \
-        mxe-$TARGET-w64-mingw32.shared-lzo \
-        mxe-$TARGET-w64-mingw32.shared-nettle \
-        mxe-$TARGET-w64-mingw32.shared-ncurses \
-        mxe-$TARGET-w64-mingw32.shared-nsis \
-        mxe-$TARGET-w64-mingw32.shared-pixman \
-        mxe-$TARGET-w64-mingw32.shared-pkgconf \
-        mxe-$TARGET-w64-mingw32.shared-pthreads \
-        mxe-$TARGET-w64-mingw32.shared-sdl2 \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
-        mxe-$TARGET-w64-mingw32.shared-zlib
-
-# Specify the cross prefix for this image (see tests/docker/common.rc)
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=$TARGET-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian-win64-cross.docker b/tests/docker/dockerfiles/debian-win64-cross.docker
deleted file mode 100644
index 4cc4a3f3657f..000000000000
--- a/tests/docker/dockerfiles/debian-win64-cross.docker
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Docker mingw64 cross-compiler target
-#
-# This docker target builds on the debian Stretch MXE base image.
-#
-FROM qemu/debian9-mxe
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-ENV TARGET x86-64
-
-ENV PATH $PATH:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/bin
-
-ENV PKG_CONFIG_PATH \
-    $PKG_CONFIG_PATH:/usr/lib/mxe/usr/$TARGET-w64-mingw32.shared/lib/pkgconfig
-
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get install -y --no-install-recommends \
-        mxe-$TARGET-w64-mingw32.shared-bzip2 \
-        mxe-$TARGET-w64-mingw32.shared-curl \
-        mxe-$TARGET-w64-mingw32.shared-glib \
-        mxe-$TARGET-w64-mingw32.shared-libgcrypt \
-        mxe-$TARGET-w64-mingw32.shared-libusb1 \
-        mxe-$TARGET-w64-mingw32.shared-lzo \
-        mxe-$TARGET-w64-mingw32.shared-nettle \
-        mxe-$TARGET-w64-mingw32.shared-ncurses \
-        mxe-$TARGET-w64-mingw32.shared-nsis \
-        mxe-$TARGET-w64-mingw32.shared-pixman \
-        mxe-$TARGET-w64-mingw32.shared-pkgconf \
-        mxe-$TARGET-w64-mingw32.shared-pthreads \
-        mxe-$TARGET-w64-mingw32.shared-sdl2 \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-mixer \
-        mxe-$TARGET-w64-mingw32.shared-sdl2-gfx \
-        mxe-$TARGET-w64-mingw32.shared-zlib \
-        curl && \
-    curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/WinHvEmulation.h \
-        "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvemulation.h?format=raw" && \
-    curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/WinHvPlatform.h \
-        "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvplatform.h?format=raw" && \
-    curl -s -S -o /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/winhvplatformdefs.h \
-        "https://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/winhvplatformdefs.h?format=raw"
-
-# Specify the cross prefix for this image (see tests/docker/common.rc)
-ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32.shared-
diff --git a/tests/docker/dockerfiles/debian9-mxe.docker b/tests/docker/dockerfiles/debian9-mxe.docker
deleted file mode 100644
index ae2c222a6f08..000000000000
--- a/tests/docker/dockerfiles/debian9-mxe.docker
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Docker mingw cross-compiler target
-#
-# This docker target builds on the debian Stretch base image.
-#
-FROM qemu/debian9
-
-MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-RUN DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt install -y --no-install-recommends gnupg dirmngr
-
-# Add the foreign architecture we want and install dependencies
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C6BF758A33A3A276 && \
-    echo "deb http://pkg.mxe.cc/repos/apt stretch main" > /etc/apt/sources.list.d/mxeapt.list
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt-get install -y --no-install-recommends \
-        $(apt-get -s install -y --no-install-recommends gw32.shared-mingw-w64 | egrep "^Inst mxe-x86-64-unknown-" | cut -d\  -f2)
-
-ENV PATH $PATH:/usr/lib/mxe/usr/bin/
diff --git a/tests/docker/dockerfiles/debian9.docker b/tests/docker/dockerfiles/debian9.docker
deleted file mode 100644
index 3edb5147ef3e..000000000000
--- a/tests/docker/dockerfiles/debian9.docker
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Docker multiarch cross-compiler target
-#
-# This docker target is builds on Debian cross compiler targets to build distro
-# with a selection of cross compilers for building test binaries.
-#
-# On its own you can't build much but the docker-foo-cross targets
-# build on top of the base debian image.
-#
-FROM debian:stretch-slim
-
-# Duplicate deb line as deb-src
-RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
-
-# Install common build utilities
-RUN apt update && \
-    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
-    DEBIAN_FRONTEND=noninteractive eatmydata \
-    apt install -y --no-install-recommends \
-        bc \
-        build-essential \
-        ca-certificates \
-        clang \
-        gdb-multiarch \
-        gettext \
-        git \
-        libncurses5-dev \
-        pkg-config \
-        psmisc \
-        python3 \
-        python3-setuptools \
-        $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\  -f2)
-- 
2.20.1



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

* [PATCH v1 14/15] gitlab-ci: Increase the timeout for the cross-compiler builds
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (12 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 13/15] tests/docker: Remove old Debian 9 containers Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  2020-09-25 15:40 ` [PATCH v1 15/15] configure: Bump the minimum required Python version to 3.6 Alex Bennée
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alex Bennée, Thomas Huth, Daniel P . Berrangé,
	Wainer dos Santos Moschetta, Philippe Mathieu-Daudé

From: Thomas Huth <thuth@redhat.com>

Some of the cross-compiler builds (the mips build and the win64 build
for example) are quite slow and sometimes hit the 1h time limit.
Increase the limit a little bit to make sure that we do not get failures
in the CI runs just because of some few minutes.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200921174320.46062-7-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 .gitlab-ci.d/crossbuilds.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index 510cfec03bb7..03ebfabb3fac 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -2,6 +2,7 @@
 .cross_system_build_job_template: &cross_system_build_job_definition
   stage: build
   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
+  timeout: 80m
   script:
     - mkdir build
     - cd build
-- 
2.20.1



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

* [PATCH v1 15/15] configure: Bump the minimum required Python version to 3.6
  2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
                   ` (13 preceding siblings ...)
  2020-09-25 15:40 ` [PATCH v1 14/15] gitlab-ci: Increase the timeout for the cross-compiler builds Alex Bennée
@ 2020-09-25 15:40 ` Alex Bennée
  14 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 15:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Peter Maydell, Thomas Huth,
	open list:Block layer core, Max Reitz, Alex Bennée

From: Thomas Huth <thuth@redhat.com>

All our supported build platforms have Python 3.6 or newer nowadays, and
there are some useful features in Python 3.6 which are not available in
3.5 yet (e.g. the type hint annotations which will allow us to statically
type the QAPI parser), so let's bump the minimum Python version to 3.6 now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200923162908.95372-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 docs/conf.py                  | 4 ++--
 configure                     | 4 ++--
 tests/qemu-iotests/iotests.py | 2 --
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 0dbd90dc1124..8aeac40124cb 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -36,9 +36,9 @@ from sphinx.errors import ConfigError
 # In newer versions of Sphinx this will display nicely; in older versions
 # Sphinx will also produce a Python backtrace but at least the information
 # gets printed...
-if sys.version_info < (3,5):
+if sys.version_info < (3,6):
     raise ConfigError(
-        "QEMU requires a Sphinx that uses Python 3.5 or better\n")
+        "QEMU requires a Sphinx that uses Python 3.6 or better\n")
 
 # The per-manual conf.py will set qemu_docdir for a single-manual build;
 # otherwise set it here if this is an entire-manual-set build.
diff --git a/configure b/configure
index b81868cf0231..c5f1b3bec6a8 100755
--- a/configure
+++ b/configure
@@ -1964,8 +1964,8 @@ fi
 
 # Note that if the Python conditional here evaluates True we will exit
 # with status 1 which is a shell 'false' value.
-if ! $python -c 'import sys; sys.exit(sys.version_info < (3,5))'; then
-  error_exit "Cannot use '$python', Python >= 3.5 is required." \
+if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then
+  error_exit "Cannot use '$python', Python >= 3.6 is required." \
       "Use --python=/path/to/python to specify a supported Python."
 fi
 
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 91e4a5712609..f48460480a99 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -40,8 +40,6 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
 from qemu import qtest
 from qemu.qmp import QMPMessage
 
-assert sys.version_info >= (3, 6)
-
 # Use this logger for logging messages directly from the iotests module
 logger = logging.getLogger('qemu.iotests')
 logger.addHandler(logging.NullHandler())
-- 
2.20.1



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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-25 15:40 ` [PATCH v1 03/15] meson: move libmpathpersist test Alex Bennée
@ 2020-09-25 15:57   ` Paolo Bonzini
  2020-09-25 19:33     ` Alex Bennée
  2020-09-30 10:51     ` Alex Bennée
  0 siblings, 2 replies; 23+ messages in thread
From: Paolo Bonzini @ 2020-09-25 15:57 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: Thomas Huth

On 25/09/20 17:40, Alex Bennée wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
> 
> This is the first compiler/linker test that has been moved to Meson.
> Add more section headings to keep things clearer.
> 
> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  configure         | 77 +++-----------------------------------------
>  meson.build       | 82 ++++++++++++++++++++++++++++++++++++++++++-----
>  meson_options.txt |  2 ++
>  3 files changed, 80 insertions(+), 81 deletions(-)
> 
> diff --git a/configure b/configure
> index 48bf437021f6..b81868cf0231 100755
> --- a/configure
> +++ b/configure
> @@ -403,7 +403,7 @@ netmap="no"
>  sdl="auto"
>  sdl_image="auto"
>  virtfs=""
> -mpath=""
> +mpath="auto"
>  vnc="enabled"
>  sparse="no"
>  vde=""
> @@ -1116,9 +1116,9 @@ for opt do
>    ;;
>    --enable-virtfs) virtfs="yes"
>    ;;
> -  --disable-mpath) mpath="no"
> +  --disable-mpath) mpath="disabled"
>    ;;
> -  --enable-mpath) mpath="yes"
> +  --enable-mpath) mpath="enabled"
>    ;;
>    --disable-vnc) vnc="disabled"
>    ;;
> @@ -3848,57 +3848,6 @@ if test "$modules" = yes; then
>      fi
>  fi
>  
> -##########################################
> -# libmpathpersist probe
> -
> -if test "$mpath" != "no" ; then
> -  # probe for the new API
> -  cat > $TMPC <<EOF
> -#include <libudev.h>
> -#include <mpath_persist.h>
> -unsigned mpath_mx_alloc_len = 1024;
> -int logsink;
> -static struct config *multipath_conf;
> -extern struct udev *udev;
> -extern struct config *get_multipath_config(void);
> -extern void put_multipath_config(struct config *conf);
> -struct udev *udev;
> -struct config *get_multipath_config(void) { return multipath_conf; }
> -void put_multipath_config(struct config *conf) { }
> -
> -int main(void) {
> -    udev = udev_new();
> -    multipath_conf = mpath_lib_init();
> -    return 0;
> -}
> -EOF
> -  if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
> -    mpathpersist=yes
> -    mpathpersist_new_api=yes
> -  else
> -    # probe for the old API
> -    cat > $TMPC <<EOF
> -#include <libudev.h>
> -#include <mpath_persist.h>
> -unsigned mpath_mx_alloc_len = 1024;
> -int logsink;
> -int main(void) {
> -    struct udev *udev = udev_new();
> -    mpath_lib_init(udev);
> -    return 0;
> -}
> -EOF
> -    if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
> -      mpathpersist=yes
> -      mpathpersist_new_api=no
> -    else
> -      mpathpersist=no
> -    fi
> -  fi
> -else
> -  mpathpersist=no
> -fi
> -
>  ##########################################
>  # pthread probe
>  PTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2"
> @@ -6340,23 +6289,11 @@ if test "$softmmu" = yes ; then
>        fi
>        virtfs=no
>      fi
> -    if test "$mpath" != no && test "$mpathpersist" = yes ; then
> -      mpath=yes
> -    else
> -      if test "$mpath" = yes; then
> -        error_exit "Multipath requires libmpathpersist devel"
> -      fi
> -      mpath=no
> -    fi
>    else
>      if test "$virtfs" = yes; then
>        error_exit "VirtFS is supported only on Linux"
>      fi
>      virtfs=no
> -    if test "$mpath" = yes; then
> -      error_exit "Multipath is supported only on Linux"
> -    fi
> -    mpath=no
>    fi
>  fi
>  
> @@ -6897,12 +6834,6 @@ fi
>  if test "$virtfs" = "yes" ; then
>    echo "CONFIG_VIRTFS=y" >> $config_host_mak
>  fi
> -if test "$mpath" = "yes" ; then
> -  echo "CONFIG_MPATH=y" >> $config_host_mak
> -  if test "$mpathpersist_new_api" = "yes"; then
> -    echo "CONFIG_MPATH_NEW_API=y" >> $config_host_mak
> -  fi
> -fi
>  if test "$vhost_scsi" = "yes" ; then
>    echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
>  fi
> @@ -7992,7 +7923,7 @@ NINJA=${ninja:-$PWD/ninjatool} $meson setup \
>          -Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
>          -Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
>          -Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
> -	-Dsdl=$sdl -Dsdl_image=$sdl_image \
> +	-Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
>  	-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
>  	-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f\
>          $cross_arg \
> diff --git a/meson.build b/meson.build
> index 48724988972d..c09d869f9b02 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -81,6 +81,14 @@ if 'SPARSE_CFLAGS' in config_host
>                         'compile_commands.json'])
>  endif
>  
> +###########################################
> +# Target-specific checks and dependencies #
> +###########################################
> +
> +if targetos != 'linux' and get_option('mpath').enabled()
> +  error('Multipath is supported only on Linux')
> +endif
> +
>  m = cc.find_library('m', required: false)
>  util = cc.find_library('util', required: false)
>  winmm = []
> @@ -112,6 +120,11 @@ elif targetos == 'haiku'
>              cc.find_library('network'),
>              cc.find_library('bsd')]
>  endif
> +
> +################
> +# Dependencies #
> +################
> +
>  # The path to glib.h is added to all compilation commands.  This was
>  # grandfathered in from the QEMU Makefiles.
>  add_project_arguments(config_host['GLIB_CFLAGS'].split(),
> @@ -218,10 +231,6 @@ if 'CONFIG_SPICE' in config_host
>                               link_args: config_host['SPICE_LIBS'].split())
>  endif
>  rt = cc.find_library('rt', required: false)
> -libmpathpersist = not_found
> -if config_host.has_key('CONFIG_MPATH')
> -  libmpathpersist = cc.find_library('mpathpersist')
> -endif
>  libdl = not_found
>  if 'CONFIG_PLUGIN' in config_host
>    libdl = cc.find_library('dl', required: true)
> @@ -252,9 +261,62 @@ if 'CONFIG_CURL' in config_host
>                              link_args: config_host['CURL_LIBS'].split())
>  endif
>  libudev = not_found
> -if target_os == 'linux'
> -  libudev = dependency('libudev', static: enable_static)
> +if targetos == 'linux'
> +  libudev = dependency('libudev',
> +                       required: get_option('mpath'),
> +                       static: enable_static)
> +endif
> +
> +mpathpersist = not_found
> +if targetos == 'linux' and not get_option('mpath').disabled()
> +  libmultipath = cc.find_library('multipath',
> +                                 required: get_option('mpath'),
> +                                 static: enable_static)
> +  libmpathpersist = cc.find_library('mpathpersist',
> +                                    required: get_option('mpath'),
> +                                    static: enable_static)
> +  if libmultipath.found() and libmpathpersist.found() and libudev.found()
> +    if cc.links('''
> +      #include <libudev.h>
> +      #include <mpath_persist.h>
> +      unsigned mpath_mx_alloc_len = 1024;
> +      int logsink;
> +      static struct config *multipath_conf;
> +      extern struct udev *udev;
> +      extern struct config *get_multipath_config(void);
> +      extern void put_multipath_config(struct config *conf);
> +      struct udev *udev;
> +      struct config *get_multipath_config(void) { return multipath_conf; }
> +      void put_multipath_config(struct config *conf) { }
> +      int main(void) {
> +          udev = udev_new();
> +          multipath_conf = mpath_lib_init();
> +          return 0;
> +      }''', dependencies: [libmultipath, libmpathpersist, libudev])
> +      mpathpersist = declare_dependency(dependencies: [libmultipath, libmpathpersist, libudev])
> +      mpathpersist_new_api = true
> +    elif cc.links('''
> +      #include <libudev.h>
> +      #include <mpath_persist.h>
> +      unsigned mpath_mx_alloc_len = 1024;
> +      int logsink;
> +      int main(void) {
> +          struct udev *udev = udev_new();
> +          mpath_lib_init(udev);
> +          return 0;
> +      }''', dependencies: [libmultipath, libmpathpersist, libudev])
> +      mpathpersist = declare_dependency(dependencies: [libmultipath, libmpathpersist, libudev])
> +      mpathpersist_new_api = false
> +    else
> +      if get_option('mpath').enabled()
> +        error('Cannot detect libmpathpersist API')
> +      else
> +        warning('Cannot detect libmpathpersist API, disabling')
> +      endif
> +    endif
> +  endif
>  endif
> +
>  brlapi = not_found
>  if 'CONFIG_BRLAPI' in config_host
>    brlapi = declare_dependency(link_args: config_host['BRLAPI_LIBS'].split())
> @@ -436,6 +498,10 @@ has_gettid = cc.has_function('gettid')
>  # Create config-host.h
>  
>  config_host_data.set('CONFIG_LIBUDEV', libudev.found())
> +config_host_data.set('CONFIG_MPATH', mpathpersist.found())
> +if mpathpersist.found()
> +  config_host_data.set('CONFIG_MPATH_NEW_API', mpathpersist_new_api)
> +endif
>  config_host_data.set('CONFIG_SDL', sdl.found())
>  config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
>  config_host_data.set('CONFIG_VNC', vnc.found())
> @@ -1185,7 +1251,7 @@ if have_tools
>  
>      executable('qemu-pr-helper', files('scsi/qemu-pr-helper.c', 'scsi/utils.c'),
>                 dependencies: [authz, crypto, io, qom, qemuutil,
> -                              libcap_ng, libudev, libmpathpersist],
> +                              libcap_ng, mpathpersist],
>                 install: true)
>    endif
>  
> @@ -1407,7 +1473,7 @@ summary_info += {'Audio drivers':     config_host['CONFIG_AUDIO_DRIVERS']}
>  summary_info += {'Block whitelist (rw)': config_host['CONFIG_BDRV_RW_WHITELIST']}
>  summary_info += {'Block whitelist (ro)': config_host['CONFIG_BDRV_RO_WHITELIST']}
>  summary_info += {'VirtFS support':    config_host.has_key('CONFIG_VIRTFS')}
> -summary_info += {'Multipath support': config_host.has_key('CONFIG_MPATH')}
> +summary_info += {'Multipath support': mpathpersist.found()}
>  summary_info += {'VNC support':       vnc.found()}
>  if vnc.found()
>    summary_info += {'VNC SASL support':  sasl.found()}
> diff --git a/meson_options.txt b/meson_options.txt
> index 543cf70043a2..b38a6ae92a92 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -6,6 +6,8 @@ option('docdir', type : 'string', value : 'doc',
>  option('gettext', type : 'boolean', value : true,
>         description: 'Localization of the GTK+ user interface')
>  
> +option('mpath', type : 'feature', value : 'auto',
> +       description: 'Multipath persistent reservation passthrough')
>  option('sdl', type : 'feature', value : 'auto',
>         description: 'SDL user interface')
>  option('sdl_image', type : 'feature', value : 'auto',
> 

This is not the latest version of the series, can you drop patches 2 and 3?

Paolo



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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-25 15:57   ` Paolo Bonzini
@ 2020-09-25 19:33     ` Alex Bennée
  2020-09-30 10:51     ` Alex Bennée
  1 sibling, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-25 19:33 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Thomas Huth, qemu-devel


Paolo Bonzini <pbonzini@redhat.com> writes:

> On 25/09/20 17:40, Alex Bennée wrote:
>> From: Paolo Bonzini <pbonzini@redhat.com>
>> 
>> This is the first compiler/linker test that has been moved to Meson.
>> Add more section headings to keep things clearer.
>> 
>> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
>> 
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  configure         | 77 +++-----------------------------------------
>>  meson.build       | 82 ++++++++++++++++++++++++++++++++++++++++++-----
>>  meson_options.txt |  2 ++
>>  3 files changed, 80 insertions(+), 81 deletions(-)
>> 
>> diff --git a/configure b/configure
>> index 48bf437021f6..b81868cf0231 100755
>> --- a/configure
>> +++ b/configure
>> @@ -403,7 +403,7 @@ netmap="no"
>>  sdl="auto"
>>  sdl_image="auto"
>>  virtfs=""
>> -mpath=""
>> +mpath="auto"
>>  vnc="enabled"
>>  sparse="no"
>>  vde=""
>> @@ -1116,9 +1116,9 @@ for opt do
>>    ;;
>>    --enable-virtfs) virtfs="yes"
>>    ;;
>> -  --disable-mpath) mpath="no"
>> +  --disable-mpath) mpath="disabled"
>>    ;;
>> -  --enable-mpath) mpath="yes"
>> +  --enable-mpath) mpath="enabled"
>>    ;;
>>    --disable-vnc) vnc="disabled"
>>    ;;
>> @@ -3848,57 +3848,6 @@ if test "$modules" = yes; then
>>      fi
>>  fi
>>  
>> -##########################################
>> -# libmpathpersist probe
>> -
>> -if test "$mpath" != "no" ; then
>> -  # probe for the new API
>> -  cat > $TMPC <<EOF
>> -#include <libudev.h>
>> -#include <mpath_persist.h>
>> -unsigned mpath_mx_alloc_len = 1024;
>> -int logsink;
>> -static struct config *multipath_conf;
>> -extern struct udev *udev;
>> -extern struct config *get_multipath_config(void);
>> -extern void put_multipath_config(struct config *conf);
>> -struct udev *udev;
>> -struct config *get_multipath_config(void) { return multipath_conf; }
>> -void put_multipath_config(struct config *conf) { }
>> -
>> -int main(void) {
>> -    udev = udev_new();
>> -    multipath_conf = mpath_lib_init();
>> -    return 0;
>> -}
>> -EOF
>> -  if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
>> -    mpathpersist=yes
>> -    mpathpersist_new_api=yes
>> -  else
>> -    # probe for the old API
>> -    cat > $TMPC <<EOF
>> -#include <libudev.h>
>> -#include <mpath_persist.h>
>> -unsigned mpath_mx_alloc_len = 1024;
>> -int logsink;
>> -int main(void) {
>> -    struct udev *udev = udev_new();
>> -    mpath_lib_init(udev);
>> -    return 0;
>> -}
>> -EOF
>> -    if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
>> -      mpathpersist=yes
>> -      mpathpersist_new_api=no
>> -    else
>> -      mpathpersist=no
>> -    fi
>> -  fi
>> -else
>> -  mpathpersist=no
>> -fi
>> -
>>  ##########################################
>>  # pthread probe
>>  PTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2"
>> @@ -6340,23 +6289,11 @@ if test "$softmmu" = yes ; then
>>        fi
>>        virtfs=no
>>      fi
>> -    if test "$mpath" != no && test "$mpathpersist" = yes ; then
>> -      mpath=yes
>> -    else
>> -      if test "$mpath" = yes; then
>> -        error_exit "Multipath requires libmpathpersist devel"
>> -      fi
>> -      mpath=no
>> -    fi
>>    else
>>      if test "$virtfs" = yes; then
>>        error_exit "VirtFS is supported only on Linux"
>>      fi
>>      virtfs=no
>> -    if test "$mpath" = yes; then
>> -      error_exit "Multipath is supported only on Linux"
>> -    fi
>> -    mpath=no
>>    fi
>>  fi
>>  
>> @@ -6897,12 +6834,6 @@ fi
>>  if test "$virtfs" = "yes" ; then
>>    echo "CONFIG_VIRTFS=y" >> $config_host_mak
>>  fi
>> -if test "$mpath" = "yes" ; then
>> -  echo "CONFIG_MPATH=y" >> $config_host_mak
>> -  if test "$mpathpersist_new_api" = "yes"; then
>> -    echo "CONFIG_MPATH_NEW_API=y" >> $config_host_mak
>> -  fi
>> -fi
>>  if test "$vhost_scsi" = "yes" ; then
>>    echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
>>  fi
>> @@ -7992,7 +7923,7 @@ NINJA=${ninja:-$PWD/ninjatool} $meson setup \
>>          -Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
>>          -Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
>>          -Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
>> -	-Dsdl=$sdl -Dsdl_image=$sdl_image \
>> +	-Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
>>  	-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
>>  	-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f\
>>          $cross_arg \
>> diff --git a/meson.build b/meson.build
>> index 48724988972d..c09d869f9b02 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -81,6 +81,14 @@ if 'SPARSE_CFLAGS' in config_host
>>                         'compile_commands.json'])
>>  endif
>>  
>> +###########################################
>> +# Target-specific checks and dependencies #
>> +###########################################
>> +
>> +if targetos != 'linux' and get_option('mpath').enabled()
>> +  error('Multipath is supported only on Linux')
>> +endif
>> +
>>  m = cc.find_library('m', required: false)
>>  util = cc.find_library('util', required: false)
>>  winmm = []
>> @@ -112,6 +120,11 @@ elif targetos == 'haiku'
>>              cc.find_library('network'),
>>              cc.find_library('bsd')]
>>  endif
>> +
>> +################
>> +# Dependencies #
>> +################
>> +
>>  # The path to glib.h is added to all compilation commands.  This was
>>  # grandfathered in from the QEMU Makefiles.
>>  add_project_arguments(config_host['GLIB_CFLAGS'].split(),
>> @@ -218,10 +231,6 @@ if 'CONFIG_SPICE' in config_host
>>                               link_args: config_host['SPICE_LIBS'].split())
>>  endif
>>  rt = cc.find_library('rt', required: false)
>> -libmpathpersist = not_found
>> -if config_host.has_key('CONFIG_MPATH')
>> -  libmpathpersist = cc.find_library('mpathpersist')
>> -endif
>>  libdl = not_found
>>  if 'CONFIG_PLUGIN' in config_host
>>    libdl = cc.find_library('dl', required: true)
>> @@ -252,9 +261,62 @@ if 'CONFIG_CURL' in config_host
>>                              link_args: config_host['CURL_LIBS'].split())
>>  endif
>>  libudev = not_found
>> -if target_os == 'linux'
>> -  libudev = dependency('libudev', static: enable_static)
>> +if targetos == 'linux'
>> +  libudev = dependency('libudev',
>> +                       required: get_option('mpath'),
>> +                       static: enable_static)
>> +endif
>> +
>> +mpathpersist = not_found
>> +if targetos == 'linux' and not get_option('mpath').disabled()
>> +  libmultipath = cc.find_library('multipath',
>> +                                 required: get_option('mpath'),
>> +                                 static: enable_static)
>> +  libmpathpersist = cc.find_library('mpathpersist',
>> +                                    required: get_option('mpath'),
>> +                                    static: enable_static)
>> +  if libmultipath.found() and libmpathpersist.found() and libudev.found()
>> +    if cc.links('''
>> +      #include <libudev.h>
>> +      #include <mpath_persist.h>
>> +      unsigned mpath_mx_alloc_len = 1024;
>> +      int logsink;
>> +      static struct config *multipath_conf;
>> +      extern struct udev *udev;
>> +      extern struct config *get_multipath_config(void);
>> +      extern void put_multipath_config(struct config *conf);
>> +      struct udev *udev;
>> +      struct config *get_multipath_config(void) { return multipath_conf; }
>> +      void put_multipath_config(struct config *conf) { }
>> +      int main(void) {
>> +          udev = udev_new();
>> +          multipath_conf = mpath_lib_init();
>> +          return 0;
>> +      }''', dependencies: [libmultipath, libmpathpersist, libudev])
>> +      mpathpersist = declare_dependency(dependencies: [libmultipath, libmpathpersist, libudev])
>> +      mpathpersist_new_api = true
>> +    elif cc.links('''
>> +      #include <libudev.h>
>> +      #include <mpath_persist.h>
>> +      unsigned mpath_mx_alloc_len = 1024;
>> +      int logsink;
>> +      int main(void) {
>> +          struct udev *udev = udev_new();
>> +          mpath_lib_init(udev);
>> +          return 0;
>> +      }''', dependencies: [libmultipath, libmpathpersist, libudev])
>> +      mpathpersist = declare_dependency(dependencies: [libmultipath, libmpathpersist, libudev])
>> +      mpathpersist_new_api = false
>> +    else
>> +      if get_option('mpath').enabled()
>> +        error('Cannot detect libmpathpersist API')
>> +      else
>> +        warning('Cannot detect libmpathpersist API, disabling')
>> +      endif
>> +    endif
>> +  endif
>>  endif
>> +
>>  brlapi = not_found
>>  if 'CONFIG_BRLAPI' in config_host
>>    brlapi = declare_dependency(link_args: config_host['BRLAPI_LIBS'].split())
>> @@ -436,6 +498,10 @@ has_gettid = cc.has_function('gettid')
>>  # Create config-host.h
>>  
>>  config_host_data.set('CONFIG_LIBUDEV', libudev.found())
>> +config_host_data.set('CONFIG_MPATH', mpathpersist.found())
>> +if mpathpersist.found()
>> +  config_host_data.set('CONFIG_MPATH_NEW_API', mpathpersist_new_api)
>> +endif
>>  config_host_data.set('CONFIG_SDL', sdl.found())
>>  config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
>>  config_host_data.set('CONFIG_VNC', vnc.found())
>> @@ -1185,7 +1251,7 @@ if have_tools
>>  
>>      executable('qemu-pr-helper', files('scsi/qemu-pr-helper.c', 'scsi/utils.c'),
>>                 dependencies: [authz, crypto, io, qom, qemuutil,
>> -                              libcap_ng, libudev, libmpathpersist],
>> +                              libcap_ng, mpathpersist],
>>                 install: true)
>>    endif
>>  
>> @@ -1407,7 +1473,7 @@ summary_info += {'Audio drivers':     config_host['CONFIG_AUDIO_DRIVERS']}
>>  summary_info += {'Block whitelist (rw)': config_host['CONFIG_BDRV_RW_WHITELIST']}
>>  summary_info += {'Block whitelist (ro)': config_host['CONFIG_BDRV_RO_WHITELIST']}
>>  summary_info += {'VirtFS support':    config_host.has_key('CONFIG_VIRTFS')}
>> -summary_info += {'Multipath support': config_host.has_key('CONFIG_MPATH')}
>> +summary_info += {'Multipath support': mpathpersist.found()}
>>  summary_info += {'VNC support':       vnc.found()}
>>  if vnc.found()
>>    summary_info += {'VNC SASL support':  sasl.found()}
>> diff --git a/meson_options.txt b/meson_options.txt
>> index 543cf70043a2..b38a6ae92a92 100644
>> --- a/meson_options.txt
>> +++ b/meson_options.txt
>> @@ -6,6 +6,8 @@ option('docdir', type : 'string', value : 'doc',
>>  option('gettext', type : 'boolean', value : true,
>>         description: 'Localization of the GTK+ user interface')
>>  
>> +option('mpath', type : 'feature', value : 'auto',
>> +       description: 'Multipath persistent reservation passthrough')
>>  option('sdl', type : 'feature', value : 'auto',
>>         description: 'SDL user interface')
>>  option('sdl_image', type : 'feature', value : 'auto',
>> 
>
> This is not the latest version of the series, can you drop patches 2
> and 3?

Sure.

-- 
Alex Bennée


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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-25 15:57   ` Paolo Bonzini
  2020-09-25 19:33     ` Alex Bennée
@ 2020-09-30 10:51     ` Alex Bennée
  2020-09-30 10:54       ` Thomas Huth
  1 sibling, 1 reply; 23+ messages in thread
From: Alex Bennée @ 2020-09-30 10:51 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Thomas Huth, qemu-devel


Paolo Bonzini <pbonzini@redhat.com> writes:

> On 25/09/20 17:40, Alex Bennée wrote:
>> From: Paolo Bonzini <pbonzini@redhat.com>
>> 
>> This is the first compiler/linker test that has been moved to Meson.
>> Add more section headings to keep things clearer.
>> 
>> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
>> 
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
<snip>
>
> This is not the latest version of the series, can you drop patches 2
> and 3?

Hmm so now I'm seeing failures in the bionic builds thanks to libmpath:

  Linking target qemu-pr-helper
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `free_config'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dlog'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `strlcpy'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `mpath_connect'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `mpath_disconnect'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `select_reservation_key'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `free_pathvec'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_get_maps'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `select_all_tg_pt'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `find_mp_by_alias'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `send_packet'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `cleanup_prio'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `pathinfo'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `disassemble_map'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_mapname'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `recv_packet'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `vector_alloc'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_get_status'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `pathcount'
  /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `cleanup_checkers'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `set_max_fds'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `disassemble_status'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_map_present'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_is_mpath'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_lib_release'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `get_udev_device'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_get_map'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `dm_lib_exit'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `free_multipathvec'
  /usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../libmpathpersist.so: undefined reference to `load_config'
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
  make: *** [Makefile.ninja:2150: qemu-pr-helper] Error 1
  make: *** Waiting for unfinished jobs....

Is this detection ordering issue? It happens on master as well but isn't
currently picked up by CI because nothing is running Focal yet.

-- 
Alex Bennée


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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-30 10:51     ` Alex Bennée
@ 2020-09-30 10:54       ` Thomas Huth
  2020-09-30 11:18         ` Alex Bennée
  2020-09-30 13:15         ` Paolo Bonzini
  0 siblings, 2 replies; 23+ messages in thread
From: Thomas Huth @ 2020-09-30 10:54 UTC (permalink / raw)
  To: Alex Bennée, Paolo Bonzini; +Cc: qemu-devel

On 30/09/2020 12.51, Alex Bennée wrote:
> 
> Paolo Bonzini <pbonzini@redhat.com> writes:
> 
>> On 25/09/20 17:40, Alex Bennée wrote:
>>> From: Paolo Bonzini <pbonzini@redhat.com>
>>>
>>> This is the first compiler/linker test that has been moved to Meson.
>>> Add more section headings to keep things clearer.
>>>
>>> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
>>>
>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> <snip>
>>
>> This is not the latest version of the series, can you drop patches 2
>> and 3?
> 
> Hmm so now I'm seeing failures in the bionic builds thanks to libmpath:

Paolo's PR with the fix is still not merged yet (see "[PULL v7 00/87]
Misc patches for 2020-09-24") ... but maybe you could pick the newer
version of the libmpath patches from his PR into your queue?

 Thomas



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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-30 10:54       ` Thomas Huth
@ 2020-09-30 11:18         ` Alex Bennée
  2020-09-30 13:15         ` Paolo Bonzini
  1 sibling, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-09-30 11:18 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Paolo Bonzini, qemu-devel


Thomas Huth <thuth@redhat.com> writes:

> On 30/09/2020 12.51, Alex Bennée wrote:
>> 
>> Paolo Bonzini <pbonzini@redhat.com> writes:
>> 
>>> On 25/09/20 17:40, Alex Bennée wrote:
>>>> From: Paolo Bonzini <pbonzini@redhat.com>
>>>>
>>>> This is the first compiler/linker test that has been moved to Meson.
>>>> Add more section headings to keep things clearer.
>>>>
>>>> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
>>>>
>>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
>>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> <snip>
>>>
>>> This is not the latest version of the series, can you drop patches 2
>>> and 3?
>> 
>> Hmm so now I'm seeing failures in the bionic builds thanks to libmpath:
>
> Paolo's PR with the fix is still not merged yet (see "[PULL v7 00/87]
> Misc patches for 2020-09-24") ... but maybe you could pick the newer
> version of the libmpath patches from his PR into your queue?

I did pick it as an experiment - but it's still broken and I haven't had
a chance to dig into the failure yet.

>
>  Thomas


-- 
Alex Bennée


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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-30 10:54       ` Thomas Huth
  2020-09-30 11:18         ` Alex Bennée
@ 2020-09-30 13:15         ` Paolo Bonzini
  2020-10-01  9:25           ` Alex Bennée
  1 sibling, 1 reply; 23+ messages in thread
From: Paolo Bonzini @ 2020-09-30 13:15 UTC (permalink / raw)
  To: Thomas Huth, Alex Bennée; +Cc: qemu-devel

On 30/09/20 12:54, Thomas Huth wrote:
> On 30/09/2020 12.51, Alex Bennée wrote:
>>
>> Paolo Bonzini <pbonzini@redhat.com> writes:
>>
>>> On 25/09/20 17:40, Alex Bennée wrote:
>>>> From: Paolo Bonzini <pbonzini@redhat.com>
>>>>
>>>> This is the first compiler/linker test that has been moved to Meson.
>>>> Add more section headings to keep things clearer.
>>>>
>>>> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
>>>>
>>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
>>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> <snip>
>>>
>>> This is not the latest version of the series, can you drop patches 2
>>> and 3?
>>
>> Hmm so now I'm seeing failures in the bionic builds thanks to libmpath:
> 
> Paolo's PR with the fix is still not merged yet (see "[PULL v7 00/87]
> Misc patches for 2020-09-24") ... but maybe you could pick the newer
> version of the libmpath patches from his PR into your queue?

Unfortunately that part is what's still broken.  I'll send again the
pull request today, hopefully eighth time is the charm.

Paolo



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

* Re: [PATCH v1 03/15] meson: move libmpathpersist test
  2020-09-30 13:15         ` Paolo Bonzini
@ 2020-10-01  9:25           ` Alex Bennée
  0 siblings, 0 replies; 23+ messages in thread
From: Alex Bennée @ 2020-10-01  9:25 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Peter Maydell, Thomas Huth, qemu-devel


Paolo Bonzini <pbonzini@redhat.com> writes:

> On 30/09/20 12:54, Thomas Huth wrote:
>> On 30/09/2020 12.51, Alex Bennée wrote:
>>>
>>> Paolo Bonzini <pbonzini@redhat.com> writes:
>>>
>>>> On 25/09/20 17:40, Alex Bennée wrote:
>>>>> From: Paolo Bonzini <pbonzini@redhat.com>
>>>>>
>>>>> This is the first compiler/linker test that has been moved to Meson.
>>>>> Add more section headings to keep things clearer.
>>>>>
>>>>> [thuth: Add check for mpathpersist.found() before showing mpathpersist_new_api]
>>>>>
>>>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>>> Message-Id: <20200918103430.297167-3-thuth@redhat.com>
>>>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>> <snip>
>>>>
>>>> This is not the latest version of the series, can you drop patches 2
>>>> and 3?
>>>
>>> Hmm so now I'm seeing failures in the bionic builds thanks to libmpath:
>> 
>> Paolo's PR with the fix is still not merged yet (see "[PULL v7 00/87]
>> Misc patches for 2020-09-24") ... but maybe you could pick the newer
>> version of the libmpath patches from his PR into your queue?
>
> Unfortunately that part is what's still broken.  I'll send again the
> pull request today, hopefully eighth time is the charm.

Re-basing on:

  Subject: [PULL v8 00/86] Misc QEMU patches for 2020-09-24
  Date: Wed, 30 Sep 2020 21:58:47 +0200
  Message-Id: <20200930195850.278104-1-pbonzini@redhat.com>

and everything is working again. Once your PR is merged I shall submit
mine.

-- 
Alex Bennée


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

end of thread, other threads:[~2020-10-01  9:26 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-25 15:40 [PATCH v1 00/15] testing/next pre-PR (python3.6, check-tcg) Alex Bennée
2020-09-25 15:40 ` [PATCH v1 01/15] tests/tcg: reinstate or replace desired parts of rules.mak Alex Bennée
2020-09-25 15:40 ` [PATCH v1 02/15] meson: move libudev test Alex Bennée
2020-09-25 15:40 ` [PATCH v1 03/15] meson: move libmpathpersist test Alex Bennée
2020-09-25 15:57   ` Paolo Bonzini
2020-09-25 19:33     ` Alex Bennée
2020-09-30 10:51     ` Alex Bennée
2020-09-30 10:54       ` Thomas Huth
2020-09-30 11:18         ` Alex Bennée
2020-09-30 13:15         ` Paolo Bonzini
2020-10-01  9:25           ` Alex Bennée
2020-09-25 15:40 ` [PATCH v1 04/15] migration: Silence compiler warning in global_state_store_running() Alex Bennée
2020-09-25 15:40 ` [PATCH v1 05/15] travis.yml: Drop the default softmmu builds Alex Bennée
2020-09-25 15:40 ` [PATCH v1 06/15] travis.yml: Update Travis to use Bionic and Focal instead of Xenial Alex Bennée
2020-09-25 15:40 ` [PATCH v1 07/15] travis.yml: Drop the superfluous Python 3.6 build Alex Bennée
2020-09-25 15:40 ` [PATCH v1 08/15] travis.yml: Drop the Python 3.5 build Alex Bennée
2020-09-25 15:40 ` [PATCH v1 09/15] tests/docker: Use Fedora containers for MinGW cross-builds in the gitlab-CI Alex Bennée
2020-09-25 15:40 ` [PATCH v1 10/15] gitlab-ci: Remove the Debian9-based containers and containers-layer3 Alex Bennée
2020-09-25 15:40 ` [PATCH v1 11/15] tests/docker: Update the tricore container to debian 10 Alex Bennée
2020-09-25 15:40 ` [PATCH v1 12/15] shippable.yml: Remove the Debian9-based MinGW cross-compiler tests Alex Bennée
2020-09-25 15:40 ` [PATCH v1 13/15] tests/docker: Remove old Debian 9 containers Alex Bennée
2020-09-25 15:40 ` [PATCH v1 14/15] gitlab-ci: Increase the timeout for the cross-compiler builds Alex Bennée
2020-09-25 15:40 ` [PATCH v1 15/15] configure: Bump the minimum required Python version to 3.6 Alex Bennée

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.