Accepting request 61514 from Virtualization

Accepted submit request 61514 from user elvigia

OBS-URL: https://build.opensuse.org/request/show/61514
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qemu?expand=0&rev=43
This commit is contained in:
Ruediger Oertel 2011-02-18 12:27:22 +00:00 committed by Git OBS Bridge
commit 1f0fcf841e
22 changed files with 818 additions and 1694 deletions

View File

@ -1,7 +1,7 @@
From 8c7a6ec1220237db1e270244b1f1d90dd3d54204 Mon Sep 17 00:00:00 2001
From 4af9300d36f0975213b0fb967131629ad6b4c550 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:17:39 +0200
Subject: [PATCH 01/16] qemu-0.7.0-amd64
Subject: [PATCH 01/17] qemu-0.7.0-amd64
No clue why this is necessary or useful, nothing found in any changelogs.
---
@ -9,10 +9,10 @@ No clue why this is necessary or useful, nothing found in any changelogs.
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/x86_64.ld b/x86_64.ld
index 24ea77d..52a696e 100644
index 46d8d4d..cce0a17 100644
--- a/x86_64.ld
+++ b/x86_64.ld
@@ -58,8 +58,6 @@ SECTIONS
@@ -70,8 +70,6 @@ SECTIONS
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.eh_frame_hdr : { *(.eh_frame_hdr) }
@ -21,7 +21,7 @@ index 24ea77d..52a696e 100644
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN (0x100000) - ((0x100000 - .) & (0x100000 - 1)); . = DATA_SEGMENT_ALIGN (0x100000, 0x1000);
@@ -85,8 +83,8 @@ SECTIONS
@@ -97,8 +95,8 @@ SECTIONS
.data1 : { *(.data1) }
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
@ -33,5 +33,5 @@ index 24ea77d..52a696e 100644
.ctors :
{
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From af10e52cdaf296681cf093f9269acf3080a01f5c Mon Sep 17 00:00:00 2001
From 8f16efecc00d3ee4615dcd2d5381b23df4465698 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:18:44 +0200
Subject: [PATCH 02/16] qemu-0.9.0.cvs-binfmt
Subject: [PATCH 02/17] qemu-0.9.0.cvs-binfmt
Fixes binfmt_misc setup script:
- x86_64 is i386-compatible
@ -10,28 +10,15 @@ Fixes binfmt_misc setup script:
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
qemu-binfmt-conf.sh | 33 ++++++++++++++++++---------------
1 files changed, 18 insertions(+), 15 deletions(-)
scripts/qemu-binfmt-conf.sh | 35 +++++++++++++++++++----------------
1 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/qemu-binfmt-conf.sh b/qemu-binfmt-conf.sh
index 941f0cf..67d6728 100644
--- a/qemu-binfmt-conf.sh
+++ b/qemu-binfmt-conf.sh
@@ -12,7 +12,7 @@ fi
# probe cpu type
cpu=`uname -m`
case "$cpu" in
- i386|i486|i586|i686|i86pc|BePC)
+ i386|i486|i586|i686|i86pc|BePC|x86_64)
cpu="i386"
;;
m68k)
@@ -24,36 +24,39 @@ case "$cpu" in
"Power Macintosh"|ppc|ppc64)
cpu="ppc"
;;
- armv4l)
+ armv[4-9]*l)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index c50beb7..335ab05 100644
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -27,40 +27,43 @@ case "$cpu" in
armv[4-9]*)
cpu="arm"
;;
+ sparc*)
@ -45,6 +32,10 @@ index 941f0cf..67d6728 100644
- echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register
+ echo ':i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register
+ echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register
fi
if [ $cpu != "alpha" ] ; then
- echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register
+ echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register
fi
if [ $cpu != "arm" ] ; then
- echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register
@ -80,6 +71,12 @@ index 941f0cf..67d6728 100644
+ echo ':mips64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips64:' > /proc/sys/fs/binfmt_misc/register
+ echo ':mips64el:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mips64el:' > /proc/sys/fs/binfmt_misc/register
fi
if [ $cpu != "sh" ] ; then
- echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-sh4:' > /proc/sys/fs/binfmt_misc/register
- echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-sh4eb:' > /proc/sys/fs/binfmt_misc/register
+ echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-sh4:' > /proc/sys/fs/binfmt_misc/register
+ echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb:' > /proc/sys/fs/binfmt_misc/register
fi
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From d4ec93547c43a157b88b923b612653c9527ec2a6 Mon Sep 17 00:00:00 2001
From 8a88b86cc9a3ad0bb6da52fb0f938fe5a085c027 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:20:50 +0200
Subject: [PATCH 03/16] qemu-cvs-alsa_bitfield
Subject: [PATCH 03/17] qemu-cvs-alsa_bitfield
Implements TYPE_INTBITFIELD partially. (required for ALSA support)
@ -79,5 +79,5 @@ index 109c541..55890f3 100644
case TYPE_LONGLONG:
case TYPE_ULONGLONG:
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From 91d6aa16e2794b006ac997ccebd2c7c7da671f32 Mon Sep 17 00:00:00 2001
From c5b614579d85877cfa39dfea8989040e43f9ba56 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:23:27 +0200
Subject: [PATCH 04/16] qemu-cvs-alsa_ioctl
Subject: [PATCH 04/17] qemu-cvs-alsa_ioctl
Implements ALSA ioctls on PPC hosts.
@ -19,10 +19,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
create mode 100644 linux-user/syscall_types_alsa.h
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 769e1bc..fca824c 100644
index acff781..13ff54f 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -304,6 +304,11 @@
@@ -308,6 +308,11 @@
IOCTL(VFAT_IOCTL_READDIR_BOTH, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
IOCTL(VFAT_IOCTL_READDIR_SHORT, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
@ -2254,16 +2254,16 @@ index 0000000..3de8614
+ unsigned char *code;
+};
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 2d45753..77ae416 100644
index d02a9bf..be612ce 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2161,3 +2161,4 @@ struct target_mq_attr {
@@ -2205,3 +2205,4 @@ struct target_mq_attr {
#define FUTEX_CLOCK_REALTIME 256
#define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
+#include "ioctls_alsa_structs.h"
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
index 340dbd3..1b92423 100644
index 0e67cd8..635fdef 100644
--- a/linux-user/syscall_types.h
+++ b/linux-user/syscall_types.h
@@ -80,6 +80,11 @@ STRUCT(count_info,
@ -3622,5 +3622,5 @@ index 0000000..6dbc964
+)
+
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From 8dc126f05ef5f8d0105d5d1b77493a27df8b4e30 Mon Sep 17 00:00:00 2001
From 3848cba4ed22ebef70e59cbb542e71a37fe74d1d Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:24:15 +0200
Subject: [PATCH 05/16] qemu-cvs-alsa_mmap
Subject: [PATCH 05/17] qemu-cvs-alsa_mmap
Hack to prevent ALSA from using mmap() interface to simplify emulation.
@ -11,11 +11,11 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 144fb7c..1ea202b 100644
index abf21f6..e18c228 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -328,6 +328,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
return h2g(ptr);
@@ -360,6 +360,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size)
}
}
+#define SNDRV_PCM_MMAP_OFFSET_STATUS 0x80000000
@ -24,7 +24,7 @@ index 144fb7c..1ea202b 100644
/* NOTE: all the constants are the HOST ones */
abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
int flags, int fd, abi_ulong offset)
@@ -363,6 +366,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
@@ -395,6 +398,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
}
#endif
@ -43,5 +43,5 @@ index 144fb7c..1ea202b 100644
errno = EINVAL;
goto fail;
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From fdeb1b8a61335d7c8537725cd1d7997053ce1d27 Mon Sep 17 00:00:00 2001
From da6cdca6cdbfccb4936f5df5e297a87fe1e4baa8 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:25:41 +0200
Subject: [PATCH 06/16] qemu-cvs-gettimeofday
Subject: [PATCH 06/17] qemu-cvs-gettimeofday
No clue what this is for.
---
@ -9,10 +9,10 @@ No clue what this is for.
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e38552c..63eef34 100644
index 499c4d7..92f2aa6 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5101,6 +5101,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
@@ -5399,6 +5399,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
case TARGET_NR_gettimeofday:
{
struct timeval tv;
@ -22,5 +22,5 @@ index e38552c..63eef34 100644
if (!is_error(ret)) {
if (copy_to_user_timeval(arg1, &tv))
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From 6d88562dea1c1e0ae1367b89353a546c0e725513 Mon Sep 17 00:00:00 2001
From 1a883714ac7e953bab2bbdeba651d0696f49dd81 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:26:33 +0200
Subject: [PATCH 07/16] qemu-cvs-ioctl_debug
Subject: [PATCH 07/17] qemu-cvs-ioctl_debug
Extends unsupported ioctl debug output.
@ -11,10 +11,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 63eef34..1540e77 100644
index 92f2aa6..04f77ef 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2896,7 +2896,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3100,7 +3100,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
ie = ioctl_entries;
for(;;) {
if (ie->target_cmd == 0) {
@ -29,5 +29,5 @@ index 63eef34..1540e77 100644
}
if (ie->target_cmd == cmd)
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From 8fdbbf0d63c4de94c308c165283d7ea57f1cbf60 Mon Sep 17 00:00:00 2001
From d03d586aabc9000cabc56de7e327c5b5640f3179 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:27:36 +0200
Subject: [PATCH 08/16] qemu-cvs-ioctl_nodirection
Subject: [PATCH 08/17] qemu-cvs-ioctl_nodirection
the direction given in the ioctl should be correct so we can assume the
communication is uni-directional. The alsa developers did not like this
@ -14,10 +14,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1540e77..3f810c3 100644
index 04f77ef..b51634b 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2926,6 +2926,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3134,6 +3134,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
arg_type++;
target_size = thunk_type_size(arg_type, 0);
switch(ie->access) {
@ -29,7 +29,7 @@ index 1540e77..3f810c3 100644
case IOC_R:
ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
if (!is_error(ret)) {
@@ -2944,6 +2949,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
@@ -3152,6 +3157,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg)
unlock_user(argptr, arg, 0);
ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp));
break;
@ -38,5 +38,5 @@ index 1540e77..3f810c3 100644
case IOC_RW:
argptr = lock_user(VERIFY_READ, arg, target_size, 1);
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From a6f58c0e024cda6f06d788f6d03b699c8c736fdf Mon Sep 17 00:00:00 2001
From 026ee1029cfeb6c802ee715372992fb3c847bd27 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:30:16 +0200
Subject: [PATCH 09/16] qemu-cvs-sched_getaffinity
Subject: [PATCH 09/17] qemu-cvs-sched_getaffinity
Implements sched_getaffinity syscall.
@ -11,10 +11,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 3f810c3..a74869e 100644
index b51634b..81bf1f0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -156,6 +156,7 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
@@ -164,6 +164,7 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
}
@ -22,7 +22,7 @@ index 3f810c3..a74869e 100644
#define __NR_sys_uname __NR_uname
#define __NR_sys_faccessat __NR_faccessat
#define __NR_sys_fchmodat __NR_fchmodat
@@ -215,6 +216,9 @@ _syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig)
@@ -223,6 +224,9 @@ _syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig)
#if defined(TARGET_NR_tkill) && defined(__NR_tkill)
_syscall2(int,sys_tkill,int,tid,int,sig)
#endif
@ -32,10 +32,10 @@ index 3f810c3..a74869e 100644
#ifdef __NR_exit_group
_syscall1(int,exit_group,int,error_code)
#endif
@@ -7045,6 +7049,18 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
ret = get_errno(fallocate(arg1, arg2, arg3, arg4));
@@ -7505,6 +7509,18 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
break;
#endif
#endif
+
+#ifdef TARGET_NR_sched_getaffinity
+ case TARGET_NR_sched_getaffinity:
@ -52,5 +52,5 @@ index 3f810c3..a74869e 100644
unimplemented:
gemu_log("qemu: Unsupported syscall: %d\n", num);
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From b22d5f62f9765ec734d7b14886d7aed5b61acf8b Mon Sep 17 00:00:00 2001
From 2013ec7c2d1b5a71d73701da746363b69d4c992c Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:34:05 +0200
Subject: [PATCH 10/16] qemu-cvs-mmap-amd64
Subject: [PATCH 10/17] qemu-cvs-mmap-amd64
Map stuff to address space < 4GB on AMD64. This patch got continually smaller
as most cases were this was an issue were dealt with in other ways. May
@ -13,7 +13,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 1ea202b..74b0d4b 100644
index e18c228..de8abe9 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -31,6 +31,10 @@
@ -27,7 +27,7 @@ index 1ea202b..74b0d4b 100644
//#define DEBUG_MMAP
#if defined(CONFIG_USE_NPTL)
@@ -230,7 +234,7 @@ static int mmap_frag(abi_ulong real_start,
@@ -169,7 +173,7 @@ static int mmap_frag(abi_ulong real_start,
if (prot1 == 0) {
/* no page was there, so we allocate one */
void *p = mmap(host_start, qemu_host_page_size, prot,
@ -37,5 +37,5 @@ index 1ea202b..74b0d4b 100644
return -1;
prot1 = prot;
--
1.6.4.2
1.7.1

View File

@ -1,23 +1,46 @@
From afdac5e4c878653b9f4a038bebdcf98a01397a39 Mon Sep 17 00:00:00 2001
From 09686f619707ec98e073bf671b0334a2f65934ad Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:37:42 +0200
Subject: [PATCH 11/16] qemu-img-vmdk-scsi
Subject: [PATCH 11/17] qemu-img-vmdk-scsi
Support creation of SCSI VMDK images in qemu-img.
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
block/vmdk.c | 5 +++--
block_int.h | 1 +
qemu-img-cmds.hx | 8 ++++----
qemu-img.c | 15 +++++++++++++--
4 files changed, 21 insertions(+), 8 deletions(-)
block.c | 5 ++++-
block/vmdk.c | 7 +++++--
block_int.h | 2 ++
qemu-img.c | 8 +++++++-
4 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/block.c b/block.c
index b476479..b77f09b 100644
--- a/block.c
+++ b/block.c
@@ -2792,7 +2792,7 @@ int bdrv_img_create(const char *filename, const char *fmt,
char *options, uint64_t img_size, int flags)
{
QEMUOptionParameter *param = NULL, *create_options = NULL;
- QEMUOptionParameter *backing_fmt, *backing_file;
+ QEMUOptionParameter *backing_fmt, *backing_file, *scsi;
BlockDriverState *bs = NULL;
BlockDriver *drv, *proto_drv;
BlockDriver *backing_drv = NULL;
@@ -2901,6 +2901,9 @@ int bdrv_img_create(const char *filename, const char *fmt,
printf("Formatting '%s', fmt=%s ", filename, fmt);
print_option_parameters(param);
+ scsi = get_option_parameter(param, BLOCK_OPT_SCSI);
+ if (scsi && scsi->value.n)
+ printf(", SCSI");
puts("");
ret = bdrv_create(drv, filename, param);
diff --git a/block/vmdk.c b/block/vmdk.c
index 4e48622..b7a15c7 100644
index 8fc9d67..8944173 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -710,7 +710,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
@@ -685,7 +685,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
"ddb.geometry.cylinders = \"%" PRId64 "\"\n"
"ddb.geometry.heads = \"16\"\n"
"ddb.geometry.sectors = \"63\"\n"
@ -26,7 +49,16 @@ index 4e48622..b7a15c7 100644
char desc[1024];
const char *real_filename, *temp_str;
int64_t total_size = 0;
@@ -800,7 +800,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
@@ -701,6 +701,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
backing_file = options->value.s;
} else if (!strcmp(options->name, BLOCK_OPT_COMPAT6)) {
flags |= options->value.n ? BLOCK_FLAG_COMPAT6: 0;
+ } else if (!strcmp(options->name, BLOCK_OPT_SCSI)) {
+ flags |= options->value.n ? BLOCK_FLAG_SCSI: 0;
}
options++;
}
@@ -798,7 +800,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options)
snprintf(desc, sizeof(desc), desc_template, (unsigned int)time(NULL),
total_size, real_filename,
(flags & BLOCK_FLAG_COMPAT6 ? 6 : 4),
@ -37,106 +69,48 @@ index 4e48622..b7a15c7 100644
/* write the descriptor */
lseek(fd, le64_to_cpu(header.desc_offset) << 9, SEEK_SET);
diff --git a/block_int.h b/block_int.h
index 9a3b2e0..85e8a72 100644
index 545ad11..771fd91 100644
--- a/block_int.h
+++ b/block_int.h
@@ -30,6 +30,7 @@
@@ -30,10 +30,12 @@
#define BLOCK_FLAG_ENCRYPT 1
#define BLOCK_FLAG_COMPRESS 2
#define BLOCK_FLAG_COMPAT6 4
+#define BLOCK_FLAG_SCSI 8
#define BLOCK_OPT_SIZE "size"
#define BLOCK_OPT_ENCRYPT "encryption"
diff --git a/qemu-img-cmds.hx b/qemu-img-cmds.hx
index 641bd87..949ae97 100644
--- a/qemu-img-cmds.hx
+++ b/qemu-img-cmds.hx
@@ -16,9 +16,9 @@ STEXI
ETEXI
DEF("create", img_create,
- "create [-f fmt] [-o options] filename [size]")
+ "create [-s] [-f fmt] [-o options] filename [size]")
STEXI
-@item create [-f @var{fmt}] [-o @var{options}] @var{filename} [@var{size}]
+@item create [-s] [-f @var{fmt}] [-o @var{options}] @var{filename} [@var{size}]
ETEXI
DEF("commit", img_commit,
@@ -28,9 +28,9 @@ STEXI
ETEXI
DEF("convert", img_convert,
- "convert [-c] [-f fmt] [-O output_fmt] [-o options] filename [filename2 [...]] output_filename")
+ "convert [-c] [-s] [-f fmt] [-O output_fmt] [-o options] filename [filename2 [...]] output_filename")
STEXI
-@item convert [-c] [-f @var{fmt}] [-O @var{output_fmt}] [-o @var{options}] @var{filename} [@var{filename2} [...]] @var{output_filename}
+@item convert [-c] [-s] [-f @var{fmt}] [-O @var{output_fmt}] [-o @var{options}] @var{filename} [@var{filename2} [...]] @var{output_filename}
ETEXI
DEF("info", img_info,
#define BLOCK_OPT_COMPAT6 "compat6"
+#define BLOCK_OPT_SCSI "scsi"
#define BLOCK_OPT_BACKING_FILE "backing_file"
#define BLOCK_OPT_BACKING_FMT "backing_fmt"
#define BLOCK_OPT_CLUSTER_SIZE "cluster_size"
diff --git a/qemu-img.c b/qemu-img.c
index 2824178..4b6663f 100644
index 4a37358..ed8cc08 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -253,7 +253,7 @@ static int img_create(int argc, char **argv)
@@ -572,7 +572,7 @@ static int img_convert(int argc, char **argv)
const uint8_t *buf1;
BlockDriverInfo bdi;
QEMUOptionParameter *param = NULL, *create_options = NULL;
- QEMUOptionParameter *out_baseimg_param;
+ QEMUOptionParameter *out_baseimg_param, *scsi;
char *options = NULL;
const char *snapshot_name = NULL;
flags = 0;
for(;;) {
- c = getopt(argc, argv, "F:b:f:he6o:");
+ c = getopt(argc, argv, "F:b:f:hes6o:");
if (c == -1)
break;
switch(c) {
@@ -272,6 +272,9 @@ static int img_create(int argc, char **argv)
case 'e':
flags |= BLOCK_FLAG_ENCRYPT;
break;
+ case 's':
+ flags |= BLOCK_FLAG_SCSI;
+ break;
case '6':
flags |= BLOCK_FLAG_COMPAT6;
break;
@@ -354,6 +357,8 @@ static int img_create(int argc, char **argv)
printf("Formatting '%s', fmt=%s ", filename, fmt);
print_option_parameters(param);
+ if (flags & BLOCK_FLAG_SCSI)
+ printf(", SCSI");
puts("");
ret = bdrv_create(drv, filename, param);
@@ -548,7 +553,7 @@ static int img_convert(int argc, char **argv)
out_baseimg = NULL;
flags = 0;
for(;;) {
- c = getopt(argc, argv, "f:O:B:hce6o:");
+ c = getopt(argc, argv, "f:O:B:hces6o:");
if (c == -1)
break;
switch(c) {
@@ -570,6 +575,9 @@ static int img_convert(int argc, char **argv)
case 'e':
flags |= BLOCK_FLAG_ENCRYPT;
break;
+ case 's':
+ flags |= BLOCK_FLAG_SCSI;
+ break;
case '6':
flags |= BLOCK_FLAG_COMPAT6;
break;
@@ -637,6 +645,9 @@ static int img_convert(int argc, char **argv)
@@ -727,6 +727,12 @@ static int img_convert(int argc, char **argv)
}
}
+ if (flags & BLOCK_FLAG_SCSI && strcmp(drv->format_name, "vmdk"))
+ error("SCSI devices not supported for this file format");
+ if ((scsi = get_option_parameter(param, BLOCK_OPT_SCSI)) && scsi->value.n && strcmp(drv->format_name, "vmdk")) {
+ error_report("SCSI devices not supported for this file format");
+ ret = -1;
+ goto out;
+ }
+
/* Create the new image */
ret = bdrv_create(drv, out_filename, param);
free_option_parameters(param);
if (ret < 0) {
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From 44ce0d8cef307cd7b6e82242f896559916886f30 Mon Sep 17 00:00:00 2001
From 75c51f45c127ebe4f549041aae98f510480429ae Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Tue, 14 Apr 2009 16:38:20 +0200
Subject: [PATCH 12/16] qemu-nonvoid_return
Subject: [PATCH 12/17] qemu-nonvoid_return
Squelches GCC warnings about undefined return values.
@ -12,7 +12,7 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/hw/mpcore.c b/hw/mpcore.c
index b4db191..ef0c705 100644
index fc05215..7bdb495 100644
--- a/hw/mpcore.c
+++ b/hw/mpcore.c
@@ -104,6 +104,7 @@ static uint32_t mpcore_timer_read(mpcore_timer_state *s, int offset)
@ -24,7 +24,7 @@ index b4db191..ef0c705 100644
static void mpcore_timer_write(mpcore_timer_state *s, int offset,
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index 99cf6dd..18875d9 100644
index 6f72a2b..7d9492b 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -440,6 +440,7 @@ static inline int opsize_bytes(int opsize)
@ -36,5 +36,5 @@ index 99cf6dd..18875d9 100644
/* Assign value to a register. If the width is less than the register width
--
1.6.4.2
1.7.1

View File

@ -1,7 +1,7 @@
From b7c83887c1c86140ffaab86d4d1fca5a81e86c2d Mon Sep 17 00:00:00 2001
From f44ecd4fcdb8e02e6bd58201a81f047d1e109508 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Thu, 16 Apr 2009 15:14:12 +0200
Subject: [PATCH 13/16] i386-linux-user NPTL support
Subject: [PATCH 13/17] i386-linux-user NPTL support
Makes NPTL binaries run by implementing TLS.
@ -12,10 +12,10 @@ Signed-off-by: Ulrich Hecht <uli@suse.de>
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 5f463b0..0ec7ff0 100755
index 598e8e1..95de763 100755
--- a/configure
+++ b/configure
@@ -2283,6 +2283,7 @@ TARGET_ABI_DIR=""
@@ -2910,6 +2910,7 @@ TARGET_ABI_DIR=""
case "$target_arch2" in
i386)
target_phys_bits=32
@ -24,10 +24,10 @@ index 5f463b0..0ec7ff0 100755
x86_64)
TARGET_BASE_ARCH=i386
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index a74869e..ec67a14 100644
index 81bf1f0..1a98433 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -3584,8 +3584,14 @@ static int do_fork(CPUState *env, unsigned int flags, abi_ulong newsp,
@@ -3792,8 +3792,14 @@ static int do_fork(CPUState *env, unsigned int flags, abi_ulong newsp,
ts->child_tidptr = child_tidptr;
}
@ -43,7 +43,7 @@ index a74869e..ec67a14 100644
/* Grab a mutex so that thread setup appears atomic. */
pthread_mutex_lock(&clone_lock);
@@ -3657,8 +3663,14 @@ static int do_fork(CPUState *env, unsigned int flags, abi_ulong newsp,
@@ -3867,8 +3873,14 @@ static int do_fork(CPUState *env, unsigned int flags, abi_ulong newsp,
if (flags & CLONE_PARENT_SETTID)
put_user_u32(gettid(), parent_tidptr);
ts = (TaskState *)env->opaque;
@ -60,5 +60,5 @@ index a74869e..ec67a14 100644
ts->child_tidptr = child_tidptr;
#endif
--
1.6.4.2
1.7.1

View File

@ -1,17 +1,17 @@
From 7c670471903f85dfbcbfce2a7b7829bd08559c3c Mon Sep 17 00:00:00 2001
From 3f23daf11dab4206ef87839bb513c4f97609f112 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Wed, 17 Jun 2009 14:54:48 +0200
Subject: [PATCH 14/16] qemu-0.11-git-ioctl_mount
Subject: [PATCH 14/17] qemu-0.11-git-ioctl_mount
---
linux-user/ioctls.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index fca824c..2cec892 100644
index 13ff54f..2442040 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -313,7 +313,7 @@
@@ -317,7 +317,7 @@
IOCTL(LOOP_CLR_FD, 0, TYPE_INT)
IOCTL(LOOP_SET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
IOCTL(LOOP_GET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
@ -21,5 +21,5 @@ index fca824c..2cec892 100644
IOCTL(LOOP_GET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
#endif
--
1.6.4.2
1.7.1

File diff suppressed because it is too large Load Diff

View File

@ -1,116 +0,0 @@
From 7871becde1196cc4d89b1e27de4e03858ef8f265 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Wed, 17 Jun 2009 15:08:38 +0200
Subject: [PATCH 15/16] qemu-0.11-git-user-linux-ppc-uid16_fix
---
linux-user/ppc/syscall_nr.h | 30 +++++++++++++++---------------
linux-user/syscall_defs.h | 2 +-
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/linux-user/ppc/syscall_nr.h b/linux-user/ppc/syscall_nr.h
index f54276b..cc84a4c 100644
--- a/linux-user/ppc/syscall_nr.h
+++ b/linux-user/ppc/syscall_nr.h
@@ -17,15 +17,15 @@
#define TARGET_NR_time 13
#define TARGET_NR_mknod 14
#define TARGET_NR_chmod 15
-#define TARGET_NR_lchown32 16
+#define TARGET_NR_lchown 16
#define TARGET_NR_break 17
#define TARGET_NR_oldstat 18
#define TARGET_NR_lseek 19
#define TARGET_NR_getpid 20
#define TARGET_NR_mount 21
#define TARGET_NR_umount 22
-#define TARGET_NR_setuid32 23
-#define TARGET_NR_getuid32 24
+#define TARGET_NR_setuid 23
+#define TARGET_NR_getuid 24
#define TARGET_NR_stime 25
#define TARGET_NR_ptrace 26
#define TARGET_NR_alarm 27
@@ -47,11 +47,11 @@
#define TARGET_NR_times 43
#define TARGET_NR_prof 44
#define TARGET_NR_brk 45
-#define TARGET_NR_setgid32 46
-#define TARGET_NR_getgid32 47
+#define TARGET_NR_setgid 46
+#define TARGET_NR_getgid 47
#define TARGET_NR_signal 48
-#define TARGET_NR_geteuid32 49
-#define TARGET_NR_getegid32 50
+#define TARGET_NR_geteuid 49
+#define TARGET_NR_getegid 50
#define TARGET_NR_acct 51
#define TARGET_NR_umount2 52
#define TARGET_NR_lock 53
@@ -71,8 +71,8 @@
#define TARGET_NR_sigaction 67
#define TARGET_NR_sgetmask 68
#define TARGET_NR_ssetmask 69
-#define TARGET_NR_setreuid32 70
-#define TARGET_NR_setregid32 71
+#define TARGET_NR_setreuid 70
+#define TARGET_NR_setregid 71
#define TARGET_NR_sigsuspend 72
#define TARGET_NR_sigpending 73
#define TARGET_NR_sethostname 74
@@ -81,8 +81,8 @@
#define TARGET_NR_getrusage 77
#define TARGET_NR_gettimeofday 78
#define TARGET_NR_settimeofday 79
-#define TARGET_NR_getgroups32 80
-#define TARGET_NR_setgroups32 81
+#define TARGET_NR_getgroups 80
+#define TARGET_NR_setgroups 81
#define TARGET_NR_select 82
#define TARGET_NR_symlink 83
#define TARGET_NR_oldlstat 84
@@ -96,7 +96,7 @@
#define TARGET_NR_truncate 92
#define TARGET_NR_ftruncate 93
#define TARGET_NR_fchmod 94
-#define TARGET_NR_fchown32 95
+#define TARGET_NR_fchown 95
#define TARGET_NR_getpriority 96
#define TARGET_NR_setpriority 97
#define TARGET_NR_profil 98
@@ -139,8 +139,8 @@
#define TARGET_NR_sysfs 135
#define TARGET_NR_personality 136
#define TARGET_NR_afs_syscall 137 /* Syscall for Andrew File System */
-#define TARGET_NR_setfsuid32 138
-#define TARGET_NR_setfsgid32 139
+#define TARGET_NR_setfsuid 138
+#define TARGET_NR_setfsgid 139
#define TARGET_NR__llseek 140
#define TARGET_NR_getdents 141
#define TARGET_NR__newselect 142
@@ -182,7 +182,7 @@
#define TARGET_NR_rt_sigsuspend 178
#define TARGET_NR_pread64 179
#define TARGET_NR_pwrite64 180
-#define TARGET_NR_chown32 181
+#define TARGET_NR_chown 181
#define TARGET_NR_getcwd 182
#define TARGET_NR_capget 183
#define TARGET_NR_capset 184
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 77ae416..e734fec 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -49,7 +49,7 @@
#define TARGET_IOC_TYPEBITS 8
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \
- || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS)
+ || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS) || defined(TARGET_PPC)
/* 16 bit uid wrappers emulation */
#define USE_UID16
#endif
--
1.6.4.2

View File

@ -0,0 +1,58 @@
From 4569b209989e09bdebcb6cce809b3fed0f94142c Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Wed, 25 Aug 2010 14:23:43 +0200
Subject: [PATCH 16/17] fix mipsn32*-linux-user builds
Signed-off-by: Ulrich Hecht <uli@suse.de>
---
configure | 2 ++
default-configs/mipsn32-linux-user.mak | 1 +
default-configs/mipsn32el-linux-user.mak | 1 +
linux-user/mipsn32/syscall.h | 3 ++-
4 files changed, 6 insertions(+), 1 deletions(-)
create mode 100644 default-configs/mipsn32-linux-user.mak
create mode 100644 default-configs/mipsn32el-linux-user.mak
diff --git a/configure b/configure
index bd1484b..6513d91 100755
--- a/configure
+++ b/configure
@@ -1010,6 +1010,8 @@ m68k-linux-user \
microblaze-linux-user \
mips-linux-user \
mipsel-linux-user \
+mipsn32-linux-user \
+mipsn32el-linux-user \
ppc-linux-user \
ppc64-linux-user \
ppc64abi32-linux-user \
diff --git a/default-configs/mipsn32-linux-user.mak b/default-configs/mipsn32-linux-user.mak
new file mode 100644
index 0000000..31df570
--- /dev/null
+++ b/default-configs/mipsn32-linux-user.mak
@@ -0,0 +1 @@
+# Default configuration for mips-linux-user
diff --git a/default-configs/mipsn32el-linux-user.mak b/default-configs/mipsn32el-linux-user.mak
new file mode 100644
index 0000000..4d0e4af
--- /dev/null
+++ b/default-configs/mipsn32el-linux-user.mak
@@ -0,0 +1 @@
+# Default configuration for mipsel-linux-user
diff --git a/linux-user/mipsn32/syscall.h b/linux-user/mipsn32/syscall.h
index 4ec506c..beeeb3c 100644
--- a/linux-user/mipsn32/syscall.h
+++ b/linux-user/mipsn32/syscall.h
@@ -216,6 +216,7 @@ struct target_pt_regs {
#undef TARGET_ENOTRECOVERABLE
#define TARGET_ENOTRECOVERABLE 166 /* State not recoverable */
-
+/* Nasty hack: define a fake errno value for use by sigreturn. */
+#define TARGET_QEMU_ESIGRETURN 255
#define UNAME_MACHINE "mips64"
--
1.7.1

129
0017-S-390-build-fix.patch Normal file
View File

@ -0,0 +1,129 @@
From 024f781ab4af31ba5e14882b5661d4586ae26988 Mon Sep 17 00:00:00 2001
From: Ulrich Hecht <uli@suse.de>
Date: Wed, 9 Feb 2011 18:35:21 +0100
Subject: [PATCH 17/17] S/390 build fix
---
target-s390x/op_helper.c | 22 +++++++++++-----------
target-s390x/translate.c | 2 +-
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/target-s390x/op_helper.c b/target-s390x/op_helper.c
index 20c83c5..46b71fc 100644
--- a/target-s390x/op_helper.c
+++ b/target-s390x/op_helper.c
@@ -738,7 +738,7 @@ uint32_t HELPER(tmxx)(uint64_t val, uint32_t mask)
uint32_t HELPER(abs_i32)(uint32_t reg, int32_t val)
{
uint32_t cc;
- if (val == 0x80000000UL) cc = 3;
+ if ((uint32_t)val == 0x80000000UL) cc = 3;
else if (val) cc = 1;
else cc = 0;
@@ -996,7 +996,7 @@ uint32_t HELPER(slbg)(uint32_t cc, uint32_t r1, uint64_t v1, uint64_t v2)
/* condition codes for binary FP ops */
static uint32_t set_cc_f32(float32 v1, float32 v2)
{
- if (float32_is_nan(v1) || float32_is_nan(v2)) return 3;
+ if (float32_is_any_nan(v1) || float32_is_any_nan(v2)) return 3;
else if (float32_eq(v1, v2, &env->fpu_status)) return 0;
else if (float32_lt(v1, v2, &env->fpu_status)) return 1;
else return 2;
@@ -1004,7 +1004,7 @@ static uint32_t set_cc_f32(float32 v1, float32 v2)
static uint32_t set_cc_f64(float64 v1, float64 v2)
{
- if (float64_is_nan(v1) || float64_is_nan(v2)) return 3;
+ if (float64_is_any_nan(v1) || float64_is_any_nan(v2)) return 3;
else if (float64_eq(v1, v2, &env->fpu_status)) return 0;
else if (float64_lt(v1, v2, &env->fpu_status)) return 1;
else return 2;
@@ -1013,7 +1013,7 @@ static uint32_t set_cc_f64(float64 v1, float64 v2)
/* condition codes for unary FP ops */
static uint32_t set_cc_nz_f32(float32 v)
{
- if (float32_is_nan(v)) return 3;
+ if (float32_is_any_nan(v)) return 3;
else if (float32_is_zero(v)) return 0;
else if (float32_is_neg(v)) return 1;
else return 2;
@@ -1021,7 +1021,7 @@ static uint32_t set_cc_nz_f32(float32 v)
static uint32_t set_cc_nz_f64(float64 v)
{
- if (float64_is_nan(v)) return 3;
+ if (float64_is_any_nan(v)) return 3;
else if (float64_is_zero(v)) return 0;
else if (float64_is_neg(v)) return 1;
else return 2;
@@ -1029,7 +1029,7 @@ static uint32_t set_cc_nz_f64(float64 v)
static uint32_t set_cc_nz_f128(float128 v)
{
- if (float128_is_nan(v)) return 3;
+ if (float128_is_any_nan(v)) return 3;
else if (float128_is_zero(v)) return 0;
else if (float128_is_neg(v)) return 1;
else return 2;
@@ -1350,7 +1350,7 @@ uint32_t HELPER(cxbr)(uint32_t f1, uint32_t f2)
CPU_QuadU v2;
v2.ll.upper = env->fregs[f2].ll;
v2.ll.lower = env->fregs[f2 + 2].ll;
- if (float128_is_nan(v1.q) || float128_is_nan(v2.q)) return 3;
+ if (float128_is_any_nan(v1.q) || float128_is_any_nan(v2.q)) return 3;
else if (float128_eq(v1.q, v2.q, &env->fpu_status)) return 0;
else if (float128_lt(v1.q, v2.q, &env->fpu_status)) return 1;
else return 2;
@@ -1463,7 +1463,7 @@ uint32_t HELPER(cgxbr)(uint32_t r1, uint32_t f2, uint32_t m3)
v2.ll.lower = env->fregs[f2 + 2].ll;
set_round_mode(m3);
env->regs[r1] = float128_to_int64(v2.q, &env->fpu_status);
- if (float128_is_nan(v2.q)) return 3;
+ if (float128_is_any_nan(v2.q)) return 3;
else if (float128_is_zero(v2.q)) return 0;
else if (float128_is_neg(v2.q)) return 1;
else return 2;
@@ -1611,7 +1611,7 @@ uint32_t HELPER(tceb)(uint32_t f1, uint64_t m2)
HELPER_LOG("%s: v1 0x%lx m2 0x%lx neg %d\n", __FUNCTION__, v1, m2, neg);
if (float32_is_zero(v1) && (m2 & (1 << (11-neg)))) cc = 1;
else if (float32_is_infinity(v1) && (m2 & (1 << (5-neg)))) cc = 1;
- else if (float32_is_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
+ else if (float32_is_quiet_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
else if (float32_is_signaling_nan(v1) && (m2 & (1 << (1-neg)))) cc = 1;
else /* assume normalized number */ if (m2 & (1 << (9-neg))) cc = 1;
/* FIXME: denormalized? */
@@ -1627,7 +1627,7 @@ uint32_t HELPER(tcdb)(uint32_t f1, uint64_t m2)
HELPER_LOG("%s: v1 0x%lx m2 0x%lx neg %d\n", __FUNCTION__, v1, m2, neg);
if (float64_is_zero(v1) && (m2 & (1 << (11-neg)))) cc = 1;
else if (float64_is_infinity(v1) && (m2 & (1 << (5-neg)))) cc = 1;
- else if (float64_is_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
+ else if (float64_is_quiet_nan(v1) && (m2 & (1 << (3-neg)))) cc = 1;
else if (float64_is_signaling_nan(v1) && (m2 & (1 << (1-neg)))) cc = 1;
else /* assume normalized number */ if (m2 & (1 << (9-neg))) cc = 1;
/* FIXME: denormalized? */
@@ -1645,7 +1645,7 @@ uint32_t HELPER(tcxb)(uint32_t f1, uint64_t m2)
int neg = float128_is_neg(v1.q);
if (float128_is_zero(v1.q) && (m2 & (1 << (11-neg)))) cc = 1;
else if (float128_is_infinity(v1.q) && (m2 & (1 << (5-neg)))) cc = 1;
- else if (float128_is_nan(v1.q) && (m2 & (1 << (3-neg)))) cc = 1;
+ else if (float128_is_quiet_nan(v1.q) && (m2 & (1 << (3-neg)))) cc = 1;
else if (float128_is_signaling_nan(v1.q) && (m2 & (1 << (1-neg)))) cc = 1;
else /* assume normalized number */ if (m2 & (1 << (9-neg))) cc = 1;
/* FIXME: denormalized? */
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index e08dcf4..189a60b 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -67,7 +67,7 @@ void cpu_dump_state(CPUState *env, FILE *f, fprintf_function cpu_fprintf,
}
}
for (i = 0; i < 16; i++) {
- cpu_fprintf(f, "F%02d=%016lx", i, (long)env->fregs[i].i);
+ cpu_fprintf(f, "F%02d=%016lx", i, (long)env->fregs[i].ll);
if ((i % 4) == 3) {
cpu_fprintf(f, "\n");
} else {
--
1.7.1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:22829ff344453eec4e0bb3b028b20d677ecb7acd07c0c2e0bf30f04fb9de448a
size 3932800

3
qemu-0.14.0-rc1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6c4f5c01033e6a4a39f221cfad84e2d15e4e6c1023d263b8480d6aea4afbc0ac
size 4545302

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Feb 10 14:48:36 CET 2011 - uli@suse.de
- update -> 0.14.0-rc1
See http://wiki.qemu.org/Changelog/0.14 for changes in 0.14.
(There is no such page for the 0.13 tree. The ChangeLog file ends at
0.12.0, http://wiki.qemu.org/ChangeLog at 0.12.5 and suggests to look at
the git log. High-level information of what has changed in 0.13 is
apparently not available.)
-------------------------------------------------------------------
Fri May 28 18:57:23 CEST 2010 - uli@suse.de

View File

@ -24,9 +24,9 @@ Url: http://fabrice.bellard.free.fr/qemu/
License: BSD3c(or similar) ; GPLv2+ ; LGPLv2.1+ ; MIT License (or similar)
Group: System/Emulators/PC
Summary: Universal CPU emulator
Version: 0.12.4
Version: 0.14.0_rc1
Release: 1
Source: %name-%version.tar.bz2
Source: %name-0.14.0-rc1.tar.bz2
Patch1: 0001-qemu-0.7.0-amd64.patch
Patch2: 0002-qemu-0.9.0.cvs-binfmt.patch
Patch3: 0003-qemu-cvs-alsa_bitfield.patch
@ -41,8 +41,9 @@ Patch11: 0011-qemu-img-vmdk-scsi.patch
Patch12: 0012-qemu-nonvoid_return.patch
Patch13: 0013-i386-linux-user-NPTL-support.patch
Patch14: 0014-qemu-0.11-git-ioctl_mount.patch
Patch15: 0015-qemu-0.11-git-user-linux-ppc-uid16_fix.patch
Patch16: 0016-S-390-support.patch
Patch15: 0015-S-390-support.patch
Patch16: 0016-fix-mipsn32-linux-user-builds.patch
Patch17: 0017-S-390-build-fix.patch
# this is to make lint happy
Source300: rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -63,7 +64,7 @@ Authors:
Fabrice Bellard <fabrice.bellard@free.fr>
%prep
%setup -q
%setup -q -n %name-0.14.0-rc1
%patch1 -p1
%patch2 -p1
%patch3 -p1
@ -78,17 +79,18 @@ Authors:
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%ifarch s390x ppc64 x86_64
# s390 target only builds on 64-bit machines
%patch16 -p1
%patch15 -p1
%patch17 -p1
%endif
%patch16 -p1
%build
# build QEMU
mkdir -p dynamic
# build qemu-system
./configure --prefix=/usr \
./configure --prefix=/usr --sysconfdir=%_sysconfdir \
--interp-prefix=/usr/share/qemu/qemu-i386 \
--audio-card-list="ac97 es1370 sb16 cs4231a adlib gus" \
--audio-drv-list="alsa sdl" --enable-mixemu \
@ -105,7 +107,7 @@ make qemu-img V=1
mv */qemu */qemu-* qemu-io dynamic || true
make clean
# build userland emus
./configure --prefix=/usr \
./configure --prefix=/usr --sysconfdir=%_sysconfdir \
--interp-prefix=/usr/share/qemu/qemu-i386 \
--enable-linux-user \
--disable-system \
@ -122,7 +124,7 @@ install -m 755 */qemu $RPM_BUILD_ROOT/usr/bin
ln -sf qemu $RPM_BUILD_ROOT/usr/bin/qemu-system-i386
install -m 755 */qemu-*[^.]? $RPM_BUILD_ROOT/usr/bin
install -d -m 755 $RPM_BUILD_ROOT/usr/sbin
install -m 755 qemu-binfmt-conf.sh $RPM_BUILD_ROOT/usr/sbin
install -m 755 dynamic/qemu-binfmt-conf.sh $RPM_BUILD_ROOT/usr/sbin
%ifnarch %ix86 x86_64
ln -sf ../../../emul/ia32-linux $RPM_BUILD_ROOT/usr/share/qemu/qemu-i386
%endif
@ -144,5 +146,7 @@ rm -rf ${RPM_BUILD_ROOT}
%ifnarch %ix86 x86_64 ia64
%dir /emul/ia32-linux
%endif
%dir %_sysconfdir/qemu
%config %_sysconfdir/qemu/target-x86_64.conf
%changelog