X-Git-Url: https://git.tld-linux.org/?p=packages%2Fqemu.git;a=blobdiff_plain;f=qemu-user-execve.patch;fp=qemu-user-execve.patch;h=7fc709c0cc3d76bc680bfd50bd4e51a74916dead;hp=3f538a95d61878e894c14319f245ca967b66a3ba;hb=3d49db8a0d710f24eaf8fdb628ab0e989130d4a1;hpb=3e5fdc14d3cab22239a38dece4826cdb76365bb4 diff --git a/qemu-user-execve.patch b/qemu-user-execve.patch index 3f538a9..7fc709c 100644 --- a/qemu-user-execve.patch +++ b/qemu-user-execve.patch @@ -45,11 +45,10 @@ Reviewed-by: Laurent Vivier v3 changes: - rebase the patchset against current code -diff --git a/linux-user/main.c b/linux-user/main.c -index ee12035..5951279 100644 ---- a/linux-user/main.c -+++ b/linux-user/main.c -@@ -79,6 +79,7 @@ static void usage(int exitcode); +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 +@@ -119,6 +119,7 @@ static void usage(int exitcode); static const char *interp_prefix = CONFIG_QEMU_INTERP_PREFIX; const char *qemu_uname_release; @@ -57,8 +56,8 @@ index ee12035..5951279 100644 /* XXX: on x86 MAP_GROWSDOWN only works if ESP <= address + 32, so we allocate a bigger stack. Need a better solution, for example -@@ -3828,6 +3829,11 @@ static void handle_arg_guest_base(const char *arg) - have_guest_base = 1; +@@ -338,6 +339,11 @@ static void handle_arg_guest_base(const + have_guest_base = true; } +static void handle_arg_execve(const char *arg) @@ -69,7 +68,7 @@ index ee12035..5951279 100644 static void handle_arg_reserved_va(const char *arg) { char *p; -@@ -3913,6 +3919,8 @@ static const struct qemu_argument arg_table[] = { +@@ -440,6 +446,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'"}, @@ -78,21 +77,10 @@ index ee12035..5951279 100644 {"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 --git a/linux-user/qemu.h b/linux-user/qemu.h -index bd90cc3..0d9b058 100644 ---- a/linux-user/qemu.h -+++ b/linux-user/qemu.h -@@ -140,6 +140,7 @@ void init_task_state(TaskState *ts); - void task_settid(TaskState *); - void stop_all_tasks(void); - extern const char *qemu_uname_release; -+extern const char *qemu_execve_path; - extern unsigned long mmap_min_addr; - - /* ??? See if we can avoid exposing so much of the loader internals. */ ---- qemu-2.12.0/linux-user/syscall.c~ 2018-04-30 21:43:39.000000000 +0300 -+++ qemu-2.12.0/linux-user/syscall.c 2018-04-30 21:46:36.362935706 +0300 -@@ -5854,6 +5854,109 @@ static target_timer_t get_timer_id(abi_long arg) +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 return timerid; } @@ -202,7 +190,7 @@ index bd90cc3..0d9b058 100644 static int target_to_host_cpu_mask(unsigned long *host_mask, size_t host_size, abi_ulong target_addr, -@@ -8257,7 +8257,12 @@ +@@ -8585,7 +8688,12 @@ static abi_long do_syscall1(void *cpu_en * before the execve completes and makes it the other * program's problem. */ @@ -216,3 +204,14 @@ index bd90cc3..0d9b058 100644 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); + void task_settid(TaskState *); + void stop_all_tasks(void); + extern const char *qemu_uname_release; ++extern const char *qemu_execve_path; + extern unsigned long mmap_min_addr; + + typedef struct IOCTLEntry IOCTLEntry;