Update to rc4 of v2.9.0. Also includes a few other fixes, and a number of tweaks to the spec files. I'd be happy to answer any questions about all those spec file changes, I believe they were all in the direction of a more correct and maintainable spec file. Since this is still in rc phase, let's keep it in devel project. Final release should appear in time for Beta2 of SLE12SP3. Delta from previous: Added Alex's patch for keyboard empty event. OBS-URL: https://build.opensuse.org/request/show/487699 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=334
39 lines
1.4 KiB
Diff
39 lines
1.4 KiB
Diff
From 0fbc227da772ac6f19bba6812311f2855a1d7a11 Mon Sep 17 00:00:00 2001
|
|
From: Alexander Graf <agraf@suse.de>
|
|
Date: Thu, 13 Dec 2012 14:29:22 +0100
|
|
Subject: [PATCH] linux-user: lseek: explicitly cast non-set offsets to signed
|
|
|
|
When doing lseek, SEEK_SET indicates that the offset is an unsigned variable.
|
|
Other seek types have parameters that can be negative.
|
|
|
|
When converting from 32bit to 64bit parameters, we need to take this into
|
|
account and enable SEEK_END and SEEK_CUR to be negative, while SEEK_SET stays
|
|
absolute positioned which we need to maintain as unsigned.
|
|
|
|
Signed-off-by: Alexander Graf <agraf@suse.de>
|
|
---
|
|
linux-user/syscall.c | 9 +++++++--
|
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
|
index 1472d72f27..71d4f06bdb 100644
|
|
--- a/linux-user/syscall.c
|
|
+++ b/linux-user/syscall.c
|
|
@@ -8076,9 +8076,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
|
|
case TARGET_NR_oldstat:
|
|
goto unimplemented;
|
|
#endif
|
|
- case TARGET_NR_lseek:
|
|
- ret = get_errno(lseek(arg1, arg2, arg3));
|
|
+ case TARGET_NR_lseek: {
|
|
+ off_t off = arg2;
|
|
+ if (arg3 != SEEK_SET) {
|
|
+ off = (abi_long)arg2;
|
|
+ }
|
|
+ ret = get_errno(lseek(arg1, off, arg3));
|
|
break;
|
|
+ }
|
|
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
|
|
/* Alpha specific */
|
|
case TARGET_NR_getxpid:
|