This is not needed: if you use QEMU_STRACE environment variable, it is
propagated to the child processes (this is also true for "-L" and
QEMU_LD_PREFIX).

In fact, your patch 2 breaks this...

Did you try to use a statically linked qemu?

IMHO, the best way to avoid environment problem is to have a qemu
ignoring it, not modifying it.

Thanks,
Laurent

Le 14/06/2016 à 21:26, Joel Holdsworth a écrit :
> ---
>  linux-user/syscall.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 1513f0f..00ee7a6 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6778,6 +6778,8 @@ static abi_long qemu_execve(char *filename, char 
> *argv[],
>      qemu_argc += undef_envc * 2;
>  
>      /* allocate the argument list */
> +    if (do_strace)
> +        qemu_argc++;
>      argp = qemu_argp = alloca((qemu_argc + 1) * sizeof(void *));
>  
>      /* set up the qemu arguments */
> @@ -6785,6 +6787,9 @@ static abi_long qemu_execve(char *filename, char 
> *argv[],
>      *argp++ = strdup("-L");
>      *argp++ = strdup(path("/"));
>  
> +    if (do_strace)
> +        *argp++ = strdup("-strace");
> +
>      /* add arguments for the enironment variables */
>      for (i = 0; i < def_envc; i++) {
>          *argp++ = strdup("-E");
> 

Reply via email to