Message ID | 1405362775-6233-1-git-send-email-Joakim.Tjernlund@transmode.se |
---|---|
State | New |
Headers | show |
On 14.07.14 20:32, Joakim Tjernlund wrote: > Qemu can autodetect if it is started from Linux binfmt loader > when binfmt flag O is on. > Use that and require binfmt flag P as well which will enable QEMU > to pass in correct argv0 to the application. > > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> This is missing the updates to binfmt_misc.sh. Otherwise I think the patch is good :). Alex
Alexander Graf <agraf@suse.de> wrote on 2014/07/14 20:39:29: > > On 14.07.14 20:32, Joakim Tjernlund wrote: > > Qemu can autodetect if it is started from Linux binfmt loader > > when binfmt flag O is on. > > Use that and require binfmt flag P as well which will enable QEMU > > to pass in correct argv0 to the application. > > > > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> > > This is missing the updates to binfmt_misc.sh. Otherwise I think the > patch is good :). > Sent v2 with that. Very quiet from Riku, are you there? Jocke
diff --git a/linux-user/main.c b/linux-user/main.c index 71a33c7..9736768 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -3829,6 +3829,18 @@ int main(int argc, char **argv, char **envp) int ret; int execfd; + execfd = qemu_getauxval(AT_EXECFD); + if (execfd > 0 ) { + if (argc < 3) { + fprintf(stderr, "%s: Please use me through binfmt with P flag\n", + argv[0]); + exit(1); + } + handle_arg_argv0(argv[2]); /* binfmt wrapper */ + memmove(&argv[2], &argv[3], (argc-2)*sizeof(argv)); + argc--; + } + module_call_init(MODULE_INIT_QOM); if ((envlist = envlist_create()) == NULL) { @@ -4003,7 +4015,6 @@ int main(int argc, char **argv, char **envp) cpu->opaque = ts; task_settid(ts); - execfd = qemu_getauxval(AT_EXECFD); if (execfd == 0) { execfd = open(filename, O_RDONLY); if (execfd < 0) {
Qemu can autodetect if it is started from Linux binfmt loader when binfmt flag O is on. Use that and require binfmt flag P as well which will enable QEMU to pass in correct argv0 to the application. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> --- linux-user/main.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)