diff options
author | Arnaud Patard <arnaud.patard@rtp-net.org> | 2009-06-19 10:39:36 +0300 |
---|---|---|
committer | Riku Voipio <riku.voipio@iki.fi> | 2009-07-08 17:01:08 +0300 |
commit | fd4d81dd04b4e606ce40a41d66368ba77c77c753 (patch) | |
tree | 54b9de691a9fe2a0d5b87fdf5d6922825b13cdbf | |
parent | e8d2a88755b849bdadaf80d19e342eade3c017bc (diff) |
linux-user: increment MAX_ARG_PAGES
There's a error When doing something like that :
find / -type f -print0 | xargs -0 echo
[ done in a arm chroot with qemu-arm and linux binfmt stuff or with
find / -type f -print0 | qemu-arm -L <path> <path>/usr/bin/xargs -0
echo ]
Doing this outsite qemu is fine. The problem was the huge number of
parameters. Increasing MAX_ARG_PAGES is fixing that.
While I was at it, I've modified linux-user/main.c to report error code
of loader_exec. It helps to debug/know what's wrong.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
-rw-r--r-- | linux-user/main.c | 8 | ||||
-rw-r--r-- | linux-user/qemu.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/linux-user/main.c b/linux-user/main.c index 7eabd0c22f..345d338a1e 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -2372,6 +2372,7 @@ int main(int argc, char **argv, char **envp) envlist_t *envlist = NULL; const char *argv0 = NULL; int i; + int ret; if (argc <= 1) usage(); @@ -2576,9 +2577,10 @@ int main(int argc, char **argv, char **envp) env->opaque = ts; task_settid(ts); - if (loader_exec(filename, target_argv, target_environ, regs, - info, &bprm) != 0) { - printf("Error loading %s\n", filename); + ret = loader_exec(filename, target_argv, target_environ, regs, + info, &bprm); + if (ret != 0) { + printf("Error %d while loading %s\n", ret, filename); _exit(1); } diff --git a/linux-user/qemu.h b/linux-user/qemu.h index e04a31c69c..83ad443c23 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -140,7 +140,7 @@ extern const char *qemu_uname_release; * and envelope for the new program. 32 should suffice, this gives * a maximum env+arg of 128kB w/4KB pages! */ -#define MAX_ARG_PAGES 32 +#define MAX_ARG_PAGES 33 /* * This structure is used to hold the arguments that are |