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);
> 


Reply via email to