package/qemu: bump to version 6.1.0

Remove upstream patches.
Drop 0003-meson-add-tests-option.patch and disable the fp-bench build by default [1]

Qemu now requires at least gcc 7.x to build.

Disable optional dependency for eBPF RSS loader.

See:
https://wiki.qemu.org/ChangeLog/6.1#Build_Information

[1] https://lists.nongnu.org/archive/html/qemu-devel/2021-03/msg00947.html

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Romain Naour 2021-09-12 16:11:36 +02:00 committed by Yann E. MORIN
parent 1b4fc24d65
commit 33c69c02fb
10 changed files with 37 additions and 289 deletions

View File

@ -1,98 +0,0 @@
From 839e51aa452345b440f8d2d0df84ab58bdedfcd1 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 14 Nov 2020 21:54:17 +0100
Subject: [PATCH] Fix build with 64 bits time_t
time element is deprecated on new input_event structure in kernel's
input.h [1]
This will avoid the following build failure:
hw/input/virtio-input-host.c: In function 'virtio_input_host_handle_status':
hw/input/virtio-input-host.c:198:28: error: 'struct input_event' has no member named 'time'
198 | if (gettimeofday(&evdev.time, NULL)) {
| ^
Fixes:
- http://autobuild.buildroot.org/results/a538167e288c14208d557cd45446df86d3d599d5
- http://autobuild.buildroot.org/results/efd4474fb4b6c0ce0ab3838ce130429c51e43bbb
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
contrib/vhost-user-input/main.c | 10 +++++++++-
hw/input/virtio-input-host.c | 10 +++++++++-
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/contrib/vhost-user-input/main.c b/contrib/vhost-user-input/main.c
index 6020c6f33a..e688c3e0a9 100644
--- a/contrib/vhost-user-input/main.c
+++ b/contrib/vhost-user-input/main.c
@@ -15,6 +15,11 @@
#include "standard-headers/linux/virtio_input.h"
#include "qapi/error.h"
+#ifndef input_event_sec
+#define input_event_sec time.tv_sec
+#define input_event_usec time.tv_usec
+#endif
+
enum {
VHOST_USER_INPUT_MAX_QUEUES = 2,
};
@@ -113,13 +118,16 @@ vi_evdev_watch(VuDev *dev, int condition, void *data)
static void vi_handle_status(VuInput *vi, virtio_input_event *event)
{
struct input_event evdev;
+ struct timeval tval;
int rc;
- if (gettimeofday(&evdev.time, NULL)) {
+ if (gettimeofday(&tval, NULL)) {
perror("vi_handle_status: gettimeofday");
return;
}
+ evdev.input_event_sec = tval.tv_sec;
+ evdev.input_event_usec = tval.tv_usec;
evdev.type = le16toh(event->type);
evdev.code = le16toh(event->code);
evdev.value = le32toh(event->value);
diff --git a/hw/input/virtio-input-host.c b/hw/input/virtio-input-host.c
index 85daf73f1a..2e261737e1 100644
--- a/hw/input/virtio-input-host.c
+++ b/hw/input/virtio-input-host.c
@@ -16,6 +16,11 @@
#include <sys/ioctl.h>
#include "standard-headers/linux/input.h"
+#ifndef input_event_sec
+#define input_event_sec time.tv_sec
+#define input_event_usec time.tv_usec
+#endif
+
/* ----------------------------------------------------------------- */
static struct virtio_input_config virtio_input_host_config[] = {
@@ -193,13 +198,16 @@ static void virtio_input_host_handle_status(VirtIOInput *vinput,
{
VirtIOInputHost *vih = VIRTIO_INPUT_HOST(vinput);
struct input_event evdev;
+ struct timeval tval;
int rc;
- if (gettimeofday(&evdev.time, NULL)) {
+ if (gettimeofday(&tval, NULL)) {
perror("virtio_input_host_handle_status: gettimeofday");
return;
}
+ evdev.input_event_sec = tval.tv_sec;
+ evdev.input_event_usec = tval.tv_usec;
evdev.type = le16_to_cpu(event->type);
evdev.code = le16_to_cpu(event->code);
evdev.value = le32_to_cpu(event->value);
--
2.29.2

View File

@ -0,0 +1,28 @@
From f82238299d3c4cd23ca60cfc0cf4271f5c860873 Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@gmail.com>
Date: Wed, 25 Aug 2021 21:55:53 +0200
Subject: [PATCH] tests/fp: disable fp-bench build by default
Fixes:
https://lists.nongnu.org/archive/html/qemu-devel/2021-03/msg00947.html
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
tests/fp/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/fp/meson.build b/tests/fp/meson.build
index 07e2cdc8d2..c96460b7f1 100644
--- a/tests/fp/meson.build
+++ b/tests/fp/meson.build
@@ -631,6 +631,7 @@ fpbench = executable(
dependencies: [qemuutil],
include_directories: [sfinc, include_directories(tfdir)],
c_args: fpcflags,
+ build_by_default: false,
)
fptestlog2 = executable(
--
2.31.1

View File

@ -1,94 +0,0 @@
From c24f6cc8f847a4f90cd8fe0f94604862c5ac4a5e Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@gmail.com>
Date: Mon, 21 Dec 2020 22:12:14 +0100
Subject: [PATCH] meson: add tests option
tests/fp/fp-bench.c use fenv.h that is not always provided
by the libc (uClibc).
To workaround this issue, add an new meson option to
disable tests while building Qemu.
Fixes:
http://autobuild.buildroot.net/results/53f5d8baa994d599b9da013ee643b82353366ec3/build-end.log
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Adam Duskett <aduskett@gmail.com>
Refresh for 6.0.0
---
configure | 7 +++++++
meson.build | 5 ++++-
meson_options.txt | 2 ++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 18c26e0389..7cceae4418 100755
--- a/configure
+++ b/configure
@@ -460,6 +460,7 @@ meson=""
ninja=""
skip_meson=no
gettext="auto"
+tests="auto"
fuse="auto"
fuse_lseek="auto"
multiprocess="auto"
@@ -1549,6 +1550,10 @@ for opt do
;;
--disable-libdaxctl) libdaxctl=no
;;
+ --disable-tests) tests="disabled"
+ ;;
+ --enable-tests) tests="enabled"
+ ;;
--enable-fuse) fuse="enabled"
;;
--disable-fuse) fuse="disabled"
@@ -1915,6 +1920,7 @@ disabled with --disable-FEATURE, default is enabled if available
xkbcommon xkbcommon support
rng-none dummy RNG, avoid using /dev/(u)random and getrandom()
libdaxctl libdaxctl support
+ tests build tests
fuse FUSE block device export
fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports
multiprocess Out of process device emulation support
@@ -6422,6 +6428,7 @@ NINJA=$ninja $meson setup \
-Dzstd=$zstd -Dseccomp=$seccomp -Dvirtfs=$virtfs -Dcap_ng=$cap_ng \
-Dattr=$attr -Ddefault_devices=$default_devices \
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
+ -Dtests=$tests \
-Dvhost_user_blk_server=$vhost_user_blk_server -Dmultiprocess=$multiprocess \
-Dfuse=$fuse -Dfuse_lseek=$fuse_lseek -Dguest_agent_msi=$guest_agent_msi \
$(if test "$default_features" = no; then echo "-Dauto_features=disabled"; fi) \
diff --git a/meson.build b/meson.build
index e3386196ba..7f4efdc347 100644
--- a/meson.build
+++ b/meson.build
@@ -2381,7 +2381,10 @@ subdir('scripts')
subdir('tools')
subdir('pc-bios')
subdir('docs')
-subdir('tests')
+if get_option('tests').enabled()
+ subdir('tests')
+endif
+
if gtk.found()
subdir('po')
endif
diff --git a/meson_options.txt b/meson_options.txt
index f6f64785fe..81bffbfe87 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -111,6 +111,8 @@ option('fuse_lseek', type : 'feature', value : 'auto',
option('vhost_user_blk_server', type: 'feature', value: 'auto',
description: 'build vhost-user-blk server')
+option('tests', type : 'feature', value : 'auto',
+ description: 'Tests build support')
option('virtfs', type: 'feature', value: 'auto',
description: 'virtio-9p support')
option('virtiofsd', type: 'feature', value: 'auto',
--
2.29.2

View File

@ -1,41 +0,0 @@
From 14833e24dea49303ebc2464813601054b6cdfcac Mon Sep 17 00:00:00 2001
From: Alexey Neyman <stilor@att.net>
Date: Wed, 21 Jul 2021 19:08:46 -0700
Subject: [PATCH] Makefile: ignore long options
When searching for options like -n in MAKEFLAGS, current code may result
in a false positive match when make is invoked with long options like
--no-print-directory. This has been observed with certain versions of
host make (e.g. 3.82) while building the Qemu package in buildroot.
Filter out such long options before searching for one-character options.
Signed-off-by: Alexey Neyman <stilor@att.net>
Message-Id: <20210722020846.3678817-1-stilor@att.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 6c36330eef..401c623a65 100644
--- a/Makefile
+++ b/Makefile
@@ -129,9 +129,11 @@ endif
# 4. Rules to bridge to other makefiles
ifneq ($(NINJA),)
-MAKE.n = $(findstring n,$(firstword $(MAKEFLAGS)))
-MAKE.k = $(findstring k,$(firstword $(MAKEFLAGS)))
-MAKE.q = $(findstring q,$(firstword $(MAKEFLAGS)))
+# Filter out long options to avoid flags like --no-print-directory which
+# may result in false positive match for MAKE.n
+MAKE.n = $(findstring n,$(firstword $(filter-out --%,$(MAKEFLAGS))))
+MAKE.k = $(findstring k,$(firstword $(filter-out --%,$(MAKEFLAGS))))
+MAKE.q = $(findstring q,$(firstword $(filter-out --%,$(MAKEFLAGS))))
MAKE.nq = $(if $(word 2, $(MAKE.n) $(MAKE.q)),nq)
NINJAFLAGS = $(if $V,-v) $(if $(MAKE.n), -n) $(if $(MAKE.k), -k0) \
$(filter-out -j, $(lastword -j1 $(filter -l% -j%, $(MAKEFLAGS)))) \
--
2.27.0

View File

@ -1,46 +0,0 @@
From 4d5280c066eb46a31556044fb52c2618928b0019 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Mon, 9 Aug 2021 10:04:07 +0200
Subject: [PATCH] block/export/fuse.c: fix musl build
Fix the following build failure on musl raised since version 6.0.0 and
https://gitlab.com/qemu-project/qemu/-/commit/4ca37a96a75aafe7a37ba51ab1912b09b7190a6b
because musl does not define FALLOC_FL_ZERO_RANGE:
../block/export/fuse.c: In function 'fuse_fallocate':
../block/export/fuse.c:563:23: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
563 | } else if (mode & FALLOC_FL_ZERO_RANGE) {
| ^~~~~~~~~~~~~~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/b96e3d364fd1f8bbfb18904a742e73327d308f64
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: sent to qemu-devel@nongnu.org]
---
block/export/fuse.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/block/export/fuse.c b/block/export/fuse.c
index ada9e263eb..07e31129a6 100644
--- a/block/export/fuse.c
+++ b/block/export/fuse.c
@@ -635,6 +635,7 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t inode, int mode,
offset += size;
length -= size;
} while (ret == 0 && length > 0);
+#ifdef FALLOC_FL_ZERO_RANGE
} else if (mode & FALLOC_FL_ZERO_RANGE) {
if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + length > blk_len) {
/* No need for zeroes, we are going to write them ourselves */
@@ -654,6 +655,7 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t inode, int mode,
offset += size;
length -= size;
} while (ret == 0 && length > 0);
+#endif
} else if (!mode) {
/* We can only fallocate at the EOF with a truncate */
if (offset < blk_len) {
--
2.30.2

View File

@ -5,14 +5,16 @@ config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
|| BR2_x86_64 || BR2_arm \
|| BR2_powerpc64 || BR2_powerpc64le
comment "QEMU requires a toolchain with wchar, threads"
comment "QEMU requires a toolchain with wchar, threads, gcc >= 7"
depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
depends on BR2_USE_MMU
depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR)
depends on !(BR2_TOOLCHAIN_HAS_THREADS && BR2_USE_WCHAR) || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_7
config BR2_PACKAGE_QEMU
bool "QEMU"
depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_WCHAR # gettext
depends on BR2_USE_MMU # fork()

View File

@ -37,6 +37,7 @@ config BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_QEMU
bool "host qemu"
depends on BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS || BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS
depends on BR2_HOST_GCC_AT_LEAST_7
select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE \
if !BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE && BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS
select BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE \
@ -93,11 +94,7 @@ config BR2_PACKAGE_HOST_QEMU_VIRTFS
config BR2_PACKAGE_HOST_QEMU_USB
bool "USB passthrough support"
depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
help
Enables USB passthrough support from guest to host.
comment "USB passthrough support needs a toolchain w/ host gcc >= 4.9"
depends on !BR2_HOST_GCC_AT_LEAST_4_9
endif

View File

@ -1,4 +1,4 @@
# Locally computed, tarball verified with GPG signature
sha256 87bc1a471ca24b97e7005711066007d443423d19aacda3d442558ae032fa30b9 qemu-6.0.0.tar.xz
sha256 eebc089db3414bbeedf1e464beda0a7515aad30f73261abc246c9b27503a3c96 qemu-6.1.0.tar.xz
sha256 6f04ae8364d0079a192b14635f4b1da294ce18724c034c39a6a41d1b09df6100 COPYING
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LIB

View File

@ -4,7 +4,7 @@
#
################################################################################
QEMU_VERSION = 6.0.0
QEMU_VERSION = 6.1.0
QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.xz
QEMU_SITE = http://download.qemu.org
QEMU_LICENSE = GPL-2.0, LGPL-2.1, MIT, BSD-3-Clause, BSD-2-Clause, Others/BSD-1c
@ -186,6 +186,7 @@ define QEMU_CONFIGURE_CMDS
--enable-kvm \
--enable-attr \
--enable-vhost-net \
--disable-bpf \
--disable-bsd-user \
--disable-containers \
--disable-xen \
@ -215,7 +216,6 @@ define QEMU_CONFIGURE_CMDS
--disable-opengl \
--disable-vhost-user-blk-server \
--disable-virtiofsd \
--disable-tests \
$(QEMU_OPTS)
endef
@ -351,6 +351,7 @@ define HOST_QEMU_CONFIGURE_CMDS
--extra-ldflags="$(HOST_LDFLAGS)" \
--meson=$(HOST_DIR)/bin/meson \
--ninja=$(HOST_DIR)/bin/ninja \
--disable-bpf \
--disable-bzip2 \
--disable-containers \
--disable-curl \
@ -362,7 +363,6 @@ define HOST_QEMU_CONFIGURE_CMDS
--disable-vnc-jpeg \
--disable-vnc-png \
--disable-vnc-sasl \
--disable-tests \
$(HOST_QEMU_OPTS)
endef