Current usage of Werror=switch-enum by default for libvirt builds out
of the git tree causes issues when new items are added to libxl public
API enums if those are used in a switch statement in libvirt code.
This leads to libvirt build failures for seemingly unrelated libxl
changes.

In order to prevent those errors from blocking the push gate, disable
Werror for libvirt builds when not in a libvirt specific flight.

The errors will be reported on the libvirt flight, and block the
pushes there.  So the author of the changes in libxl is still expected
to send a fix to libvirt code.  This is no ideal, but the other option
is to just disable Werror for all libvirt builds and let libvirt
developers fix the breakage when they notice it.

runvar differences for a xen-unstable flight are:

--- /dev/fd/63  2022-09-13 09:53:58.044441678 +0000
+++ /dev/fd/62  2022-09-13 09:53:58.044441678 +0000
@@ -574,6 +574,10 @@
 test-xtf-amd64-amd64-3                                arch                     
       amd64
 test-xtf-amd64-amd64-4                                arch                     
       amd64
 test-xtf-amd64-amd64-5                                arch                     
       amd64
+build-amd64-libvirt                                   autogen_options          
       --disable-werror
+build-arm64-libvirt                                   autogen_options          
       --disable-werror
+build-armhf-libvirt                                   autogen_options          
       --disable-werror
+build-i386-libvirt                                    autogen_options          
       --disable-werror
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm    bios                     
       seabios
 test-amd64-amd64-qemuu-nested-amd                     bios                     
       seabios
 test-amd64-amd64-qemuu-nested-intel                   bios                     
       seabios
@@ -1217,6 +1221,10 @@
 build-arm64-libvirt                                   make_njobs               
       1
 build-armhf-libvirt                                   make_njobs               
       1
 build-i386-libvirt                                    make_njobs               
       1
+build-amd64-libvirt                                   meson_options            
       -Dgit_werror=disabled
+build-arm64-libvirt                                   meson_options            
       -Dgit_werror=disabled
+build-armhf-libvirt                                   meson_options            
       -Dgit_werror=disabled
+build-i386-libvirt                                    meson_options            
       -Dgit_werror=disabled
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict recipe_dmrestrict        
       true
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict  recipe_dmrestrict        
       true
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict recipe_nomigrate         
       true

Signed-off-by: Roger Pau Monné <roger....@citrix.com>
---
I'm unsure whether we want o disable Werror even for libvirt flights,
but this seems more conservative.

This does at least unblock the libvirt builds for both the
xen-unstable and the libvirt flights.
---
Cc: Ian Jackson <i...@xenproject.org>
Cc: Anthony PERARD <anthony.per...@citrix.com>
Cc: Julien Grall <jul...@xen.org>
---
 mfi-common       | 2 +-
 ts-libvirt-build | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/mfi-common b/mfi-common
index 59e712f4..450229e9 100644
--- a/mfi-common
+++ b/mfi-common
@@ -459,7 +459,7 @@ create_build_jobs () {
     libvirt_build_runvars=''
     case "$branch" in
     libvirt*) ;;
-    *)        libvirt_build_runvars+=" make_njobs=1";;
+    *)        libvirt_build_runvars+=" make_njobs=1 
meson_options=-Dgit_werror=disabled autogen_options=--disable-werror";;
     esac
 
     job_create_build build-$arch-libvirt build-libvirt                       \
diff --git a/ts-libvirt-build b/ts-libvirt-build
index 16b45cfd..e4faa1d7 100755
--- a/ts-libvirt-build
+++ b/ts-libvirt-build
@@ -73,7 +73,7 @@ sub config() {
                              --with-libxl --without-xen --without-xenapi 
--without-selinux \\
                              --without-lxc --without-vbox --without-uml \\
                              --without-qemu --without-openvz --without-vmware 
\\
-                             --sysconfdir=/etc --localstatedir=/var #/
+                             --sysconfdir=/etc --localstatedir=/var 
$r{autogen_options} #/
 END
     } else {
         target_cmd_build($ho, 3600, $builddir, <<END);
@@ -87,6 +87,7 @@ END
                 -Ddriver_libvirtd=enabled \\
                 -Ddriver_remote=enabled \\
                 --sysconfdir=/etc --localstatedir=/var \\
+                $r{meson_options} \\
                 build
 END
     }
-- 
2.37.3


Reply via email to