From 2b25dd325ab4291f7bf951b3dbb599239ef1969b06e97158e05d11a605c705ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Fri, 17 Aug 2012 16:42:52 +0000 Subject: [PATCH] Accepting request 131113 from home:a_faerber:branches:Virtualization Update to v1.2.0-rc0 OBS-URL: https://build.opensuse.org/request/show/131113 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=100 --- ...-Handle-CPU-interrupts-by-inline-che.patch | 30 ++++---- ...-XXX-dont-dump-core-on-sigabort.patc.patch | 4 +- ...-XXX-work-around-SA_RESTART-race-wit.patch | 24 +++---- 0004-qemu-0.9.0.cvs-binfmt.patch.patch | 2 +- 0005-qemu-cvs-alsa_bitfield.patch.patch | 2 +- 0006-qemu-cvs-alsa_ioctl.patch.patch | 12 ++-- 0007-qemu-cvs-alsa_mmap.patch.patch | 6 +- 0008-qemu-cvs-gettimeofday.patch.patch | 6 +- 0009-qemu-cvs-ioctl_debug.patch.patch | 6 +- 0010-qemu-cvs-ioctl_nodirection.patch.patch | 8 +-- ...-block-vmdk-Support-creation-of-SCSI.patch | 65 ++++++++--------- ...-configure-Enable-mipsn32-linux-user.patch | 13 ++-- ...-linux-user-add-binfmt-wrapper-for-a.patch | 46 ++++++++++--- ...-linux-user-Ignore-timer_create-sysc.patch | 6 +- ...-linux-user-be-silent-about-capget-f.patch | 6 +- ...-PPC-KVM-Disable-mmu-notifier-check..patch | 6 +- ...-linux-user-fix-segfault-deadlock.pa.patch | 6 +- ...-linux-user-binfmt-support-host-bina.patch | 2 +- ...-linux-user-ARM-Ignore-immediate-val.patch | 30 -------- ...-linux-user-arm-no-tb_flush-on-reset.patch | 6 +- ...-linux-user-fix-multi-threaded-proc-.patch | 6 +- ...-use-libexecdir-instead-of-ignoring-.patch | 19 ++--- ...-linux-user-Ignore-broken-loop-ioctl.patch | 12 ++-- ...-linux-user-fix-segmentation-fault-p.patch | 41 +++++++++++ ...-linux-user-fix-segmentation-fault-p.patch | 56 --------------- ...ch => 0024-linux-user-lock-tcg.patch.patch | 12 ++-- ...-linux-user-Run-multi-threaded-code-.patch | 6 +- ...-linux-user-lock-tb-flushing-too.pat.patch | 20 +++--- ...7-linux-user-Fake-proc-cpuinfo.patch.patch | 8 +-- ...-XXX-merge-with-segmentation-fault-p.patch | 54 --------------- ...-Replace-struct-siginfo-with-siginfo.patch | 69 ------------------- qemu-1.1.0-1.tar.bz2 | 3 - qemu-1.2.0-rc0.tar.bz2 | 3 + qemu.changes | 7 ++ qemu.spec | 33 ++++----- qemu.spec.in | 7 +- update_git.sh | 4 +- 37 files changed, 258 insertions(+), 388 deletions(-) rename 0011-qemu-img-vmdk-scsi.patch.patch => 0011-block-vmdk-Support-creation-of-SCSI.patch (67%) delete mode 100644 0019-linux-user-ARM-Ignore-immediate-val.patch rename 0020-linux-user-arm-no-tb_flush-on-reset.patch => 0019-linux-user-arm-no-tb_flush-on-reset.patch (86%) rename 0021-linux-user-fix-multi-threaded-proc-.patch => 0020-linux-user-fix-multi-threaded-proc-.patch (88%) rename 0022-use-libexecdir-instead-of-ignoring-.patch => 0021-use-libexecdir-instead-of-ignoring-.patch (88%) rename 0023-linux-user-Ignore-broken-loop-ioctl.patch => 0022-linux-user-Ignore-broken-loop-ioctl.patch (90%) create mode 100644 0023-linux-user-fix-segmentation-fault-p.patch delete mode 100644 0024-linux-user-fix-segmentation-fault-p.patch rename 0025-linux-user-lock-tcg.patch.patch => 0024-linux-user-lock-tcg.patch.patch (92%) rename 0026-linux-user-Run-multi-threaded-code-.patch => 0025-linux-user-Run-multi-threaded-code-.patch (90%) rename 0027-linux-user-lock-tb-flushing-too.pat.patch => 0026-linux-user-lock-tb-flushing-too.pat.patch (83%) rename 0029-linux-user-Fake-proc-cpuinfo.patch.patch => 0027-linux-user-Fake-proc-cpuinfo.patch.patch (88%) delete mode 100644 0028-XXX-merge-with-segmentation-fault-p.patch delete mode 100644 0030-Replace-struct-siginfo-with-siginfo.patch delete mode 100644 qemu-1.1.0-1.tar.bz2 create mode 100644 qemu-1.2.0-rc0.tar.bz2 diff --git a/0001-Handle-CPU-interrupts-by-inline-che.patch b/0001-Handle-CPU-interrupts-by-inline-che.patch index 93fff90a..80c3f452 100644 --- a/0001-Handle-CPU-interrupts-by-inline-che.patch +++ b/0001-Handle-CPU-interrupts-by-inline-che.patch @@ -1,4 +1,4 @@ -From f83a3e6ff4aeb7ec2ff75afd64625e7915ef758a Mon Sep 17 00:00:00 2001 +From 9763d20d318638573f7633637f1c5ff96a0e62a3 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 5 Oct 2011 10:04:02 +0100 Subject: [PATCH] Handle CPU interrupts by inline checking of a flag @@ -32,10 +32,10 @@ hit is, which I never got round to. Feel free to do some :-) 6 files changed, 60 insertions(+), 3 deletions(-) diff --git a/cpu-exec.c b/cpu-exec.c -index 0344cd5..0547f2d 100644 +index 134b3c4..e90ea29 100644 --- a/cpu-exec.c +++ b/cpu-exec.c -@@ -563,7 +563,16 @@ int cpu_exec(CPUArchState *env) +@@ -599,7 +599,16 @@ int cpu_exec(CPUArchState *env) tc_ptr = tb->tc_ptr; /* execute the generated code */ next_tb = tcg_qemu_tb_exec(env, tc_ptr); @@ -54,7 +54,7 @@ index 0344cd5..0547f2d 100644 int insns_left; tb = (TranslationBlock *)(next_tb & ~3); diff --git a/exec.c b/exec.c -index a0494c7..21fce4e 100644 +index 5834766..9cbdc35 100644 --- a/exec.c +++ b/exec.c @@ -130,6 +130,8 @@ DEFINE_TLS(CPUArchState *,cpu_single_env); @@ -66,7 +66,7 @@ index a0494c7..21fce4e 100644 typedef struct PageDesc { /* list of TBs intersecting this ram page */ -@@ -1755,7 +1757,13 @@ static void tcg_handle_interrupt(CPUArchState *env, int mask) +@@ -1708,7 +1710,13 @@ static void tcg_handle_interrupt(CPUArchState *env, int mask) cpu_abort(env, "Raised interrupt while not in I/O function"); } } else { @@ -81,7 +81,7 @@ index a0494c7..21fce4e 100644 } } -@@ -1778,7 +1786,9 @@ void cpu_reset_interrupt(CPUArchState *env, int mask) +@@ -1731,7 +1739,9 @@ void cpu_reset_interrupt(CPUArchState *env, int mask) void cpu_exit(CPUArchState *env) { env->exit_request = 1; @@ -91,7 +91,7 @@ index a0494c7..21fce4e 100644 + } } - const CPULogItem cpu_log_items[] = { + void cpu_abort(CPUArchState *env, const char *fmt, ...) diff --git a/gen-icount.h b/gen-icount.h index 430cb44..65a75d9 100644 --- a/gen-icount.h @@ -134,7 +134,7 @@ index 430cb44..65a75d9 100644 *icount_arg = num_insns; gen_set_label(icount_label); diff --git a/linux-user/main.c b/linux-user/main.c -index 191b750..dd340b2 100644 +index 7dea084..d9814bc4 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -64,6 +64,7 @@ unsigned long reserved_va; @@ -145,7 +145,7 @@ index 191b750..dd340b2 100644 static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX; const char *qemu_uname_release = CONFIG_UNAME_RELEASE; -@@ -3107,6 +3108,11 @@ static void handle_arg_reserved_va(const char *arg) +@@ -3196,6 +3197,11 @@ static void handle_arg_reserved_va(const char *arg) } #endif @@ -157,7 +157,7 @@ index 191b750..dd340b2 100644 static void handle_arg_singlestep(const char *arg) { singlestep = 1; -@@ -3162,6 +3168,8 @@ struct qemu_argument arg_table[] = { +@@ -3251,6 +3257,8 @@ struct qemu_argument arg_table[] = { "options", "activate log"}, {"D", "QEMU_LOG_FILENAME", true, handle_arg_log_filename, "logfile", "override default logfile location"}, @@ -167,10 +167,10 @@ index 191b750..dd340b2 100644 "pagesize", "set the host page size to 'pagesize'"}, {"singlestep", "QEMU_SINGLESTEP", false, handle_arg_singlestep, diff --git a/qemu-options.hx b/qemu-options.hx -index 8b66264..6d66113 100644 +index 3c411c4..af614bf 100644 --- a/qemu-options.hx +++ b/qemu-options.hx -@@ -1176,6 +1176,15 @@ STEXI +@@ -1196,6 +1196,15 @@ STEXI Disable HPET support. ETEXI @@ -187,10 +187,10 @@ index 8b66264..6d66113 100644 "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]\n" " ACPI table description\n", QEMU_ARCH_I386) diff --git a/vl.c b/vl.c -index 23ab3a3..a33c28e 100644 +index 67f5813..322fea0 100644 --- a/vl.c +++ b/vl.c -@@ -175,6 +175,8 @@ int main(int argc, char **argv) +@@ -176,6 +176,8 @@ int main(int argc, char **argv) #define MAX_VIRTIO_CONSOLES 1 @@ -199,7 +199,7 @@ index 23ab3a3..a33c28e 100644 static const char *data_dir; const char *bios_name = NULL; enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB; -@@ -2958,6 +2960,9 @@ int main(int argc, char **argv, char **envp) +@@ -3038,6 +3040,9 @@ int main(int argc, char **argv, char **envp) qdev_prop_register_global_list(slew_lost_ticks); break; } diff --git a/0002-XXX-dont-dump-core-on-sigabort.patc.patch b/0002-XXX-dont-dump-core-on-sigabort.patc.patch index a1f05eda..3502ce6d 100644 --- a/0002-XXX-dont-dump-core-on-sigabort.patc.patch +++ b/0002-XXX-dont-dump-core-on-sigabort.patc.patch @@ -1,4 +1,4 @@ -From 86b1e6e983680b4332de69473e46103d22bfada4 Mon Sep 17 00:00:00 2001 +From a5d4463daeb0ff29a3d17cf410b1c81b6f910875 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Mon, 21 Nov 2011 23:50:36 +0100 Subject: [PATCH] XXX dont dump core on sigabort @@ -8,7 +8,7 @@ Subject: [PATCH] XXX dont dump core on sigabort 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/linux-user/signal.c b/linux-user/signal.c -index b1e139d..0d6cb7b 100644 +index 7869147..0078b32 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -373,6 +373,10 @@ static void QEMU_NORETURN force_sig(int target_sig) diff --git a/0003-XXX-work-around-SA_RESTART-race-wit.patch b/0003-XXX-work-around-SA_RESTART-race-wit.patch index 217360f7..68327238 100644 --- a/0003-XXX-work-around-SA_RESTART-race-wit.patch +++ b/0003-XXX-work-around-SA_RESTART-race-wit.patch @@ -1,4 +1,4 @@ -From aabcf0dc3144e713aef746e32b66dc8d13b77891 Mon Sep 17 00:00:00 2001 +From 6a72014de6a88964f9d3d88ec5bf1a7fd1f44e98 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Thu, 1 Dec 2011 19:00:01 +0100 Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only) @@ -12,10 +12,10 @@ Subject: [PATCH] XXX work around SA_RESTART race with boehm-gc (ARM only) 4 files changed, 130 insertions(+), 10 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c -index dd340b2..503ecfa 100644 +index d9814bc4..587f421 100644 --- a/linux-user/main.c +++ b/linux-user/main.c -@@ -848,15 +848,22 @@ void cpu_loop(CPUARMState *env) +@@ -847,15 +847,22 @@ void cpu_loop(CPUARMState *env) break; } } else { @@ -48,7 +48,7 @@ index dd340b2..503ecfa 100644 } else { goto error; diff --git a/linux-user/qemu.h b/linux-user/qemu.h -index 7b299b7..dc12b23 100644 +index 69b27d7..175d502 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -137,6 +137,8 @@ typedef struct TaskState { @@ -66,10 +66,10 @@ index 7b299b7..dc12b23 100644 void fork_end(int child); +int syscall_restartable(int syscall_nr); - /* Return true if the proposed guest_base is suitable for the guest. - * The guest code may leave a page mapped and populate it if the + /* Creates the initial guest address space in the host memory space using + * the given host start address hint and size. The guest_start parameter diff --git a/linux-user/signal.c b/linux-user/signal.c -index 0d6cb7b..c00cf75 100644 +index 0078b32..4a637f4 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -25,6 +25,7 @@ @@ -118,10 +118,10 @@ index 0d6cb7b..c00cf75 100644 ignore state to avoid getting unexpected interrupted syscalls */ diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 20d2a74..2a210e7 100644 +index 41c869b..60ed4be 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -5031,6 +5031,87 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode) +@@ -5086,6 +5086,87 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode) return get_errno(open(path(pathname), flags, mode)); } @@ -209,7 +209,7 @@ index 20d2a74..2a210e7 100644 /* do_syscall() should always have a single exit point at the end so that actions, such as logging of syscall results, can be performed. All errnos that do_syscall() returns must be -TARGET_. */ -@@ -5043,6 +5124,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -5098,6 +5179,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, struct stat st; struct statfs stfs; void *p; @@ -222,7 +222,7 @@ index 20d2a74..2a210e7 100644 #ifdef DEBUG gemu_log("syscall %d", num); -@@ -7988,7 +8075,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -8095,7 +8182,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, cmd = target_to_host_fcntl_cmd(arg2); if (cmd == -TARGET_EINVAL) { ret = cmd; @@ -231,7 +231,7 @@ index 20d2a74..2a210e7 100644 } switch(arg2) { -@@ -8733,6 +8820,7 @@ fail: +@@ -8840,6 +8927,7 @@ fail: #endif if(do_strace) print_syscall_ret(num, ret); diff --git a/0004-qemu-0.9.0.cvs-binfmt.patch.patch b/0004-qemu-0.9.0.cvs-binfmt.patch.patch index 6b69796d..0c6ad4db 100644 --- a/0004-qemu-0.9.0.cvs-binfmt.patch.patch +++ b/0004-qemu-0.9.0.cvs-binfmt.patch.patch @@ -1,4 +1,4 @@ -From 343ed56bc6ccd90974f43cca405e20919af04552 Mon Sep 17 00:00:00 2001 +From 8ced0f08f09a6588a73b15feada94e063692ab35 Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Tue, 14 Apr 2009 16:18:44 +0200 Subject: [PATCH] qemu-0.9.0.cvs-binfmt diff --git a/0005-qemu-cvs-alsa_bitfield.patch.patch b/0005-qemu-cvs-alsa_bitfield.patch.patch index ab90786e..74a13eea 100644 --- a/0005-qemu-cvs-alsa_bitfield.patch.patch +++ b/0005-qemu-cvs-alsa_bitfield.patch.patch @@ -1,4 +1,4 @@ -From e4b24a62433e546aa16a4e4f9018324086c264e7 Mon Sep 17 00:00:00 2001 +From c48e5ad811706d9a3ffc5a80085c820c6f845377 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 14 Apr 2009 16:20:50 +0200 Subject: [PATCH] qemu-cvs-alsa_bitfield diff --git a/0006-qemu-cvs-alsa_ioctl.patch.patch b/0006-qemu-cvs-alsa_ioctl.patch.patch index 04319588..3fd8ae25 100644 --- a/0006-qemu-cvs-alsa_ioctl.patch.patch +++ b/0006-qemu-cvs-alsa_ioctl.patch.patch @@ -1,4 +1,4 @@ -From 137788d54993ea8543ed0b42be6a5b026e048b58 Mon Sep 17 00:00:00 2001 +From fe0fcbcbec05584ff7b9dd1bdc60deedd14b70e1 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 14 Apr 2009 16:23:27 +0200 Subject: [PATCH] qemu-cvs-alsa_ioctl @@ -20,7 +20,7 @@ Signed-off-by: Ulrich Hecht create mode 100644 linux-user/syscall_types_alsa.h diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h -index eb96a08..e8c1c69 100644 +index 8a47767..6af0cb7 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -316,6 +316,11 @@ @@ -2255,20 +2255,20 @@ index 0000000..e09a30d + unsigned char *code; +}; diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index a79b67d..be8760c 100644 +index 2cfda5a..0af219a 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -2362,3 +2362,5 @@ struct target_ucred { +@@ -2425,3 +2425,5 @@ struct target_ucred { uint32_t uid; uint32_t gid; }; + +#include "ioctls_alsa_structs.h" diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h -index 601618d..ad2ee7e 100644 +index 44b6a58..7897e37 100644 --- a/linux-user/syscall_types.h +++ b/linux-user/syscall_types.h -@@ -80,6 +80,11 @@ STRUCT(count_info, +@@ -83,6 +83,11 @@ STRUCT(buffmem_desc, STRUCT(mixer_info, MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10)) diff --git a/0007-qemu-cvs-alsa_mmap.patch.patch b/0007-qemu-cvs-alsa_mmap.patch.patch index 5e153e27..5fc771fd 100644 --- a/0007-qemu-cvs-alsa_mmap.patch.patch +++ b/0007-qemu-cvs-alsa_mmap.patch.patch @@ -1,4 +1,4 @@ -From 75a2031df4adb45576126c055bccee35c0384e64 Mon Sep 17 00:00:00 2001 +From 7fbdb3f4610eb31f6692e4919593ffe861d05e97 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 14 Apr 2009 16:24:15 +0200 Subject: [PATCH] qemu-cvs-alsa_mmap @@ -12,7 +12,7 @@ Signed-off-by: Ulrich Hecht 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/linux-user/mmap.c b/linux-user/mmap.c -index d9468fe..3f5e1d7 100644 +index b412e3f..46523de 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -377,6 +377,9 @@ abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size) @@ -25,7 +25,7 @@ index d9468fe..3f5e1d7 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) -@@ -412,6 +415,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot, +@@ -411,6 +414,17 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot, } #endif diff --git a/0008-qemu-cvs-gettimeofday.patch.patch b/0008-qemu-cvs-gettimeofday.patch.patch index 36fc261f..c2ebb080 100644 --- a/0008-qemu-cvs-gettimeofday.patch.patch +++ b/0008-qemu-cvs-gettimeofday.patch.patch @@ -1,4 +1,4 @@ -From c40b80d60882ca0a479de9dd14409fd3a2eba6bb Mon Sep 17 00:00:00 2001 +From e4983bb8eb29727b89ddc5d4964c07854ecec4f3 Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Tue, 14 Apr 2009 16:25:41 +0200 Subject: [PATCH] qemu-cvs-gettimeofday @@ -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 2a210e7..13721c5 100644 +index 60ed4be..a929639 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -6182,6 +6182,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -6237,6 +6237,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, case TARGET_NR_gettimeofday: { struct timeval tv; diff --git a/0009-qemu-cvs-ioctl_debug.patch.patch b/0009-qemu-cvs-ioctl_debug.patch.patch index 2213400f..a8f18d36 100644 --- a/0009-qemu-cvs-ioctl_debug.patch.patch +++ b/0009-qemu-cvs-ioctl_debug.patch.patch @@ -1,4 +1,4 @@ -From 44449256ecf57af6468a63068d72c0e3f5253718 Mon Sep 17 00:00:00 2001 +From d4f7c54f0117083c74fdd25ca6efdb0f90a3223b Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 14 Apr 2009 16:26:33 +0200 Subject: [PATCH] qemu-cvs-ioctl_debug @@ -12,10 +12,10 @@ Signed-off-by: Ulrich Hecht 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 13721c5..c16c11a 100644 +index a929639..ac387a4 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3603,7 +3603,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) +@@ -3657,7 +3657,12 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) ie = ioctl_entries; for(;;) { if (ie->target_cmd == 0) { diff --git a/0010-qemu-cvs-ioctl_nodirection.patch.patch b/0010-qemu-cvs-ioctl_nodirection.patch.patch index c44a7e92..d2b01518 100644 --- a/0010-qemu-cvs-ioctl_nodirection.patch.patch +++ b/0010-qemu-cvs-ioctl_nodirection.patch.patch @@ -1,4 +1,4 @@ -From 397d17731b3236cd11bd3c2191f94280c46eadef Mon Sep 17 00:00:00 2001 +From 2fed0dbdfebf7cdd1a4fad426c51ae315e1e5f39 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 14 Apr 2009 16:27:36 +0200 Subject: [PATCH] qemu-cvs-ioctl_nodirection @@ -15,10 +15,10 @@ Signed-off-by: Ulrich Hecht 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index c16c11a..5c6e303 100644 +index ac387a4..53feee5 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3637,6 +3637,11 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) +@@ -3691,6 +3691,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) { @@ -30,7 +30,7 @@ index c16c11a..5c6e303 100644 case IOC_R: ret = get_errno(ioctl(fd, ie->host_cmd, buf_temp)); if (!is_error(ret)) { -@@ -3655,6 +3660,7 @@ static abi_long do_ioctl(int fd, abi_long cmd, abi_long arg) +@@ -3709,6 +3714,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; diff --git a/0011-qemu-img-vmdk-scsi.patch.patch b/0011-block-vmdk-Support-creation-of-SCSI.patch similarity index 67% rename from 0011-qemu-img-vmdk-scsi.patch.patch rename to 0011-block-vmdk-Support-creation-of-SCSI.patch index de468208..c2d17490 100644 --- a/0011-qemu-img-vmdk-scsi.patch.patch +++ b/0011-block-vmdk-Support-creation-of-SCSI.patch @@ -1,11 +1,14 @@ -From 24e926bb87d3199d3177358929eacb65af69418e Mon Sep 17 00:00:00 2001 +From e76344b62f6365b61520345e00f89b80b6570fe0 Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Tue, 14 Apr 2009 16:37:42 +0200 -Subject: [PATCH] qemu-img-vmdk-scsi - -Support creation of SCSI VMDK images in qemu-img. +Subject: [PATCH] block/vmdk: Support creation of SCSI VMDK images in qemu-img +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit Signed-off-by: Ulrich Hecht +[AF: Changed BLOCK_FLAG_SCSI from 8 to 16 for v1.2] +Signed-off-by: Andreas Färber --- block.c | 5 ++++- block/vmdk.c | 12 ++++++++++-- @@ -14,10 +17,10 @@ Signed-off-by: Ulrich Hecht 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/block.c b/block.c -index 7547051..6a68221 100644 +index 470bdcc..b27622b 100644 --- a/block.c +++ b/block.c -@@ -4039,7 +4039,7 @@ int bdrv_img_create(const char *filename, const char *fmt, +@@ -3902,7 +3902,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; @@ -26,7 +29,7 @@ index 7547051..6a68221 100644 BlockDriverState *bs = NULL; BlockDriver *drv, *proto_drv; BlockDriver *backing_drv = NULL; -@@ -4154,6 +4154,9 @@ int bdrv_img_create(const char *filename, const char *fmt, +@@ -4017,6 +4017,9 @@ int bdrv_img_create(const char *filename, const char *fmt, printf("Formatting '%s', fmt=%s ", filename, fmt); print_option_parameters(param); @@ -37,10 +40,10 @@ index 7547051..6a68221 100644 ret = bdrv_create(drv, filename, param); diff --git a/block/vmdk.c b/block/vmdk.c -index 18e9b4c..c153617 100644 +index daee426..1eb3e60 100644 --- a/block/vmdk.c +++ b/block/vmdk.c -@@ -1377,7 +1377,7 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options) +@@ -1376,7 +1376,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" @@ -49,7 +52,7 @@ index 18e9b4c..c153617 100644 if (filename_decompose(filename, path, prefix, postfix, PATH_MAX)) { return -EINVAL; -@@ -1392,6 +1392,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options) +@@ -1391,6 +1391,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options) flags |= options->value.n ? BLOCK_FLAG_COMPAT6 : 0; } else if (!strcmp(options->name, BLOCK_OPT_SUBFMT)) { fmt = options->value.s; @@ -58,7 +61,7 @@ index 18e9b4c..c153617 100644 } options++; } -@@ -1482,7 +1484,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options) +@@ -1481,7 +1483,8 @@ static int vmdk_create(const char *filename, QEMUOptionParameter *options) parent_desc_line, ext_desc_lines, (flags & BLOCK_FLAG_COMPAT6 ? 6 : 4), @@ -66,9 +69,9 @@ index 18e9b4c..c153617 100644 + total_size / (int64_t)(63 * 16 * 512), + flags & BLOCK_FLAG_SCSI ? "lsilogic" : "ide"); if (split || flat) { - fd = open( - filename, -@@ -1585,6 +1588,11 @@ static QEMUOptionParameter vmdk_create_options[] = { + fd = qemu_open(filename, + O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_LARGEFILE, +@@ -1582,6 +1585,11 @@ static QEMUOptionParameter vmdk_create_options[] = { "VMDK flat extent format, can be one of " "{monolithicSparse (default) | monolithicFlat | twoGbMaxExtentSparse | twoGbMaxExtentFlat | streamOptimized} " }, @@ -81,30 +84,30 @@ index 18e9b4c..c153617 100644 }; diff --git a/block_int.h b/block_int.h -index 3d4abc6..3d5a855 100644 +index 4452f6f..92a75c8 100644 --- a/block_int.h +++ b/block_int.h -@@ -33,6 +33,7 @@ - - #define BLOCK_FLAG_ENCRYPT 1 - #define BLOCK_FLAG_COMPAT6 4 -+#define BLOCK_FLAG_SCSI 8 +@@ -35,6 +35,7 @@ + #define BLOCK_FLAG_ENCRYPT 1 + #define BLOCK_FLAG_COMPAT6 4 + #define BLOCK_FLAG_LAZY_REFCOUNTS 8 ++#define BLOCK_FLAG_SCSI 16 #define BLOCK_IO_LIMIT_READ 0 #define BLOCK_IO_LIMIT_WRITE 1 -@@ -44,6 +45,7 @@ - #define BLOCK_OPT_SIZE "size" - #define BLOCK_OPT_ENCRYPT "encryption" - #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" +@@ -46,6 +47,7 @@ + #define BLOCK_OPT_SIZE "size" + #define BLOCK_OPT_ENCRYPT "encryption" + #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 c8a70ff..00e3471 100644 +index b41e670..e34d88a 100644 --- a/qemu-img.c +++ b/qemu-img.c -@@ -636,7 +636,7 @@ static int img_convert(int argc, char **argv) +@@ -665,7 +665,7 @@ static int img_convert(int argc, char **argv) const uint8_t *buf1; BlockDriverInfo bdi; QEMUOptionParameter *param = NULL, *create_options = NULL; @@ -113,7 +116,7 @@ index c8a70ff..00e3471 100644 char *options = NULL; const char *snapshot_name = NULL; float local_progress; -@@ -829,6 +829,12 @@ static int img_convert(int argc, char **argv) +@@ -858,6 +858,12 @@ static int img_convert(int argc, char **argv) } } diff --git a/0012-configure-Enable-mipsn32-linux-user.patch b/0012-configure-Enable-mipsn32-linux-user.patch index 4994b036..d48e7027 100644 --- a/0012-configure-Enable-mipsn32-linux-user.patch +++ b/0012-configure-Enable-mipsn32-linux-user.patch @@ -1,24 +1,29 @@ -From 90f4c2f9a182626eea2d2ec962d89ada130c22f8 Mon Sep 17 00:00:00 2001 +From d374dbebe347831449ecb6f16e62fe22d67a5273 Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Wed, 25 Aug 2010 14:23:43 +0200 Subject: [PATCH] configure: Enable mipsn32*-linux-user builds +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit Signed-off-by: Ulrich Hecht [AF: Merged default-configs upstream] +[AF: Merged with new or32-linux-user for v1.2] +Signed-off-by: Andreas Färber --- configure | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/configure b/configure -index 1f338f8..de92ac2 100755 +index 60d266f..352239f 100755 --- a/configure +++ b/configure -@@ -950,6 +950,8 @@ microblaze-linux-user \ +@@ -997,6 +997,8 @@ microblaze-linux-user \ microblazeel-linux-user \ mips-linux-user \ mipsel-linux-user \ +mipsn32-linux-user \ +mipsn32el-linux-user \ + or32-linux-user \ ppc-linux-user \ ppc64-linux-user \ - ppc64abi32-linux-user \ diff --git a/0013-linux-user-add-binfmt-wrapper-for-a.patch b/0013-linux-user-add-binfmt-wrapper-for-a.patch index 118ed877..73d6ed23 100644 --- a/0013-linux-user-add-binfmt-wrapper-for-a.patch +++ b/0013-linux-user-add-binfmt-wrapper-for-a.patch @@ -1,7 +1,10 @@ -From eaedb8d198e91c3a085df8704b513a3cb524d895 Mon Sep 17 00:00:00 2001 +From 22844fc327d80f9ff4d484fd5a2af8b6a6c52200 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 30 Sep 2011 19:40:36 +0200 Subject: [PATCH] linux-user: add binfmt wrapper for argv[0] handling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit When using qemu's linux-user binaries through binfmt, argv[0] gets lost along the execution because qemu only gets passed in the full file name @@ -21,18 +24,21 @@ we're currently creating a new binary for each target archictecture. CC: Reinhard Max Signed-off-by: Alexander Graf +[AF: Rebased onto new Makefile infrastructure] +Signed-off-by: Andreas Färber --- - Makefile.target | 9 +++++++++ + Makefile.target | 12 ++++++++++++ + linux-user/Makefile.objs | 2 ++ linux-user/binfmt.c | 42 ++++++++++++++++++++++++++++++++++++++++++ scripts/qemu-binfmt-conf.sh | 34 +++++++++++++++++----------------- - 3 files changed, 68 insertions(+), 17 deletions(-) + 4 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 linux-user/binfmt.c diff --git a/Makefile.target b/Makefile.target -index 1582904..101c0d6 100644 +index 7892a8d..e802f3f 100644 --- a/Makefile.target +++ b/Makefile.target -@@ -42,6 +42,10 @@ PROGS+=$(QEMU_PROGW) +@@ -34,6 +34,10 @@ PROGS+=$(QEMU_PROGW) endif STPFILES= @@ -43,16 +49,26 @@ index 1582904..101c0d6 100644 ifndef CONFIG_HAIKU LIBS+=-lm endif -@@ -150,6 +154,8 @@ obj-y += $(addprefix ../libuser/, $(user-obj-y)) - obj-y += $(addprefix ../libdis-user/, $(libdis-y)) - obj-y += $(libobj-y) +@@ -98,6 +102,8 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) -I$(SRC_PATH)/linux-user + obj-y += linux-user/ + obj-y += gdbstub.o thunk.o user-exec.o $(oslib-obj-y) -+obj-binfmt-y += binfmt.o ++obj-binfmt-y += linux-user/ + endif #CONFIG_LINUX_USER ######################################################### -@@ -423,6 +429,9 @@ $(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) +@@ -155,6 +161,9 @@ GENERATED_HEADERS += hmp-commands.h qmp-commands-old.h + endif # CONFIG_SOFTMMU + + nested-vars += obj-y ++ifdef CONFIG_LINUX_USER ++nested-vars += obj-binfmt-y ++endif + + # This resolves all nested paths, so it must come last + include $(SRC_PATH)/Makefile.objs +@@ -183,6 +192,9 @@ $(QEMU_PROG): $(all-obj-y) $(call LINK,$^) endif @@ -62,6 +78,16 @@ index 1582904..101c0d6 100644 gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/scripts/feature_to_c.sh $(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN $(TARGET_DIR)$@") +diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs +index 5899d72..18212a2 100644 +--- a/linux-user/Makefile.objs ++++ b/linux-user/Makefile.objs +@@ -5,3 +5,5 @@ obj-$(TARGET_HAS_BFLT) += flatload.o + obj-$(TARGET_I386) += vm86.o + obj-$(TARGET_ARM) += arm/nwfpe/ + obj-$(TARGET_M68K) += m68k-sim.o ++ ++obj-binfmt-y = binfmt.o diff --git a/linux-user/binfmt.c b/linux-user/binfmt.c new file mode 100644 index 0000000..cd1f513 diff --git a/0014-linux-user-Ignore-timer_create-sysc.patch b/0014-linux-user-Ignore-timer_create-sysc.patch index eb1d2f3e..9917c390 100644 --- a/0014-linux-user-Ignore-timer_create-sysc.patch +++ b/0014-linux-user-Ignore-timer_create-sysc.patch @@ -1,4 +1,4 @@ -From 4312a512638d2d70144dce55a63f21dabcfda0cb Mon Sep 17 00:00:00 2001 +From 7fd1db51229b7b331a8acf3d6ad552d45d902676 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Sun, 11 Dec 2011 01:19:24 +0100 Subject: [PATCH] linux-user: Ignore timer_create syscall @@ -12,10 +12,10 @@ Signed-off-by: Alexander Graf 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 5c6e303..403f943 100644 +index 53feee5..792c48e 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -8449,6 +8449,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -8556,6 +8556,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, break; #endif diff --git a/0015-linux-user-be-silent-about-capget-f.patch b/0015-linux-user-be-silent-about-capget-f.patch index 3ccd487e..0e586c7c 100644 --- a/0015-linux-user-be-silent-about-capget-f.patch +++ b/0015-linux-user-be-silent-about-capget-f.patch @@ -1,4 +1,4 @@ -From 0b0a9d0508e5d4290afd272b9523c94761f11e9c Mon Sep 17 00:00:00 2001 +From 3986078d311f89717c0adf04dde20daae1f3c31b Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Sun, 11 Dec 2011 01:21:51 +0100 Subject: [PATCH] linux-user: be silent about capget failures @@ -13,10 +13,10 @@ Signed-off-by: Alexander Graf 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 403f943..39d02f8 100644 +index 792c48e..af01e15 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -7471,7 +7471,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, +@@ -7537,7 +7537,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, unlock_user(p, arg1, ret); break; case TARGET_NR_capget: diff --git a/0016-PPC-KVM-Disable-mmu-notifier-check..patch b/0016-PPC-KVM-Disable-mmu-notifier-check..patch index 9607acef..480f945f 100644 --- a/0016-PPC-KVM-Disable-mmu-notifier-check..patch +++ b/0016-PPC-KVM-Disable-mmu-notifier-check..patch @@ -1,4 +1,4 @@ -From e975674515cfe9e086341f3684452520908037d9 Mon Sep 17 00:00:00 2001 +From 487bbbcf091c98161aee1f0dffd2dd9f29ae6643 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 6 Jan 2012 01:05:55 +0100 Subject: [PATCH] PPC: KVM: Disable mmu notifier check @@ -13,10 +13,10 @@ KVM guests work there, even if possibly racy in some odd circumstances. 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c -index 21fce4e..9ba4409 100644 +index 9cbdc35..baa495f 100644 --- a/exec.c +++ b/exec.c -@@ -2503,10 +2503,12 @@ static void *file_ram_alloc(RAMBlock *block, +@@ -2392,10 +2392,12 @@ static void *file_ram_alloc(RAMBlock *block, return NULL; } diff --git a/0017-linux-user-fix-segfault-deadlock.pa.patch b/0017-linux-user-fix-segfault-deadlock.pa.patch index 8f4b69d2..0b78e6b3 100644 --- a/0017-linux-user-fix-segfault-deadlock.pa.patch +++ b/0017-linux-user-fix-segfault-deadlock.pa.patch @@ -1,4 +1,4 @@ -From 203f51827bf2f7e34b13b0ad0b09789ec035aaa9 Mon Sep 17 00:00:00 2001 +From 2232d1071fbf654bcdb04e34cdf2dbf6efd2c073 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 13 Jan 2012 17:05:41 +0100 Subject: [PATCH] linux-user: fix segfault deadlock @@ -48,10 +48,10 @@ index a72edda..e460e12 100644 + #endif diff --git a/user-exec.c b/user-exec.c -index d8c2ad9..36d29b4 100644 +index b9ea9dd..5a04218 100644 --- a/user-exec.c +++ b/user-exec.c -@@ -96,6 +96,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address, +@@ -102,6 +102,10 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address, qemu_printf("qemu: SIGSEGV pc=0x%08lx address=%08lx w=%d oldset=0x%08lx\n", pc, address, is_write, *(unsigned long *)old_set); #endif diff --git a/0018-linux-user-binfmt-support-host-bina.patch b/0018-linux-user-binfmt-support-host-bina.patch index 520ff6af..f5593377 100644 --- a/0018-linux-user-binfmt-support-host-bina.patch +++ b/0018-linux-user-binfmt-support-host-bina.patch @@ -1,4 +1,4 @@ -From 4790cf690d3015adbe6a9e768d1009535c01ffeb Mon Sep 17 00:00:00 2001 +From 1af50e17428a53c3233554f1f03a3958a83f9ace Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Thu, 2 Feb 2012 18:02:33 +0100 Subject: [PATCH] linux-user: binfmt: support host binaries diff --git a/0019-linux-user-ARM-Ignore-immediate-val.patch b/0019-linux-user-ARM-Ignore-immediate-val.patch deleted file mode 100644 index 2cdbfe5c..00000000 --- a/0019-linux-user-ARM-Ignore-immediate-val.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8cc5120497695e7ea8dde9b096eb6c8cb9b6ac35 Mon Sep 17 00:00:00 2001 -From: Alexander Graf -Date: Tue, 29 May 2012 17:28:07 +0200 -Subject: [PATCH] linux-user: ARM: Ignore immediate value for svc in thumb mode - -When running in thumb mode, Linux doesn't evaluate the immediate value -of the svc instruction, but instead just always assumes the syscall number -to be in r7. - -This fixes executing go_bootstrap while building go for me. - -Signed-off-by: Alexander Graf ---- - linux-user/main.c | 3 +-- - 1 files changed, 1 insertions(+), 2 deletions(-) - -diff --git a/linux-user/main.c b/linux-user/main.c -index 503ecfa..ed48276 100644 ---- a/linux-user/main.c -+++ b/linux-user/main.c -@@ -823,8 +823,7 @@ void cpu_loop(CPUARMState *env) - } else if (n == ARM_NR_semihosting - || n == ARM_NR_thumb_semihosting) { - env->regs[0] = do_arm_semihosting (env); -- } else if (n == 0 || n >= ARM_SYSCALL_BASE -- || (env->thumb && n == ARM_THUMB_SYSCALL)) { -+ } else if (n == 0 || n >= ARM_SYSCALL_BASE || env->thumb) { - /* linux syscall */ - if (env->thumb || n == 0) { - n = env->regs[7]; diff --git a/0020-linux-user-arm-no-tb_flush-on-reset.patch b/0019-linux-user-arm-no-tb_flush-on-reset.patch similarity index 86% rename from 0020-linux-user-arm-no-tb_flush-on-reset.patch rename to 0019-linux-user-arm-no-tb_flush-on-reset.patch index dca23414..a3cfdab7 100644 --- a/0020-linux-user-arm-no-tb_flush-on-reset.patch +++ b/0019-linux-user-arm-no-tb_flush-on-reset.patch @@ -1,4 +1,4 @@ -From ea18c65ff19aa12001556d7f19145f6eb2e8bcdc Mon Sep 17 00:00:00 2001 +From adad3a28638056a0719c1c75aa54fb76d31b7fac Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 29 May 2012 15:30:01 +0200 Subject: [PATCH] linux-user: arm: no tb_flush on reset @@ -14,10 +14,10 @@ change to at least get a working build again. 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/target-arm/cpu.c b/target-arm/cpu.c -index 7eb323a..2e90e56 100644 +index b00f5fa..740dbc3 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c -@@ -117,7 +117,11 @@ static void arm_cpu_reset(CPUState *s) +@@ -124,7 +124,11 @@ static void arm_cpu_reset(CPUState *s) * bake assumptions about into translated code, so we need to * tb_flush(). */ diff --git a/0021-linux-user-fix-multi-threaded-proc-.patch b/0020-linux-user-fix-multi-threaded-proc-.patch similarity index 88% rename from 0021-linux-user-fix-multi-threaded-proc-.patch rename to 0020-linux-user-fix-multi-threaded-proc-.patch index 2a63b1f2..5f8f5de5 100644 --- a/0021-linux-user-fix-multi-threaded-proc-.patch +++ b/0020-linux-user-fix-multi-threaded-proc-.patch @@ -1,4 +1,4 @@ -From eb42dbe8f2c478276128622b3fe1125e4cd13759 Mon Sep 17 00:00:00 2001 +From 90774301973e03fe90be092e4204e6782db7f41c Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 30 May 2012 14:40:47 +0200 Subject: [PATCH] linux-user: fix multi-threaded /proc/self/maps @@ -16,10 +16,10 @@ Signed-off-by: Alexander Graf 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 39d02f8..06408bd 100644 +index af01e15..cda50ae 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -4920,8 +4920,8 @@ static int open_self_maps(void *cpu_env, int fd) +@@ -4975,8 +4975,8 @@ static int open_self_maps(void *cpu_env, int fd) #if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32) dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n", (unsigned long long)ts->info->stack_limit, diff --git a/0022-use-libexecdir-instead-of-ignoring-.patch b/0021-use-libexecdir-instead-of-ignoring-.patch similarity index 88% rename from 0022-use-libexecdir-instead-of-ignoring-.patch rename to 0021-use-libexecdir-instead-of-ignoring-.patch index 370a6b9f..9e0cbfc7 100644 --- a/0022-use-libexecdir-instead-of-ignoring-.patch +++ b/0021-use-libexecdir-instead-of-ignoring-.patch @@ -1,9 +1,10 @@ -From 57fd4d50146ef90693d569ee799f7e9e9d606e05 Mon Sep 17 00:00:00 2001 +From f2fc46bfbd9a0393e29f45c7470a96074227a911 Mon Sep 17 00:00:00 2001 From: Michael Tokarev Date: Thu, 7 Jun 2012 01:11:00 +0400 -Subject: [PATCH] use --libexecdir instead of ignoring it first and reinventing it later +Subject: [PATCH] use --libexecdir instead of ignoring it first and + reinventing it later MIME-Version: 1.0 -Content-Type: text/plain; charset=utf-8 +Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 7b93fadf3a38d1ed65ea5536a52efc2772c6e3b8 "Add basic version @@ -26,10 +27,10 @@ Signed-off-by: Andreas Färber 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/configure b/configure -index de92ac2..850821b 100755 +index 352239f..332ff3c 100755 --- a/configure +++ b/configure -@@ -159,6 +159,7 @@ datadir="\${prefix}/share" +@@ -183,6 +183,7 @@ datadir="\${prefix}/share" qemu_docdir="\${prefix}/share/doc/qemu" bindir="\${prefix}/bin" libdir="\${prefix}/lib" @@ -37,7 +38,7 @@ index de92ac2..850821b 100755 includedir="\${prefix}/include" sysconfdir="\${prefix}/etc" confsuffix="/qemu" -@@ -587,6 +588,8 @@ for opt do +@@ -633,6 +634,8 @@ for opt do ;; --libdir=*) libdir="$optarg" ;; @@ -46,7 +47,7 @@ index de92ac2..850821b 100755 --includedir=*) includedir="$optarg" ;; --datadir=*) datadir="$optarg" -@@ -597,7 +600,7 @@ for opt do +@@ -643,7 +646,7 @@ for opt do ;; --sysconfdir=*) sysconfdir="$optarg" ;; @@ -55,7 +56,7 @@ index de92ac2..850821b 100755 --oldincludedir=*|--datarootdir=*|--infodir=*|--localedir=*|\ --htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*) # These switches are silently ignored, for compatibility with -@@ -2945,6 +2948,7 @@ echo "Install prefix $prefix" +@@ -3082,6 +3085,7 @@ echo "Install prefix $prefix" echo "BIOS directory `eval echo $qemu_datadir`" echo "binary directory `eval echo $bindir`" echo "library directory `eval echo $libdir`" @@ -63,7 +64,7 @@ index de92ac2..850821b 100755 echo "include directory `eval echo $includedir`" echo "config directory `eval echo $sysconfdir`" if test "$mingw32" = "no" ; then -@@ -3048,14 +3052,14 @@ echo all: >> $config_host_mak +@@ -3185,14 +3189,14 @@ echo all: >> $config_host_mak echo "prefix=$prefix" >> $config_host_mak echo "bindir=$bindir" >> $config_host_mak echo "libdir=$libdir" >> $config_host_mak diff --git a/0023-linux-user-Ignore-broken-loop-ioctl.patch b/0022-linux-user-Ignore-broken-loop-ioctl.patch similarity index 90% rename from 0023-linux-user-Ignore-broken-loop-ioctl.patch rename to 0022-linux-user-Ignore-broken-loop-ioctl.patch index 1789f106..b9f513bc 100644 --- a/0023-linux-user-Ignore-broken-loop-ioctl.patch +++ b/0022-linux-user-Ignore-broken-loop-ioctl.patch @@ -1,4 +1,4 @@ -From fa3ea9d74060806eb6fc0792483d41c3a684e2d0 Mon Sep 17 00:00:00 2001 +From 9f189b36a4c3e5a53e97ef4d820c5465d1dde0a4 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 12 Jun 2012 04:41:10 +0200 Subject: [PATCH] linux-user: Ignore broken loop ioctl @@ -18,7 +18,7 @@ Signed-off-by: Alexander Graf 4 files changed, 10 insertions(+), 0 deletions(-) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h -index e8c1c69..97c3f10 100644 +index 6af0cb7..bb76c56 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -328,6 +328,7 @@ @@ -41,10 +41,10 @@ index 8974caa..810ae61 100644 #endif diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 06408bd..46e964b 100644 +index cda50ae..b73c23c 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -3580,6 +3580,13 @@ out: +@@ -3634,6 +3634,13 @@ out: return ret; } @@ -59,10 +59,10 @@ index 06408bd..46e964b 100644 #define IOCTL(cmd, access, ...) \ { TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } }, diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h -index be8760c..b76f64a 100644 +index 0af219a..3b7b1c3 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h -@@ -968,6 +968,7 @@ struct target_pollfd { +@@ -1016,6 +1016,7 @@ struct target_pollfd { #define TARGET_LOOP_SET_STATUS64 0x4C04 #define TARGET_LOOP_GET_STATUS64 0x4C05 #define TARGET_LOOP_CHANGE_FD 0x4C06 diff --git a/0023-linux-user-fix-segmentation-fault-p.patch b/0023-linux-user-fix-segmentation-fault-p.patch new file mode 100644 index 00000000..befc2ad5 --- /dev/null +++ b/0023-linux-user-fix-segmentation-fault-p.patch @@ -0,0 +1,41 @@ +From c26be2e327b4bc628ce69ea4493d89b76e7c5161 Mon Sep 17 00:00:00 2001 +From: Alexander Graf +Date: Mon, 25 Jun 2012 19:02:32 +0200 +Subject: [PATCH] linux-user: fix segmentation fault passing with g2h(x) != x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When forwarding a segmentation fault into the guest process, we were passing +the host's address directly into the guest process's signal descriptor. + +That obviously confused the guest process, since it didn't know what to make +of the (usually 32-bit truncated) address. Passing in g2h(address) makes the +guest process a lot happier. + +This fixes java running in arm-linux-user for me. + +Signed-off-by: Alexander Graf +[AF: Rebased onto AREG0 fix for v1.2, squashed fixup by agraf] +Signed-off-by: Andreas Färber +--- + user-exec.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/user-exec.c b/user-exec.c +index 5a04218..bc3eef9 100644 +--- a/user-exec.c ++++ b/user-exec.c +@@ -112,6 +112,12 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address, + return 1; + } + ++ if (RESERVED_VA) { ++ /* Convert forcefully to guest address space, invalid addresses ++ are still valid segv ones */ ++ address = address - GUEST_BASE; ++ } ++ + /* see if it is an MMU fault */ + ret = cpu_handle_mmu_fault(cpu_single_env, address, is_write, + MMU_USER_IDX); diff --git a/0024-linux-user-fix-segmentation-fault-p.patch b/0024-linux-user-fix-segmentation-fault-p.patch deleted file mode 100644 index 9ffb4672..00000000 --- a/0024-linux-user-fix-segmentation-fault-p.patch +++ /dev/null @@ -1,56 +0,0 @@ -From c42b3aca84c5b1a8be7010e518f526a1798e3790 Mon Sep 17 00:00:00 2001 -From: Alexander Graf -Date: Mon, 25 Jun 2012 19:02:32 +0200 -Subject: [PATCH] linux-user: fix segmentation fault passing with g2h(x) != x - -When forwarding a segmentation fault into the guest process, we were passing -the host's address directly into the guest process's signal descriptor. - -That obviously confused the guest process, since it didn't know what to make -of the (usually 32-bit truncated) address. Passing in g2h(address) makes the -guest process a lot happier. - -This fixes java running in arm-linux-user for me. - -Signed-off-by: Alexander Graf ---- - user-exec.c | 25 +++++++++++++------------ - 1 files changed, 13 insertions(+), 12 deletions(-) - -diff --git a/user-exec.c b/user-exec.c -index 36d29b4..83d2d44 100644 ---- a/user-exec.c -+++ b/user-exec.c -@@ -100,19 +100,20 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address, - /* Maybe we're still holding the TB fiddling lock? */ - spin_unlock_safe(&tb_lock); - -- /* XXX: locking issue */ -- if (is_write && h2g_valid(address) -- && page_unprotect(h2g(address), pc, puc)) { -- return 1; -- } -+ if (h2g_valid(address)) { -+ /* XXX: locking issue */ -+ if (is_write && page_unprotect(h2g(address), pc, puc)) { -+ return 1; -+ } - -- /* see if it is an MMU fault */ -- ret = cpu_handle_mmu_fault(env, address, is_write, MMU_USER_IDX); -- if (ret < 0) { -- return 0; /* not an MMU fault */ -- } -- if (ret == 0) { -- return 1; /* the MMU fault was handled without causing real CPU fault */ -+ /* see if it is an MMU fault */ -+ ret = cpu_handle_mmu_fault(env, h2g(address), is_write, MMU_USER_IDX); -+ if (ret < 0) { -+ return 0; /* not an MMU fault */ -+ } -+ if (ret == 0) { -+ return 1; /* the MMU fault was handled without causing real CPU fault */ -+ } - } - /* now we have a real cpu fault */ - tb = tb_find_pc(pc); diff --git a/0025-linux-user-lock-tcg.patch.patch b/0024-linux-user-lock-tcg.patch.patch similarity index 92% rename from 0025-linux-user-lock-tcg.patch.patch rename to 0024-linux-user-lock-tcg.patch.patch index e2e14df7..3bffaf05 100644 --- a/0025-linux-user-lock-tcg.patch.patch +++ b/0024-linux-user-lock-tcg.patch.patch @@ -1,4 +1,4 @@ -From 9a66bfa1a21b7429229be3d52b1d6ea08b141d36 Mon Sep 17 00:00:00 2001 +From be080534c79bad7977c0ca807441bcebe34245b4 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Thu, 5 Jul 2012 17:31:39 +0200 Subject: [PATCH] linux-user: lock tcg @@ -14,7 +14,7 @@ Signed-off-by: Alexander Graf 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/linux-user/mmap.c b/linux-user/mmap.c -index 3f5e1d7..83e9eda 100644 +index 46523de..59718b5 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -30,6 +30,7 @@ @@ -42,7 +42,7 @@ index 3f5e1d7..83e9eda 100644 } diff --git a/tcg/tcg.c b/tcg/tcg.c -index ab589c7..4c93acb 100644 +index 8386b70..b067fc1 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -40,6 +40,8 @@ @@ -94,7 +94,7 @@ index ab589c7..4c93acb 100644 /* Count total number of arguments and allocate the corresponding space */ total_args = 0; -@@ -2182,11 +2208,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) +@@ -2188,11 +2214,13 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) } #endif @@ -108,7 +108,7 @@ index ab589c7..4c93acb 100644 return s->code_ptr - gen_code_buf; } -@@ -2197,7 +2225,11 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) +@@ -2203,7 +2231,11 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) Return -1 if not found. */ int tcg_gen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset) { @@ -122,7 +122,7 @@ index ab589c7..4c93acb 100644 #ifdef CONFIG_PROFILER diff --git a/tcg/tcg.h b/tcg/tcg.h -index a83bddd..e20fc82 100644 +index d710694..9902ee6 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -46,6 +46,8 @@ typedef uint64_t tcg_target_ulong; diff --git a/0026-linux-user-Run-multi-threaded-code-.patch b/0025-linux-user-Run-multi-threaded-code-.patch similarity index 90% rename from 0026-linux-user-Run-multi-threaded-code-.patch rename to 0025-linux-user-Run-multi-threaded-code-.patch index 892f68ac..45cb7e5a 100644 --- a/0026-linux-user-Run-multi-threaded-code-.patch +++ b/0025-linux-user-Run-multi-threaded-code-.patch @@ -1,4 +1,4 @@ -From f85c851986d24df8700ffe447301786fe83819d0 Mon Sep 17 00:00:00 2001 +From e10fbcf66724e22bf4a2b6a5109538cee21e48fc Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Tue, 10 Jul 2012 20:40:55 +0200 Subject: [PATCH] linux-user: Run multi-threaded code on a single core @@ -19,10 +19,10 @@ Signed-off-by: Alexander Graf 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 46e964b..b0566cd 100644 +index b73c23c..0c3d4c5 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -4298,6 +4298,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp, +@@ -4352,6 +4352,15 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp, if (nptl_flags & CLONE_SETTLS) cpu_set_tls (new_env, newtls); diff --git a/0027-linux-user-lock-tb-flushing-too.pat.patch b/0026-linux-user-lock-tb-flushing-too.pat.patch similarity index 83% rename from 0027-linux-user-lock-tb-flushing-too.pat.patch rename to 0026-linux-user-lock-tb-flushing-too.pat.patch index 854791a9..a4c9fe1a 100644 --- a/0027-linux-user-lock-tb-flushing-too.pat.patch +++ b/0026-linux-user-lock-tb-flushing-too.pat.patch @@ -1,4 +1,4 @@ -From 777d50057b576a0d829481a0cea9cd399e7a5f65 Mon Sep 17 00:00:00 2001 +From 4e526c103457a654a05730709b883c4e9eaa17b4 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 11 Jul 2012 16:47:42 +0200 Subject: [PATCH] linux-user: lock tb flushing too @@ -9,10 +9,10 @@ Signed-off-by: Alexander Graf 1 files changed, 26 insertions(+), 7 deletions(-) diff --git a/exec.c b/exec.c -index 9ba4409..6da4b38 100644 +index baa495f..aae9462 100644 --- a/exec.c +++ b/exec.c -@@ -732,17 +732,22 @@ static TranslationBlock *tb_alloc(target_ulong pc) +@@ -722,17 +722,22 @@ static TranslationBlock *tb_alloc(target_ulong pc) { TranslationBlock *tb; @@ -36,7 +36,7 @@ index 9ba4409..6da4b38 100644 /* In practice this is mostly used for single use temporary TB Ignore the hard cases and just back up if this TB happens to be the last one generated. */ -@@ -750,6 +755,7 @@ void tb_free(TranslationBlock *tb) +@@ -740,6 +745,7 @@ void tb_free(TranslationBlock *tb) code_gen_ptr = tb->tc_ptr; nb_tbs--; } @@ -44,7 +44,7 @@ index 9ba4409..6da4b38 100644 } static inline void invalidate_page_bitmap(PageDesc *p) -@@ -803,6 +809,7 @@ void tb_flush(CPUArchState *env1) +@@ -793,6 +799,7 @@ void tb_flush(CPUArchState *env1) nb_tbs, nb_tbs > 0 ? ((unsigned long)(code_gen_ptr - code_gen_buffer)) / nb_tbs : 0); #endif @@ -52,7 +52,7 @@ index 9ba4409..6da4b38 100644 if ((unsigned long)(code_gen_ptr - code_gen_buffer) > code_gen_buffer_size) cpu_abort(env1, "Internal error: code buffer overflow\n"); -@@ -819,6 +826,7 @@ void tb_flush(CPUArchState *env1) +@@ -809,6 +816,7 @@ void tb_flush(CPUArchState *env1) /* XXX: flush processor icache at this point if cache flush is expensive */ tb_flush_count++; @@ -60,7 +60,7 @@ index 9ba4409..6da4b38 100644 } #ifdef DEBUG_TB_CHECK -@@ -1116,9 +1124,12 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, +@@ -1108,9 +1116,12 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, int current_flags = 0; #endif /* TARGET_HAS_PRECISE_SMC */ @@ -74,7 +74,7 @@ index 9ba4409..6da4b38 100644 if (!p->code_bitmap && ++p->code_write_count >= SMC_BITMAP_USE_THRESHOLD && is_cpu_write_access) { -@@ -1202,6 +1213,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, +@@ -1194,6 +1205,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, cpu_resume_from_signal(env, NULL); } #endif @@ -82,7 +82,7 @@ index 9ba4409..6da4b38 100644 } /* len must be <= 8 and start must be a multiple of len */ -@@ -1397,12 +1409,16 @@ TranslationBlock *tb_find_pc(uintptr_t tc_ptr) +@@ -1389,12 +1401,16 @@ TranslationBlock *tb_find_pc(uintptr_t tc_ptr) { int m_min, m_max, m; uintptr_t v; @@ -101,7 +101,7 @@ index 9ba4409..6da4b38 100644 return NULL; } /* binary search (cf Knuth) */ -@@ -1412,15 +1428,18 @@ TranslationBlock *tb_find_pc(uintptr_t tc_ptr) +@@ -1404,15 +1420,18 @@ TranslationBlock *tb_find_pc(uintptr_t tc_ptr) m = (m_min + m_max) >> 1; tb = &tbs[m]; v = (uintptr_t)tb->tc_ptr; diff --git a/0029-linux-user-Fake-proc-cpuinfo.patch.patch b/0027-linux-user-Fake-proc-cpuinfo.patch.patch similarity index 88% rename from 0029-linux-user-Fake-proc-cpuinfo.patch.patch rename to 0027-linux-user-Fake-proc-cpuinfo.patch.patch index 0a552ba0..a3ed03d3 100644 --- a/0029-linux-user-Fake-proc-cpuinfo.patch.patch +++ b/0027-linux-user-Fake-proc-cpuinfo.patch.patch @@ -1,4 +1,4 @@ -From 63697bbdfd6ccede902ce09cb0c4f860e0fdf099 Mon Sep 17 00:00:00 2001 +From 4803eca554ee475b50b7a106af1d250a5b525884 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Mon, 23 Jul 2012 10:24:14 +0200 Subject: [PATCH] linux-user: Fake /proc/cpuinfo @@ -17,10 +17,10 @@ Signed-off-by: Alexander Graf 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index b0566cd..2efd7f4 100644 +index 0c3d4c5..d19efb8 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c -@@ -4980,6 +4980,25 @@ static int open_self_stat(void *cpu_env, int fd) +@@ -5035,6 +5035,25 @@ static int open_self_stat(void *cpu_env, int fd) return 0; } @@ -46,7 +46,7 @@ index b0566cd..2efd7f4 100644 static int open_self_auxv(void *cpu_env, int fd) { TaskState *ts = ((CPUArchState *)cpu_env)->opaque; -@@ -5020,6 +5039,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode) +@@ -5075,6 +5094,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode) { "/proc/self/maps", open_self_maps }, { "/proc/self/stat", open_self_stat }, { "/proc/self/auxv", open_self_auxv }, diff --git a/0028-XXX-merge-with-segmentation-fault-p.patch b/0028-XXX-merge-with-segmentation-fault-p.patch deleted file mode 100644 index 4c53dca5..00000000 --- a/0028-XXX-merge-with-segmentation-fault-p.patch +++ /dev/null @@ -1,54 +0,0 @@ -From a81c9410cc3538dfeb22484d1daa95e6a5bb1e79 Mon Sep 17 00:00:00 2001 -From: Alexander Graf -Date: Wed, 11 Jul 2012 23:15:47 +0200 -Subject: [PATCH] XXX merge with segmentation fault passing patch - ---- - user-exec.c | 32 +++++++++++++++++++------------- - 1 files changed, 19 insertions(+), 13 deletions(-) - -diff --git a/user-exec.c b/user-exec.c -index 83d2d44..cc57bde 100644 ---- a/user-exec.c -+++ b/user-exec.c -@@ -100,21 +100,27 @@ static inline int handle_cpu_signal(uintptr_t pc, unsigned long address, - /* Maybe we're still holding the TB fiddling lock? */ - spin_unlock_safe(&tb_lock); - -- if (h2g_valid(address)) { -- /* XXX: locking issue */ -- if (is_write && page_unprotect(h2g(address), pc, puc)) { -- return 1; -- } -+ /* XXX: locking issue */ -+ if (h2g_valid(address) && is_write && -+ page_unprotect(h2g(address), pc, puc)) { -+ return 1; -+ } - -- /* see if it is an MMU fault */ -- ret = cpu_handle_mmu_fault(env, h2g(address), is_write, MMU_USER_IDX); -- if (ret < 0) { -- return 0; /* not an MMU fault */ -- } -- if (ret == 0) { -- return 1; /* the MMU fault was handled without causing real CPU fault */ -- } -+ if (RESERVED_VA) { -+ /* Convert forcefully to guest address space, invalid addresses -+ are still valid segv ones */ -+ address = address - GUEST_BASE; - } -+ -+ /* see if it is an MMU fault */ -+ ret = cpu_handle_mmu_fault(env, address, is_write, MMU_USER_IDX); -+ if (ret < 0) { -+ return 0; /* not an MMU fault */ -+ } -+ if (ret == 0) { -+ return 1; /* the MMU fault was handled without causing real CPU fault */ -+ } -+ - /* now we have a real cpu fault */ - tb = tb_find_pc(pc); - if (tb) { diff --git a/0030-Replace-struct-siginfo-with-siginfo.patch b/0030-Replace-struct-siginfo-with-siginfo.patch deleted file mode 100644 index 323ada43..00000000 --- a/0030-Replace-struct-siginfo-with-siginfo.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 3ff16f3f6b220d13caeb068a865c82675da802ba Mon Sep 17 00:00:00 2001 -From: Richard W.M. Jones -Date: Thu, 5 Jul 2012 03:32:44 +0000 -Subject: [PATCH] Replace 'struct siginfo' with 'siginfo_t'. - -glibc 2.16 will remove the undocumented definition of 'struct siginfo' -from . - -This change is already present in glibc 2.15.90, so qemu compilation -of certain targets (eg. cris-user) breaks. - -This struct was always typedef'd to be the same as 'siginfo_t' which -is what POSIX documents, so use that instead. - -Signed-off-by: Richard W.M. Jones -Reviewed-by: Peter Maydell -Signed-off-by: Alexander Graf ---- - linux-user/signal.c | 8 ++++---- - user-exec.c | 2 +- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/linux-user/signal.c b/linux-user/signal.c -index c00cf75..f33ea70 100644 ---- a/linux-user/signal.c -+++ b/linux-user/signal.c -@@ -2877,7 +2877,7 @@ static void setup_rt_frame(int sig, struct target_sigaction *ka, - * Arguments to signal handler: - * - * a0 = signal number -- * a1 = pointer to struct siginfo -+ * a1 = pointer to siginfo_t - * a2 = pointer to struct ucontext - * - * $25 and PC point to the signal handler, $29 points to the -@@ -3283,7 +3283,7 @@ struct target_signal_frame { - }; - - struct rt_signal_frame { -- struct siginfo info; -+ siginfo_t info; - struct ucontext uc; - uint32_t tramp[2]; - }; -@@ -3502,9 +3502,9 @@ struct target_signal_frame { - }; - - struct rt_signal_frame { -- struct siginfo *pinfo; -+ siginfo_t *pinfo; - void *puc; -- struct siginfo info; -+ siginfo_t info; - struct ucontext uc; - uint8_t retcode[8]; /* Trampoline code. */ - }; -diff --git a/user-exec.c b/user-exec.c -index cc57bde..2d7f6c9 100644 ---- a/user-exec.c -+++ b/user-exec.c -@@ -599,7 +599,7 @@ int cpu_signal_handler(int host_signum, void *pinfo, - int cpu_signal_handler(int host_signum, void *pinfo, - void *puc) - { -- struct siginfo *info = pinfo; -+ siginfo_t *info = pinfo; - struct ucontext *uc = puc; - unsigned long pc = uc->uc_mcontext.sc_iaoq[0]; - uint32_t insn = *(uint32_t *)pc; diff --git a/qemu-1.1.0-1.tar.bz2 b/qemu-1.1.0-1.tar.bz2 deleted file mode 100644 index eabc07e7..00000000 --- a/qemu-1.1.0-1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e566f8cbc33e5fb7d5f364c0fd1cdde9e921e647223b5d7ae7e5f95544b258d -size 9630116 diff --git a/qemu-1.2.0-rc0.tar.bz2 b/qemu-1.2.0-rc0.tar.bz2 new file mode 100644 index 00000000..14d5f2d5 --- /dev/null +++ b/qemu-1.2.0-rc0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce34538df5624bae055979e8b930d3eaa6645e125f0d95fadc92e395b5e9d3f3 +size 9862969 diff --git a/qemu.changes b/qemu.changes index 0e69ec4b..ccdb7d60 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Aug 17 14:30:28 UTC 2012 - afaerber@suse.de + +- update to v1.2.0-rc0: http://wiki.qemu.org/ChangeLog/1.2 +* adapt update_git.sh script +* package new qemu-or32 executable into linux-user + ------------------------------------------------------------------- Wed Aug 15 20:50:02 UTC 2012 - dmueller@suse.com diff --git a/qemu.spec b/qemu.spec index 5f69d422..2751f5f8 100644 --- a/qemu.spec +++ b/qemu.spec @@ -21,9 +21,9 @@ Url: http://www.qemu.org/ Summary: Universal CPU emulator License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ ; MIT Group: System/Emulators/PC -Version: 1.1.0 +Version: 1.2.0rc0 Release: 0 -Source: %name-%version-1.tar.bz2 +Source: %name-1.2.0-rc0.tar.bz2 Patch0001: 0001-Handle-CPU-interrupts-by-inline-che.patch Patch0002: 0002-XXX-dont-dump-core-on-sigabort.patc.patch Patch0003: 0003-XXX-work-around-SA_RESTART-race-wit.patch @@ -34,7 +34,7 @@ Patch0007: 0007-qemu-cvs-alsa_mmap.patch.patch Patch0008: 0008-qemu-cvs-gettimeofday.patch.patch Patch0009: 0009-qemu-cvs-ioctl_debug.patch.patch Patch0010: 0010-qemu-cvs-ioctl_nodirection.patch.patch -Patch0011: 0011-qemu-img-vmdk-scsi.patch.patch +Patch0011: 0011-block-vmdk-Support-creation-of-SCSI.patch Patch0012: 0012-configure-Enable-mipsn32-linux-user.patch Patch0013: 0013-linux-user-add-binfmt-wrapper-for-a.patch Patch0014: 0014-linux-user-Ignore-timer_create-sysc.patch @@ -42,18 +42,15 @@ Patch0015: 0015-linux-user-be-silent-about-capget-f.patch Patch0016: 0016-PPC-KVM-Disable-mmu-notifier-check..patch Patch0017: 0017-linux-user-fix-segfault-deadlock.pa.patch Patch0018: 0018-linux-user-binfmt-support-host-bina.patch -Patch0019: 0019-linux-user-ARM-Ignore-immediate-val.patch -Patch0020: 0020-linux-user-arm-no-tb_flush-on-reset.patch -Patch0021: 0021-linux-user-fix-multi-threaded-proc-.patch -Patch0022: 0022-use-libexecdir-instead-of-ignoring-.patch -Patch0023: 0023-linux-user-Ignore-broken-loop-ioctl.patch -Patch0024: 0024-linux-user-fix-segmentation-fault-p.patch -Patch0025: 0025-linux-user-lock-tcg.patch.patch -Patch0026: 0026-linux-user-Run-multi-threaded-code-.patch -Patch0027: 0027-linux-user-lock-tb-flushing-too.pat.patch -Patch0028: 0028-XXX-merge-with-segmentation-fault-p.patch -Patch0029: 0029-linux-user-Fake-proc-cpuinfo.patch.patch -Patch0030: 0030-Replace-struct-siginfo-with-siginfo.patch +Patch0019: 0019-linux-user-arm-no-tb_flush-on-reset.patch +Patch0020: 0020-linux-user-fix-multi-threaded-proc-.patch +Patch0021: 0021-use-libexecdir-instead-of-ignoring-.patch +Patch0022: 0022-linux-user-Ignore-broken-loop-ioctl.patch +Patch0023: 0023-linux-user-fix-segmentation-fault-p.patch +Patch0024: 0024-linux-user-lock-tcg.patch.patch +Patch0025: 0025-linux-user-Run-multi-threaded-code-.patch +Patch0026: 0026-linux-user-lock-tb-flushing-too.pat.patch +Patch0027: 0027-linux-user-Fake-proc-cpuinfo.patch.patch # this is to make lint happy Source300: rpmlintrc Source302: bridge.conf @@ -164,7 +161,7 @@ emulations. This can be used together with the OBS build script to run cross-architecture builds. %prep -%setup -q +%setup -q -n qemu-1.2.0-rc0 %patch0001 -p1 %patch0002 -p1 %patch0003 -p1 @@ -192,9 +189,6 @@ run cross-architecture builds. %patch0025 -p1 %patch0026 -p1 %patch0027 -p1 -%patch0028 -p1 -%patch0029 -p1 -%patch0030 -p1 %build # build QEMU @@ -318,6 +312,7 @@ rm -rf ${RPM_BUILD_ROOT} %_bindir/qemu-mipsel %_bindir/qemu-mipsn32 %_bindir/qemu-mipsn32el +%_bindir/qemu-or32 %_bindir/qemu-ppc64abi32 %_bindir/qemu-ppc64 %_bindir/qemu-ppc diff --git a/qemu.spec.in b/qemu.spec.in index 384a29c1..c9535ef9 100644 --- a/qemu.spec.in +++ b/qemu.spec.in @@ -21,9 +21,9 @@ Url: http://www.qemu.org/ Summary: Universal CPU emulator License: BSD-3-Clause ; GPL-2.0+ ; LGPL-2.1+ ; MIT Group: System/Emulators/PC -Version: 1.1.0 +Version: 1.2.0rc0 Release: 0 -Source: %name-%version-1.tar.bz2 +Source: %name-1.2.0-rc0.tar.bz2 PATCH_FILES # this is to make lint happy Source300: rpmlintrc @@ -135,7 +135,7 @@ emulations. This can be used together with the OBS build script to run cross-architecture builds. %prep -%setup -q +%setup -q -n qemu-1.2.0-rc0 PATCH_EXEC %build @@ -260,6 +260,7 @@ rm -rf ${RPM_BUILD_ROOT} %_bindir/qemu-mipsel %_bindir/qemu-mipsn32 %_bindir/qemu-mipsn32el +%_bindir/qemu-or32 %_bindir/qemu-ppc64abi32 %_bindir/qemu-ppc64 %_bindir/qemu-ppc diff --git a/update_git.sh b/update_git.sh index bbec407f..cb2ea22e 100644 --- a/update_git.sh +++ b/update_git.sh @@ -12,8 +12,8 @@ GIT_TREE=git://repo.or.cz/qemu/agraf.git GIT_LOCAL_TREE=/suse/agraf/git/qemu -GIT_BRANCH=suse-1.1 -GIT_UPSTREAM_TAG=v1.1.0 +GIT_BRANCH=suse-1.2 +GIT_UPSTREAM_TAG=v1.2.0-rc0 QEMU_TMP=/dev/shm/qemu-tmp # clean up