Message ID | 1441872622-4653-1-git-send-email-gang.chen.5i5j@gmail.com |
---|---|
State | New |
Headers | show |
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 --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 {