v3 changes:
- rebase the patchset against current code
-diff -urNpa qemu-6.2.0.orig/linux-user/main.c qemu-6.2.0/linux-user/main.c
---- qemu-6.2.0.orig/linux-user/main.c 2022-01-23 13:51:24.451951509 +0100
-+++ qemu-6.2.0/linux-user/main.c 2022-01-23 13:53:07.574160010 +0100
+diff -urNpa qemu-7.0.0.orig/linux-user/main.c qemu-7.0.0/linux-user/main.c
+--- qemu-7.0.0.orig/linux-user/main.c 2022-06-03 00:24:41.355695042 +0200
++++ qemu-7.0.0/linux-user/main.c 2022-06-03 00:25:03.067739119 +0200
@@ -119,6 +119,7 @@ static void usage(int exitcode);
static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX;
/* XXX: on x86 MAP_GROWSDOWN only works if ESP <= address + 32, so
we allocate a bigger stack. Need a better solution, for example
-@@ -338,6 +339,11 @@ static void handle_arg_guest_base(const
+@@ -352,6 +353,11 @@ static void handle_arg_guest_base(const
have_guest_base = true;
}
static void handle_arg_reserved_va(const char *arg)
{
char *p;
-@@ -440,6 +446,8 @@ static const struct qemu_argument arg_ta
+@@ -454,6 +460,8 @@ static const struct qemu_argument arg_ta
"uname", "set qemu uname release string to 'uname'"},
{"B", "QEMU_GUEST_BASE", true, handle_arg_guest_base,
"address", "set guest_base address to 'address'"},
{"R", "QEMU_RESERVED_VA", true, handle_arg_reserved_va,
"size", "reserve 'size' bytes for guest virtual address space"},
{"d", "QEMU_LOG", true, handle_arg_log,
-diff -urNpa qemu-6.2.0.orig/linux-user/syscall.c qemu-6.2.0/linux-user/syscall.c
---- qemu-6.2.0.orig/linux-user/syscall.c 2022-01-23 13:51:24.453951513 +0100
-+++ qemu-6.2.0/linux-user/syscall.c 2022-01-23 13:53:07.576160014 +0100
-@@ -8072,6 +8072,109 @@ static target_timer_t get_timer_id(abi_l
+diff -urNpa qemu-7.0.0.orig/linux-user/syscall.c qemu-7.0.0/linux-user/syscall.c
+--- qemu-7.0.0.orig/linux-user/syscall.c 2022-06-03 00:24:41.357695046 +0200
++++ qemu-7.0.0/linux-user/syscall.c 2022-06-03 00:25:03.070739125 +0200
+@@ -8300,6 +8300,109 @@ static target_timer_t get_timer_id(abi_l
return timerid;
}
static int target_to_host_cpu_mask(unsigned long *host_mask,
size_t host_size,
abi_ulong target_addr,
-@@ -8585,7 +8688,12 @@ static abi_long do_syscall1(void *cpu_en
+@@ -8813,7 +8916,12 @@ static abi_long do_syscall1(void *cpu_en
* before the execve completes and makes it the other
* program's problem.
*/
unlock_user(p, arg1, 0);
goto execve_end;
-diff -urNpa qemu-6.2.0.orig/linux-user/user-internals.h qemu-6.2.0/linux-user/user-internals.h
---- qemu-6.2.0.orig/linux-user/user-internals.h 2022-01-23 13:51:24.450951507 +0100
-+++ qemu-6.2.0/linux-user/user-internals.h 2022-01-23 13:54:10.373286987 +0100
-@@ -28,6 +28,7 @@ void init_task_state(TaskState *ts);
+diff -urNpa qemu-7.0.0.orig/linux-user/user-internals.h qemu-7.0.0/linux-user/user-internals.h
+--- qemu-7.0.0.orig/linux-user/user-internals.h 2022-06-03 00:24:41.355695042 +0200
++++ qemu-7.0.0/linux-user/user-internals.h 2022-06-03 00:25:03.070739125 +0200
+@@ -27,6 +27,7 @@ void init_task_state(TaskState *ts);
void task_settid(TaskState *);
void stop_all_tasks(void);
extern const char *qemu_uname_release;