diff mbox

[v2] linux-user/main.c: Set environments variables from command line options

Message ID 1441872622-4653-1-git-send-email-gang.chen.5i5j@gmail.com
State New
Headers show

Commit Message

Chen Gang Sept. 10, 2015, 8:10 a.m. UTC
From: Chen Gang <gang.chen.5i5j@gmail.com>

When qemu execute execve() system call, the related command line options
can not be passed to the second qemu process, which causes the second
process fail.

Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
---
 linux-user/main.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Chen Gang Sept. 10, 2015, 8:28 a.m. UTC | #1
Oh, very sorry! The patch v2 did not process simple options (e.g. -strace).

I should send patch v3 for it.

Thanks.

----------------------------------------
> From: gang.chen.5i5j@gmail.com
> To: riku.voipio@iki.fi
> CC: rth@twiddle.net; peter.maydell@linaro.org; xili_gchen_5257@hotmail.com; qemu-devel@nongnu.org; gang.chen.5i5j@gmail.com
> Subject: [PATCH v2] linux-user/main.c: Set environments variables from command line options
> Date: Thu, 10 Sep 2015 16:10:22 +0800
>
> From: Chen Gang <gang.chen.5i5j@gmail.com>
>
> When qemu execute execve() system call, the related command line options
> can not be passed to the second qemu process, which causes the second
> process fail.
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> linux-user/main.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/linux-user/main.c b/linux-user/main.c
> index 06dd296..f1f5496 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -3767,6 +3767,7 @@ static void usage(void)
> static int parse_args(int argc, char **argv)
> {
> const char *r;
> + char *buf;
> int optind;
> const struct qemu_argument *arginfo;
>
> @@ -3802,6 +3803,9 @@ static int parse_args(int argc, char **argv)
> if (optind>= argc) {
> usage();
> }
> + buf = g_strdup_printf("%s=%s", arginfo->env, argv[optind]);
> + (void) envlist_setenv(envlist, buf);
> + g_free(buf);
> arginfo->handle_opt(argv[optind]);
> optind++;
> } else {
> --
> 1.9.1
>
>
diff mbox

Patch

diff --git a/linux-user/main.c b/linux-user/main.c
index 06dd296..f1f5496 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3767,6 +3767,7 @@  static void usage(void)
 static int parse_args(int argc, char **argv)
 {
     const char *r;
+    char *buf;
     int optind;
     const struct qemu_argument *arginfo;
 
@@ -3802,6 +3803,9 @@  static int parse_args(int argc, char **argv)
                     if (optind >= argc) {
                         usage();
                     }
+                    buf = g_strdup_printf("%s=%s", arginfo->env, argv[optind]);
+                    (void) envlist_setenv(envlist, buf);
+                    g_free(buf);
                     arginfo->handle_opt(argv[optind]);
                     optind++;
                 } else {