On 8/26/21 11:12 PM, i...@bsdimp.com wrote: > From: Colin Percival <cperc...@tarsnap.com> > > Previously it was impossible to emulate a program with a file name > different from its argv[0]. With this change, you can run > qemu -0 fakename realname args > which runs the program "realname" with an argv of "fakename args". > > Signed-off-by: Colin Percival <cperc...@tarsnap.com> > Signed-off-by: Warner Losh <i...@bsdimp.com> > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > --- > bsd-user/main.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/bsd-user/main.c b/bsd-user/main.c > index b35bcf4d1e..ae25f4c773 100644 > --- a/bsd-user/main.c > +++ b/bsd-user/main.c > @@ -268,6 +268,7 @@ int main(int argc, char **argv) > char **target_environ, **wrk; > envlist_t *envlist = NULL; > bsd_type = HOST_DEFAULT_BSD_TYPE; > + char * argv0 = NULL; > > adjust_ssize(); > > @@ -390,6 +391,8 @@ int main(int argc, char **argv) > do_strace = 1; > } else if (!strcmp(r, "trace")) { > trace_opt_parse(optarg); > + } else if (!strcmp(r, "0")) { > + argv0 = argv[optind++]; > } else { > usage(); > } > @@ -413,6 +416,8 @@ int main(int argc, char **argv) > usage(); > } > filename = argv[optind]; > + if (argv0)
Style: { > + argv[optind] = argv0; } > > if (!trace_init_backends()) { > exit(1); >