Accepting request 810961 from home:bfrogers:branches:Virtualization

- Work around gcc 10 bug (boo#1172411)
  build-Work-around-gcc10-bug-by-not-using.patch
- Now that gcc10 compatibility is figured out, remove NO_WERROR=1
  again from ipxe make.
- Fix segfault when doing HMP wavcapture (boo#1171712)
  audio-fix-wavcapture-segfault.patch

OBS-URL: https://build.opensuse.org/request/show/810961
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=551
This commit is contained in:
Bruce Rogers 2020-06-02 21:03:48 +00:00 committed by Git OBS Bridge
parent 307d0ef2ba
commit e977fa83c7
8 changed files with 220 additions and 78 deletions

View File

@ -0,0 +1,49 @@
From: Bruce Rogers <brogers@suse.com>
Date: Thu, 21 May 2020 11:29:31 -0600
Subject: audio: fix wavcapture segfault
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Git-commit: cbaf25d1f59ee13fc7542a06ea70784f2e000c04
References: boo#1171712
Commit 571a8c522e caused the HMP wavcapture command to segfault when
processing audio data in audio_pcm_sw_write(), where a NULL
sw->hw->pcm_ops is dereferenced. This fix checks that the pointer is
valid before dereferincing it. A similar fix is also made in the
parallel function audio_pcm_sw_read().
Fixes: 571a8c522e (audio: split ctl_* functions into enable_* and
volume_*)
Signed-off-by: Bruce Rogers <brogers@suse.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20200521172931.121903-1-brogers@suse.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
audio/audio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/audio/audio.c b/audio/audio.c
index 7a9e6803558b85ff8d4158aa35f9..08a067722b2c33b3f31cb8cf9884 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -649,7 +649,7 @@ static size_t audio_pcm_sw_read(SWVoiceIn *sw, void *buf, size_t size)
total += isamp;
}
- if (!hw->pcm_ops->volume_in) {
+ if (hw->pcm_ops && !hw->pcm_ops->volume_in) {
mixeng_volume (sw->buf, ret, &sw->vol);
}
@@ -736,7 +736,7 @@ static size_t audio_pcm_sw_write(SWVoiceOut *sw, void *buf, size_t size)
if (swlim) {
sw->conv (sw->buf, buf, swlim);
- if (!sw->hw->pcm_ops->volume_out) {
+ if (sw->hw->pcm_ops && !sw->hw->pcm_ops->volume_out) {
mixeng_volume (sw->buf, swlim, &sw->vol);
}
}

View File

@ -0,0 +1,78 @@
From: Bruce Rogers <brogers@suse.com>
Date: Mon, 1 Jun 2020 14:48:23 -0600
Subject: build: Work around gcc10 bug by not using char type in triggering
code
References: boo#1172411
It appears we are bumping into a bug in the gcc10 compiler where it gets
it wrong in deciding that we're beyond the end of an array, in this case
because of some detection wrt the char type. Change to non-char type to
work around this issue. As near as I can tell, this isn't introducing
any behavioral changes or another bug. (see for eg:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92955 )
Here is the error reported:
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c: In function 'reset_tlb_mmu_ways56.constprop.isra':
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:377:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 377 | entry[6][ei].asid = 1;
[ 2046s] | ~~~~~~~~~~~~~~~~~~^~~
[ 2046s] /home/abuild/rpmbuild/BUILD/qemu-5.0.50/target/xtensa/mmu_helper.c:378:31: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
[ 2046s] 378 | entry[6][ei].attr = 3;
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
target/xtensa/cpu.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/xtensa/cpu.h b/target/xtensa/cpu.h
index 7a46dccbe11b05e9565192b9e242..fc039349623057083541c160270f 100644
--- a/target/xtensa/cpu.h
+++ b/target/xtensa/cpu.h
@@ -309,8 +309,8 @@ struct CPUXtensaState;
typedef struct xtensa_tlb_entry {
uint32_t vaddr;
uint32_t paddr;
- uint8_t asid;
- uint8_t attr;
+ uint32_t asid;
+ uint32_t attr;
bool variable;
} xtensa_tlb_entry;

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5bc454d2f284d04edfb3f0e3b8edf72a939e2935fcc81401b483b755a7e239be
size 64236
oid sha256:6a979bc525329c87dc152af9613a1d7bc00c0bb3a9f0deb477a4e70d2a833d94
size 53172

View File

@ -19,9 +19,6 @@ NEXT_RELEASE_IS_MAJOR=0
# We can do so by specifing the value here:
#SEABIOS_VERSION=1.13.0
# The shared git repo, on which $GIT_LOCAL_TREE is based
GIT_TREE=git://github.com/openSUSE/qemu.git
# Temporary directories used by this script
GIT_DIR=/dev/shm/qemu-factory-git-dir
CMP_DIR=/dev/shm/qemu-factory-cmp-dir

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Tue Jun 2 17:22:57 UTC 2020 - Bruce Rogers <brogers@suse.com>
- Work around gcc 10 bug (boo#1172411)
build-Work-around-gcc10-bug-by-not-using.patch
-------------------------------------------------------------------
Mon Jun 1 17:48:14 UTC 2020 - Bruce Rogers <brogers@suse.com>
- Now that gcc10 compatibility is figured out, remove NO_WERROR=1
again from ipxe make.
-------------------------------------------------------------------
Tue May 26 14:35:34 UTC 2020 - Bruce Rogers <brogers@suse.com>
- Fix segfault when doing HMP wavcapture (boo#1171712)
audio-fix-wavcapture-segfault.patch
-------------------------------------------------------------------
Tue May 5 21:11:11 UTC 2020 - Bruce Rogers <brogers@suse.com>

136
qemu.spec
View File

@ -127,67 +127,69 @@ Source303: README.PACKAGING
# This patch queue is auto-generated - see README.PACKAGING for process
# Patches applied in base project:
Patch00000: XXX-dont-dump-core-on-sigabort.patch
Patch00001: qemu-binfmt-conf-Modify-default-path.patch
Patch00002: qemu-cvs-gettimeofday.patch
Patch00003: qemu-cvs-ioctl_debug.patch
Patch00004: qemu-cvs-ioctl_nodirection.patch
Patch00005: linux-user-add-binfmt-wrapper-for-argv-0.patch
Patch00006: PPC-KVM-Disable-mmu-notifier-check.patch
Patch00007: linux-user-binfmt-support-host-binaries.patch
Patch00008: linux-user-Fake-proc-cpuinfo.patch
Patch00009: linux-user-use-target_ulong.patch
Patch00010: Make-char-muxer-more-robust-wrt-small-FI.patch
Patch00011: linux-user-lseek-explicitly-cast-non-set.patch
Patch00012: AIO-Reduce-number-of-threads-for-32bit-h.patch
Patch00013: xen_disk-Add-suse-specific-flush-disable.patch
Patch00014: qemu-bridge-helper-reduce-security-profi.patch
Patch00015: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
Patch00016: linux-user-properly-test-for-infinite-ti.patch
Patch00017: roms-Makefile-pass-a-packaging-timestamp.patch
Patch00018: Raise-soft-address-space-limit-to-hard-l.patch
Patch00019: increase-x86_64-physical-bits-to-42.patch
Patch00020: i8254-Fix-migration-from-SLE11-SP2.patch
Patch00021: acpi_piix4-Fix-migration-from-SLE11-SP2.patch
Patch00022: Switch-order-of-libraries-for-mpath-supp.patch
Patch00023: Make-installed-scripts-explicitly-python.patch
Patch00024: hw-smbios-handle-both-file-formats-regar.patch
Patch00025: xen-add-block-resize-support-for-xen-dis.patch
Patch00026: tests-qemu-iotests-Triple-timeout-of-i-o.patch
Patch00027: tests-Fix-block-tests-to-be-compatible-w.patch
Patch00028: xen-ignore-live-parameter-from-xen-save-.patch
Patch00029: Conditionalize-ui-bitmap-installation-be.patch
Patch00030: tests-change-error-message-in-test-162.patch
Patch00031: hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch
Patch00032: hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch
Patch00033: hw-intc-exynos4210_gic-provide-more-room.patch
Patch00034: configure-only-populate-roms-if-softmmu.patch
Patch00035: pc-bios-s390-ccw-net-avoid-warning-about.patch
Patch00036: roms-change-cross-compiler-naming-to-be-.patch
Patch00037: tests-Disable-some-block-tests-for-now.patch
Patch00038: test-add-mapping-from-arch-of-i686-to-qe.patch
Patch00039: roms-Makefile-enable-cross-compile-for-b.patch
Patch00040: s390x-Move-diagnose-308-subcodes-and-rcs.patch
Patch00041: Sync-pv.patch
Patch00042: s390x-protvirt-Support-unpack-facility.patch
Patch00043: s390x-protvirt-Add-migration-blocker.patch
Patch00044: s390x-protvirt-Inhibit-balloon-when-swit.patch
Patch00045: s390x-protvirt-KVM-intercept-changes.patch
Patch00046: s390x-Add-SIDA-memory-ops.patch
Patch00047: s390x-protvirt-Move-STSI-data-over-SIDAD.patch
Patch00048: s390x-protvirt-SCLP-interpretation.patch
Patch00049: s390x-protvirt-Set-guest-IPL-PSW.patch
Patch00050: s390x-protvirt-Move-diag-308-data-over-S.patch
Patch00051: s390x-protvirt-Disable-address-checks-fo.patch
Patch00052: s390x-protvirt-Move-IO-control-structure.patch
Patch00053: s390x-protvirt-Handle-SIGP-store-status-.patch
Patch00054: s390x-Add-unpack-facility-feature-to-GA1.patch
Patch00055: s390x-s390-virtio-ccw-Fix-build-on-syste.patch
Patch00056: configure-remove-pkgversion-from-CONFIG_.patch
Patch00057: gcc10-maybe-uninitialized.patch
Patch00058: docs-add-SUSE-support-statements-to-html.patch
Patch00059: virtiofsd-add-rlimit-nofile-NUM-option.patch
Patch00060: virtiofsd-stay-below-fs.file-max-sysctl-.patch
Patch00000: virtiofsd-add-rlimit-nofile-NUM-option.patch
Patch00001: virtiofsd-stay-below-fs.file-max-sysctl-.patch
Patch00002: audio-fix-wavcapture-segfault.patch
Patch00003: XXX-dont-dump-core-on-sigabort.patch
Patch00004: qemu-binfmt-conf-Modify-default-path.patch
Patch00005: qemu-cvs-gettimeofday.patch
Patch00006: qemu-cvs-ioctl_debug.patch
Patch00007: qemu-cvs-ioctl_nodirection.patch
Patch00008: linux-user-add-binfmt-wrapper-for-argv-0.patch
Patch00009: PPC-KVM-Disable-mmu-notifier-check.patch
Patch00010: linux-user-binfmt-support-host-binaries.patch
Patch00011: linux-user-Fake-proc-cpuinfo.patch
Patch00012: linux-user-use-target_ulong.patch
Patch00013: Make-char-muxer-more-robust-wrt-small-FI.patch
Patch00014: linux-user-lseek-explicitly-cast-non-set.patch
Patch00015: AIO-Reduce-number-of-threads-for-32bit-h.patch
Patch00016: xen_disk-Add-suse-specific-flush-disable.patch
Patch00017: qemu-bridge-helper-reduce-security-profi.patch
Patch00018: qemu-binfmt-conf-use-qemu-ARCH-binfmt.patch
Patch00019: linux-user-properly-test-for-infinite-ti.patch
Patch00020: roms-Makefile-pass-a-packaging-timestamp.patch
Patch00021: Raise-soft-address-space-limit-to-hard-l.patch
Patch00022: increase-x86_64-physical-bits-to-42.patch
Patch00023: i8254-Fix-migration-from-SLE11-SP2.patch
Patch00024: acpi_piix4-Fix-migration-from-SLE11-SP2.patch
Patch00025: Switch-order-of-libraries-for-mpath-supp.patch
Patch00026: Make-installed-scripts-explicitly-python.patch
Patch00027: hw-smbios-handle-both-file-formats-regar.patch
Patch00028: xen-add-block-resize-support-for-xen-dis.patch
Patch00029: tests-qemu-iotests-Triple-timeout-of-i-o.patch
Patch00030: tests-Fix-block-tests-to-be-compatible-w.patch
Patch00031: xen-ignore-live-parameter-from-xen-save-.patch
Patch00032: Conditionalize-ui-bitmap-installation-be.patch
Patch00033: tests-change-error-message-in-test-162.patch
Patch00034: hw-usb-hcd-xhci-Fix-GCC-9-build-warning.patch
Patch00035: hw-usb-dev-mtp-Fix-GCC-9-build-warning.patch
Patch00036: hw-intc-exynos4210_gic-provide-more-room.patch
Patch00037: configure-only-populate-roms-if-softmmu.patch
Patch00038: pc-bios-s390-ccw-net-avoid-warning-about.patch
Patch00039: roms-change-cross-compiler-naming-to-be-.patch
Patch00040: tests-Disable-some-block-tests-for-now.patch
Patch00041: test-add-mapping-from-arch-of-i686-to-qe.patch
Patch00042: roms-Makefile-enable-cross-compile-for-b.patch
Patch00043: s390x-Move-diagnose-308-subcodes-and-rcs.patch
Patch00044: Sync-pv.patch
Patch00045: s390x-protvirt-Support-unpack-facility.patch
Patch00046: s390x-protvirt-Add-migration-blocker.patch
Patch00047: s390x-protvirt-Inhibit-balloon-when-swit.patch
Patch00048: s390x-protvirt-KVM-intercept-changes.patch
Patch00049: s390x-Add-SIDA-memory-ops.patch
Patch00050: s390x-protvirt-Move-STSI-data-over-SIDAD.patch
Patch00051: s390x-protvirt-SCLP-interpretation.patch
Patch00052: s390x-protvirt-Set-guest-IPL-PSW.patch
Patch00053: s390x-protvirt-Move-diag-308-data-over-S.patch
Patch00054: s390x-protvirt-Disable-address-checks-fo.patch
Patch00055: s390x-protvirt-Move-IO-control-structure.patch
Patch00056: s390x-protvirt-Handle-SIGP-store-status-.patch
Patch00057: s390x-Add-unpack-facility-feature-to-GA1.patch
Patch00058: s390x-s390-virtio-ccw-Fix-build-on-syste.patch
Patch00059: configure-remove-pkgversion-from-CONFIG_.patch
Patch00060: gcc10-maybe-uninitialized.patch
Patch00061: docs-add-SUSE-support-statements-to-html.patch
Patch00062: build-Work-around-gcc10-bug-by-not-using.patch
# Patches applied in roms/seabios/:
Patch01000: seabios-use-python2-explicitly-as-needed.patch
Patch01001: seabios-switch-to-python3-as-needed.patch
@ -954,11 +956,13 @@ This package provides a service file for starting and stopping KSM.
%patch00055 -p1
%patch00056 -p1
%patch00057 -p1
%if %{legacy_qemu_kvm} && 0%{?is_opensuse} == 0
%patch00058 -p1
%endif
%patch00059 -p1
%patch00060 -p1
%if %{legacy_qemu_kvm} && 0%{?is_opensuse} == 0
%patch00061 -p1
%endif
%patch00062 -p1
%patch01000 -p1
%patch01001 -p1
%patch01002 -p1
@ -1368,11 +1372,11 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms seavgabios-ati \
HOSTCC=cc \
%endif
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom NO_WERROR=1
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom
%ifnarch %ix86
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efirom \
EDK2_BASETOOLS_OPTFLAGS='-fPIE' NO_WERROR=1
EDK2_BASETOOLS_OPTFLAGS='-fPIE'
%endif
make -C %{_builddir}/%buildsubdir/roms sgabios \
@ -1383,7 +1387,7 @@ pushd %{_builddir}/%buildsubdir
patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch
popd
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms \
pxerom_variants=virtio pxerom_targets=1af41000 pxerom NO_WERROR=1
pxerom_variants=virtio pxerom_targets=1af41000 pxerom
%endif
# enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward

View File

@ -1201,11 +1201,11 @@ make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms seavgabios-ati \
HOSTCC=cc \
%endif
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom NO_WERROR=1
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms pxerom
%ifnarch %ix86
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms efirom \
EDK2_BASETOOLS_OPTFLAGS='-fPIE' NO_WERROR=1
EDK2_BASETOOLS_OPTFLAGS='-fPIE'
%endif
make -C %{_builddir}/%buildsubdir/roms sgabios \
@ -1216,7 +1216,7 @@ pushd %{_builddir}/%buildsubdir
patch -p1 < %_sourcedir/stub-out-the-SAN-req-s-in-int13.patch
popd
make %{?_smp_mflags} -C %{_builddir}/%buildsubdir/roms \
pxerom_variants=virtio pxerom_targets=1af41000 pxerom NO_WERROR=1
pxerom_variants=virtio pxerom_targets=1af41000 pxerom
%endif
# enforce pxe rom sizes for migration compatability from SLE 11 SP3 forward

View File

@ -548,10 +548,6 @@ rm -rf $BUNDLE_DIR
if [ "$WRITE_LOG" = "1" ]; then
# Factory requires all deleted and added patches to be mentioned
if [ -e qemu.changes.deleted ] || [ -e qemu.changes.added ]; then
echo "Patch queue updated from ${GIT_TREE} ${GIT_BRANCH}" > \
$package.changes.proposed
fi
if [ -e qemu.changes.deleted ]; then
echo "* Patches dropped:" >> $package.changes.proposed
cat qemu.changes.deleted >> $package.changes.proposed