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) + argv[optind] = argv0; if (!trace_init_backends()) { exit(1); -- 2.32.0