On 8/26/21 11:12 PM, [email protected] wrote:
> From: Colin Percival <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Warner Losh <[email protected]>
> Reviewed-by: Richard Henderson <[email protected]>
> ---
> 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);
>