diff options
author | Peter Maydell | 2018-10-31 17:11:43 +0100 |
---|---|---|
committer | Peter Maydell | 2018-10-31 17:11:43 +0100 |
commit | 7d51a855cd568ec3399a1834ada4023cfa12f231 (patch) | |
tree | 0b488686dcc7c5e90c21f0522cf38e9e8c55a98b /linux-user/flatload.c | |
parent | Merge remote-tracking branch 'remotes/vivier2/tags/qemu-trivial-for-3.1-pull-... (diff) | |
parent | linux-user/flatload: fix initial stack pointer alignment (diff) | |
download | qemu-7d51a855cd568ec3399a1834ada4023cfa12f231.tar.gz qemu-7d51a855cd568ec3399a1834ada4023cfa12f231.tar.xz qemu-7d51a855cd568ec3399a1834ada4023cfa12f231.zip |
Merge remote-tracking branch 'remotes/xtensa/tags/20181030-xtensa' into staging
target/xtensa: support for bFLT binaries
- add support for bFLT binaries for target/xtensa
- fix per-architecture target_flat.h customization
- fix initial stack pointer for bFLT
# gpg: Signature made Tue 30 Oct 2018 18:27:42 GMT
# gpg: using RSA key 51F9CC91F83FA044
# gpg: Good signature from "Max Filippov <filippov@cadence.com>"
# gpg: aka "Max Filippov <max.filippov@cogentembedded.com>"
# gpg: aka "Max Filippov <jcmvbkbc@gmail.com>"
# Primary key fingerprint: 2B67 854B 98E5 327D CDEB 17D8 51F9 CC91 F83F A044
* remotes/xtensa/tags/20181030-xtensa:
linux-user/flatload: fix initial stack pointer alignment
linux-user: xtensa: enable bFLT support
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'linux-user/flatload.c')
-rw-r--r-- | linux-user/flatload.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/linux-user/flatload.c b/linux-user/flatload.c index 10c529910f..0122ab3afe 100644 --- a/linux-user/flatload.c +++ b/linux-user/flatload.c @@ -37,7 +37,7 @@ #include "qemu.h" #include "flat.h" -#include "target_flat.h" +#include <target_flat.h> //#define DEBUG @@ -771,10 +771,10 @@ int load_flt_binary(struct linux_binprm *bprm, struct image_info *info) /* Enforce final stack alignment of 16 bytes. This is sufficient for all current targets, and excess alignment is harmless. */ stack_len = bprm->envc + bprm->argc + 2; - stack_len += 3; /* argc, arvg, argp */ + stack_len += flat_argvp_envp_on_stack() ? 2 : 0; /* arvg, argp */ + stack_len += 1; /* argc */ stack_len *= sizeof(abi_ulong); - if ((sp + stack_len) & 15) - sp -= 16 - ((sp + stack_len) & 15); + sp -= (sp - stack_len) & 15; sp = loader_build_argptr(bprm->envc, bprm->argc, sp, p, flat_argvp_envp_on_stack()); |