summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/conf/distro/include/tcmode-default.inc2
-rw-r--r--meta/recipes-devtools/qemu/qemu-native_9.2.0.bb (renamed from meta/recipes-devtools/qemu/qemu-native_9.1.1.bb)0
-rw-r--r--meta/recipes-devtools/qemu/qemu-system-native_9.2.0.bb (renamed from meta/recipes-devtools/qemu/qemu-system-native_9.1.1.bb)0
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc4
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-util-util-cpuinfo-riscv.c-fix-riscv64-build-on-musl-.patch41
-rw-r--r--meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch354
-rw-r--r--meta/recipes-devtools/qemu/qemu_9.2.0.bb (renamed from meta/recipes-devtools/qemu/qemu_9.1.1.bb)0
7 files changed, 2 insertions, 399 deletions
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 37621cb37d..8ccef0a4d8 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -22,7 +22,7 @@ BINUVERSION ?= "2.43%"
22GDBVERSION ?= "15.%" 22GDBVERSION ?= "15.%"
23GLIBCVERSION ?= "2.40%" 23GLIBCVERSION ?= "2.40%"
24LINUXLIBCVERSION ?= "6.12%" 24LINUXLIBCVERSION ?= "6.12%"
25QEMUVERSION ?= "9.1%" 25QEMUVERSION ?= "9.2%"
26GOVERSION ?= "1.22%" 26GOVERSION ?= "1.22%"
27RUSTVERSION ?= "1.80%" 27RUSTVERSION ?= "1.80%"
28 28
diff --git a/meta/recipes-devtools/qemu/qemu-native_9.1.1.bb b/meta/recipes-devtools/qemu/qemu-native_9.2.0.bb
index 26fa84c180..26fa84c180 100644
--- a/meta/recipes-devtools/qemu/qemu-native_9.1.1.bb
+++ b/meta/recipes-devtools/qemu/qemu-native_9.2.0.bb
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_9.1.1.bb b/meta/recipes-devtools/qemu/qemu-system-native_9.2.0.bb
index e7bbe5d291..e7bbe5d291 100644
--- a/meta/recipes-devtools/qemu/qemu-system-native_9.1.1.bb
+++ b/meta/recipes-devtools/qemu/qemu-system-native_9.2.0.bb
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index d4693fe8b0..d253529b3d 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -29,17 +29,15 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
29 file://0006-qemu-Determinism-fixes.patch \ 29 file://0006-qemu-Determinism-fixes.patch \
30 file://0007-tests-meson.build-use-relative-path-to-refer-to-file.patch \ 30 file://0007-tests-meson.build-use-relative-path-to-refer-to-file.patch \
31 file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ 31 file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \
32 file://0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch \
33 file://0010-configure-lookup-meson-exutable-from-PATH.patch \ 32 file://0010-configure-lookup-meson-exutable-from-PATH.patch \
34 file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \ 33 file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \
35 file://0001-sched_attr-Do-not-define-for-glibc-2.41.patch \ 34 file://0001-sched_attr-Do-not-define-for-glibc-2.41.patch \
36 file://0001-util-util-cpuinfo-riscv.c-fix-riscv64-build-on-musl-.patch \
37 file://qemu-guest-agent.init \ 35 file://qemu-guest-agent.init \
38 file://qemu-guest-agent.udev \ 36 file://qemu-guest-agent.udev \
39 " 37 "
40UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" 38UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
41 39
42SRC_URI[sha256sum] = "7dc0f9da5491ff449500f3310063a36b619f236ee45706fd0846eb37d4bba889" 40SRC_URI[sha256sum] = "f859f0bc65e1f533d040bbe8c92bcfecee5af2c921a6687c652fb44d089bd894"
43 41
44CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default." 42CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default."
45 43
diff --git a/meta/recipes-devtools/qemu/qemu/0001-util-util-cpuinfo-riscv.c-fix-riscv64-build-on-musl-.patch b/meta/recipes-devtools/qemu/qemu/0001-util-util-cpuinfo-riscv.c-fix-riscv64-build-on-musl-.patch
deleted file mode 100644
index 16762e033e..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0001-util-util-cpuinfo-riscv.c-fix-riscv64-build-on-musl-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From f60ea4ae2298f0f077a97648c138283357337370 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Milan=20P=2E=20Stani=C4=87?= <mps@arvanta.net>
3Date: Thu, 5 Sep 2024 16:17:50 +0200
4Subject: [PATCH] util/util/cpuinfo-riscv.c: fix riscv64 build on musl libc
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9build fails on musl libc (alpine linux) with this error:
10
11../util/cpuinfo-riscv.c: In function 'cpuinfo_init':
12../util/cpuinfo-riscv.c:63:21: error: '__NR_riscv_hwprobe' undeclared (first use in this function); did you mean 'riscv_hwprobe'?
13 63 | if (syscall(__NR_riscv_hwprobe, &pair, 1, 0, NULL, 0) == 0
14 | ^~~~~~~~~~~~~~~~~~
15 | riscv_hwprobe
16../util/cpuinfo-riscv.c:63:21: note: each undeclared identifier is reported only once for each function it appears in
17ninja: subcommand failed
18
19add '#include "asm/unistd.h"' to util/cpuinfo-riscv.c fixes build
20
21Upstream-Status: Backport [https://github.com/qemu/qemu/commit/c5757f808bd74db7ef1a90ee28334f3b5afb8179]
22Signed-off-by: Milan P. Stanić <mps@arvanta.net>
23---
24 util/cpuinfo-riscv.c | 1 +
25 1 file changed, 1 insertion(+)
26
27diff --git a/util/cpuinfo-riscv.c b/util/cpuinfo-riscv.c
28index 497ce12680..8cacc67645 100644
29--- a/util/cpuinfo-riscv.c
30+++ b/util/cpuinfo-riscv.c
31@@ -9,6 +9,7 @@
32 #ifdef CONFIG_ASM_HWPROBE_H
33 #include <asm/hwprobe.h>
34 #include <sys/syscall.h>
35+#include <asm/unistd.h>
36 #endif
37
38 unsigned cpuinfo;
39--
402.46.0
41
diff --git a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch b/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
deleted file mode 100644
index f9eddb8178..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0009-linux-user-Replace-use-of-lfs64-related-functions-an.patch
+++ /dev/null
@@ -1,354 +0,0 @@
1From a6b57d63bcdc3f3cae9827d2e1e3492d2293695f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 17 Dec 2022 08:37:46 -0800
4Subject: [PATCH] linux-user: Replace use of lfs64 related functions and macros
5
6Builds defines -D_FILE_OFFSET_BITS=64 which makes the original functions
7anf macros behave same as their 64 suffixed counterparts. This also
8helps in compiling with latest musl C library, where these macros and
9functions are no more available under _GNU_SOURCE feature macro
10
11Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2022-12/msg02841.html]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13Cc: Laurent Vivier <laurent@vivier.eu>
14---
15 linux-user/syscall.c | 153 +++++++++++--------------------------------
16 1 file changed, 39 insertions(+), 114 deletions(-)
17
18diff --git a/linux-user/syscall.c b/linux-user/syscall.c
19index 22df46859..27aa59594 100644
20--- a/linux-user/syscall.c
21+++ b/linux-user/syscall.c
22@@ -762,8 +762,8 @@ safe_syscall6(ssize_t, copy_file_range, int, infd, loff_t *, pinoff,
23 */
24 #define safe_ioctl(...) safe_syscall(__NR_ioctl, __VA_ARGS__)
25 /* Similarly for fcntl. Note that callers must always:
26- * pass the F_GETLK64 etc constants rather than the unsuffixed F_GETLK
27- * use the flock64 struct rather than unsuffixed flock
28+ * pass the F_GETLK etc constants rather than the unsuffixed F_GETLK
29+ * use the flock struct rather than unsuffixed flock
30 * This will then work and use a 64-bit offset for both 32-bit and 64-bit hosts.
31 */
32 #ifdef __NR_fcntl64
33@@ -6724,13 +6724,13 @@ static int target_to_host_fcntl_cmd(int cmd)
34 ret = cmd;
35 break;
36 case TARGET_F_GETLK:
37- ret = F_GETLK64;
38+ ret = F_GETLK;
39 break;
40 case TARGET_F_SETLK:
41- ret = F_SETLK64;
42+ ret = F_SETLK;
43 break;
44 case TARGET_F_SETLKW:
45- ret = F_SETLKW64;
46+ ret = F_SETLKW;
47 break;
48 case TARGET_F_GETOWN:
49 ret = F_GETOWN;
50@@ -6744,17 +6744,6 @@ static int target_to_host_fcntl_cmd(int cmd)
51 case TARGET_F_SETSIG:
52 ret = F_SETSIG;
53 break;
54-#if TARGET_ABI_BITS == 32
55- case TARGET_F_GETLK64:
56- ret = F_GETLK64;
57- break;
58- case TARGET_F_SETLK64:
59- ret = F_SETLK64;
60- break;
61- case TARGET_F_SETLKW64:
62- ret = F_SETLKW64;
63- break;
64-#endif
65 case TARGET_F_SETLEASE:
66 ret = F_SETLEASE;
67 break;
68@@ -6806,8 +6795,8 @@ static int target_to_host_fcntl_cmd(int cmd)
69 * them to 5, 6 and 7 before making the syscall(). Since we make the
70 * syscall directly, adjust to what is supported by the kernel.
71 */
72- if (ret >= F_GETLK64 && ret <= F_SETLKW64) {
73- ret -= F_GETLK64 - 5;
74+ if (ret >= F_GETLK && ret <= F_SETLKW) {
75+ ret -= F_GETLK - 5;
76 }
77 #endif
78
79@@ -6840,55 +6829,11 @@ static int host_to_target_flock(int type)
80 return type;
81 }
82
83-static inline abi_long copy_from_user_flock(struct flock64 *fl,
84- abi_ulong target_flock_addr)
85-{
86- struct target_flock *target_fl;
87- int l_type;
88-
89- if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
90- return -TARGET_EFAULT;
91- }
92-
93- __get_user(l_type, &target_fl->l_type);
94- l_type = target_to_host_flock(l_type);
95- if (l_type < 0) {
96- return l_type;
97- }
98- fl->l_type = l_type;
99- __get_user(fl->l_whence, &target_fl->l_whence);
100- __get_user(fl->l_start, &target_fl->l_start);
101- __get_user(fl->l_len, &target_fl->l_len);
102- __get_user(fl->l_pid, &target_fl->l_pid);
103- unlock_user_struct(target_fl, target_flock_addr, 0);
104- return 0;
105-}
106-
107-static inline abi_long copy_to_user_flock(abi_ulong target_flock_addr,
108- const struct flock64 *fl)
109-{
110- struct target_flock *target_fl;
111- short l_type;
112-
113- if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
114- return -TARGET_EFAULT;
115- }
116-
117- l_type = host_to_target_flock(fl->l_type);
118- __put_user(l_type, &target_fl->l_type);
119- __put_user(fl->l_whence, &target_fl->l_whence);
120- __put_user(fl->l_start, &target_fl->l_start);
121- __put_user(fl->l_len, &target_fl->l_len);
122- __put_user(fl->l_pid, &target_fl->l_pid);
123- unlock_user_struct(target_fl, target_flock_addr, 1);
124- return 0;
125-}
126-
127-typedef abi_long from_flock64_fn(struct flock64 *fl, abi_ulong target_addr);
128-typedef abi_long to_flock64_fn(abi_ulong target_addr, const struct flock64 *fl);
129+typedef abi_long from_flock_fn(struct flock *fl, abi_ulong target_addr);
130+typedef abi_long to_flock_fn(abi_ulong target_addr, const struct flock *fl);
131
132 #if defined(TARGET_ARM) && TARGET_ABI_BITS == 32
133-struct target_oabi_flock64 {
134+struct target_oabi_flock {
135 abi_short l_type;
136 abi_short l_whence;
137 abi_llong l_start;
138@@ -6896,10 +6841,10 @@ struct target_oabi_flock64 {
139 abi_int l_pid;
140 } QEMU_PACKED;
141
142-static inline abi_long copy_from_user_oabi_flock64(struct flock64 *fl,
143+static inline abi_long copy_from_user_oabi_flock(struct flock *fl,
144 abi_ulong target_flock_addr)
145 {
146- struct target_oabi_flock64 *target_fl;
147+ struct target_oabi_flock *target_fl;
148 int l_type;
149
150 if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
151@@ -6920,10 +6865,10 @@ static inline abi_long copy_from_user_oabi_flock64(struct flock64 *fl,
152 return 0;
153 }
154
155-static inline abi_long copy_to_user_oabi_flock64(abi_ulong target_flock_addr,
156- const struct flock64 *fl)
157+static inline abi_long copy_to_user_oabi_flock(abi_ulong target_flock_addr,
158+ const struct flock *fl)
159 {
160- struct target_oabi_flock64 *target_fl;
161+ struct target_oabi_flock *target_fl;
162 short l_type;
163
164 if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
165@@ -6941,10 +6886,10 @@ static inline abi_long copy_to_user_oabi_flock64(abi_ulong target_flock_addr,
166 }
167 #endif
168
169-static inline abi_long copy_from_user_flock64(struct flock64 *fl,
170+static inline abi_long copy_from_user_flock(struct flock *fl,
171 abi_ulong target_flock_addr)
172 {
173- struct target_flock64 *target_fl;
174+ struct target_flock *target_fl;
175 int l_type;
176
177 if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) {
178@@ -6965,10 +6910,10 @@ static inline abi_long copy_from_user_flock64(struct flock64 *fl,
179 return 0;
180 }
181
182-static inline abi_long copy_to_user_flock64(abi_ulong target_flock_addr,
183- const struct flock64 *fl)
184+static inline abi_long copy_to_user_flock(abi_ulong target_flock_addr,
185+ const struct flock *fl)
186 {
187- struct target_flock64 *target_fl;
188+ struct target_flock *target_fl;
189 short l_type;
190
191 if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) {
192@@ -6987,7 +6932,7 @@ static inline abi_long copy_to_user_flock64(abi_ulong target_flock_addr,
193
194 static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
195 {
196- struct flock64 fl64;
197+ struct flock fl64;
198 #ifdef F_GETOWN_EX
199 struct f_owner_ex fox;
200 struct target_f_owner_ex *target_fox;
201@@ -7000,6 +6945,7 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
202
203 switch(cmd) {
204 case TARGET_F_GETLK:
205+ case TARGET_F_OFD_GETLK:
206 ret = copy_from_user_flock(&fl64, arg);
207 if (ret) {
208 return ret;
209@@ -7009,32 +6955,11 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
210 ret = copy_to_user_flock(arg, &fl64);
211 }
212 break;
213-
214 case TARGET_F_SETLK:
215 case TARGET_F_SETLKW:
216- ret = copy_from_user_flock(&fl64, arg);
217- if (ret) {
218- return ret;
219- }
220- ret = get_errno(safe_fcntl(fd, host_cmd, &fl64));
221- break;
222-
223- case TARGET_F_GETLK64:
224- case TARGET_F_OFD_GETLK:
225- ret = copy_from_user_flock64(&fl64, arg);
226- if (ret) {
227- return ret;
228- }
229- ret = get_errno(safe_fcntl(fd, host_cmd, &fl64));
230- if (ret == 0) {
231- ret = copy_to_user_flock64(arg, &fl64);
232- }
233- break;
234- case TARGET_F_SETLK64:
235- case TARGET_F_SETLKW64:
236 case TARGET_F_OFD_SETLK:
237 case TARGET_F_OFD_SETLKW:
238- ret = copy_from_user_flock64(&fl64, arg);
239+ ret = copy_from_user_flock(&fl64, arg);
240 if (ret) {
241 return ret;
242 }
243@@ -7269,7 +7194,7 @@ static inline abi_long target_truncate64(CPUArchState *cpu_env, const char *arg1
244 arg2 = arg3;
245 arg3 = arg4;
246 }
247- return get_errno(truncate64(arg1, target_offset64(arg2, arg3)));
248+ return get_errno(truncate(arg1, target_offset64(arg2, arg3)));
249 }
250 #endif
251
252@@ -7283,7 +7208,7 @@ static inline abi_long target_ftruncate64(CPUArchState *cpu_env, abi_long arg1,
253 arg2 = arg3;
254 arg3 = arg4;
255 }
256- return get_errno(ftruncate64(arg1, target_offset64(arg2, arg3)));
257+ return get_errno(ftruncate(arg1, target_offset64(arg2, arg3)));
258 }
259 #endif
260
261@@ -8668,7 +8593,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, abi_long count)
262 void *tdirp;
263 int hlen, hoff, toff;
264 int hreclen, treclen;
265- off64_t prev_diroff = 0;
266+ off_t prev_diroff = 0;
267
268 hdirp = g_try_malloc(count);
269 if (!hdirp) {
270@@ -8721,7 +8646,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, abi_long count)
271 * Return what we have, resetting the file pointer to the
272 * location of the first record not returned.
273 */
274- lseek64(dirfd, prev_diroff, SEEK_SET);
275+ lseek(dirfd, prev_diroff, SEEK_SET);
276 break;
277 }
278
279@@ -8755,7 +8680,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
280 void *tdirp;
281 int hlen, hoff, toff;
282 int hreclen, treclen;
283- off64_t prev_diroff = 0;
284+ off_t prev_diroff = 0;
285
286 hdirp = g_try_malloc(count);
287 if (!hdirp) {
288@@ -8797,7 +8722,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
289 * Return what we have, resetting the file pointer to the
290 * location of the first record not returned.
291 */
292- lseek64(dirfd, prev_diroff, SEEK_SET);
293+ lseek(dirfd, prev_diroff, SEEK_SET);
294 break;
295 }
296
297@@ -11528,7 +11453,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
298 return -TARGET_EFAULT;
299 }
300 }
301- ret = get_errno(pread64(arg1, p, arg3, target_offset64(arg4, arg5)));
302+ ret = get_errno(pread(arg1, p, arg3, target_offset64(arg4, arg5)));
303 unlock_user(p, arg2, ret);
304 return ret;
305 case TARGET_NR_pwrite64:
306@@ -11545,7 +11470,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
307 return -TARGET_EFAULT;
308 }
309 }
310- ret = get_errno(pwrite64(arg1, p, arg3, target_offset64(arg4, arg5)));
311+ ret = get_errno(pwrite(arg1, p, arg3, target_offset64(arg4, arg5)));
312 unlock_user(p, arg2, 0);
313 return ret;
314 #endif
315@@ -12405,14 +12330,14 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
316 case TARGET_NR_fcntl64:
317 {
318 int cmd;
319- struct flock64 fl;
320- from_flock64_fn *copyfrom = copy_from_user_flock64;
321- to_flock64_fn *copyto = copy_to_user_flock64;
322+ struct flock fl;
323+ from_flock_fn *copyfrom = copy_from_user_flock;
324+ to_flock_fn *copyto = copy_to_user_flock;
325
326 #ifdef TARGET_ARM
327 if (!cpu_env->eabi) {
328- copyfrom = copy_from_user_oabi_flock64;
329- copyto = copy_to_user_oabi_flock64;
330+ copyfrom = copy_from_user_oabi_flock;
331+ copyto = copy_to_user_oabi_flock;
332 }
333 #endif
334
335@@ -12422,7 +12347,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
336 }
337
338 switch(arg2) {
339- case TARGET_F_GETLK64:
340+ case TARGET_F_GETLK:
341 ret = copyfrom(&fl, arg3);
342 if (ret) {
343 break;
344@@ -12433,8 +12358,8 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
345 }
346 break;
347
348- case TARGET_F_SETLK64:
349- case TARGET_F_SETLKW64:
350+ case TARGET_F_SETLK:
351+ case TARGET_F_SETLKW:
352 ret = copyfrom(&fl, arg3);
353 if (ret) {
354 break;
diff --git a/meta/recipes-devtools/qemu/qemu_9.1.1.bb b/meta/recipes-devtools/qemu/qemu_9.2.0.bb
index dc1352232e..dc1352232e 100644
--- a/meta/recipes-devtools/qemu/qemu_9.1.1.bb
+++ b/meta/recipes-devtools/qemu/qemu_9.2.0.bb