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