From: Colin Percival Date: Sat, 7 Aug 2021 20:34:21 +0000 (-0600) Subject: bsd-user: Add '-0 argv0' option to bsd-user/main.c X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b8012648b38274aa996f1477c422a79e2d44110b;p=qemu.git bsd-user: Add '-0 argv0' option to bsd-user/main.c 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 Signed-off-by: Warner Losh Reviewed-by: Richard Henderson --- diff --git a/bsd-user/main.c b/bsd-user/main.c index 659dd2b512..6df4f4f011 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -243,6 +243,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(); @@ -367,6 +368,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(); } @@ -390,6 +393,9 @@ int main(int argc, char **argv) usage(); } filename = argv[optind]; + if (argv0) { + argv[optind] = argv0; + } if (!trace_init_backends()) { exit(1);