On 2/16/24 01:35, Alex Bennée wrote:
> Richard Henderson <richard.henderson@linaro.org> writes:
>
>> 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.
>
> Do we know all our supported systems support this flag now?
We know that target_mmap() itself supports it, even if by emulation.
r~
>
>>
>> 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>
>> ---
>> linux-user/elfload.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/linux-user/elfload.c b/linux-user/elfload.c
>> index b8eef893d0..e918a13748 100644
>> --- a/linux-user/elfload.c
>> +++ b/linux-user/elfload.c
>> @@ -3912,8 +3912,9 @@ int load_elf_binary(struct linux_binprm *bprm, struct image_info *info)
>> and some applications "depend" upon this behavior. Since
>> we do not have the power to recompile these, we emulate
>> the SVr4 behavior. Sigh. */
>> - target_mmap(0, qemu_host_page_size, PROT_READ | PROT_EXEC,
>> - MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
>> + target_mmap(0, TARGET_PAGE_SIZE, PROT_READ | PROT_EXEC,
>> + MAP_FIXED_NOREPLACE | MAP_PRIVATE | MAP_ANONYMOUS,
>> + -1, 0);
>> }
>> #ifdef TARGET_MIPS
>> info->interp_fp_abi = interp_info.fp_abi;
>