linux-user: Adjust SVr4 NULL page mapping

Use TARGET_PAGE_SIZE and MAP_FIXED_NOREPLACE.

We really should be attending to this earlier during
probe_guest_base, as well as better detection and
emulation of various Linux personalities.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Acked-by: Helge Deller <deller@gmx.de>
Message-Id: <20240102015808.132373-3-richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2024-01-02 12:57:37 +11:00
parent a372d483f1
commit f11c05c3b9
1 changed files with 3 additions and 2 deletions

View File

@ -3912,8 +3912,9 @@ int load_elf_binary(struct linux_binprm *bprm, struct image_info *info)
and some applications "depend" upon this behavior. Since and some applications "depend" upon this behavior. Since
we do not have the power to recompile these, we emulate we do not have the power to recompile these, we emulate
the SVr4 behavior. Sigh. */ the SVr4 behavior. Sigh. */
target_mmap(0, qemu_host_page_size, PROT_READ | PROT_EXEC, target_mmap(0, TARGET_PAGE_SIZE, PROT_READ | PROT_EXEC,
MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); MAP_FIXED_NOREPLACE | MAP_PRIVATE | MAP_ANONYMOUS,
-1, 0);
} }
#ifdef TARGET_MIPS #ifdef TARGET_MIPS
info->interp_fp_abi = interp_info.fp_abi; info->interp_fp_abi = interp_info.fp_abi;