Message ID | 20230808164418.69989-1-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE | expand |
Richard Henderson <richard.henderson@linaro.org> writes: > In order for our emulation of MAP_FIXED_NOREPLACE to succeed within > linux-user target_mmap, we require a non-zero value. This does not > require host kernel support, merely the bit being defined. > > MAP_FIXED_NOREPLACE was added with glibc 2.28. From repology.org: > > Fedora 36: 2.35 > CentOS 8 (RHEL-8): 2.28 > Debian 11: 2.31 > OpenSUSE Leap 15.4: 2.31 > Ubuntu LTS 20.04: 2.31 > > Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
On 2023/08/09 1:44, Richard Henderson wrote: > In order for our emulation of MAP_FIXED_NOREPLACE to succeed within > linux-user target_mmap, we require a non-zero value. This does not > require host kernel support, merely the bit being defined. > > MAP_FIXED_NOREPLACE was added with glibc 2.28. From repology.org: > > Fedora 36: 2.35 > CentOS 8 (RHEL-8): 2.28 > Debian 11: 2.31 > OpenSUSE Leap 15.4: 2.31 > Ubuntu LTS 20.04: 2.31 > > Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
08.08.2023 19:44, Richard Henderson пишет: > In order for our emulation of MAP_FIXED_NOREPLACE to succeed within > linux-user target_mmap, we require a non-zero value. This does not > require host kernel support, merely the bit being defined. Hm. Should we add something like assert(MAP_FIXED_NOREPLACE != 0) somewhere? /mjt
On 8/8/23 20:50, Michael Tokarev wrote: > 08.08.2023 19:44, Richard Henderson пишет: >> In order for our emulation of MAP_FIXED_NOREPLACE to succeed within >> linux-user target_mmap, we require a non-zero value. This does not >> require host kernel support, merely the bit being defined. > > Hm. Should we add something like > > assert(MAP_FIXED_NOREPLACE != 0) > > somewhere? I wouldn't think so. Where would a zero come from? r~
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index cc61b00ba9..21ef8f1699 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -289,9 +289,6 @@ void QEMU_ERROR("code path is reachable") #ifndef MAP_ANONYMOUS #define MAP_ANONYMOUS MAP_ANON #endif -#ifndef MAP_FIXED_NOREPLACE -#define MAP_FIXED_NOREPLACE 0 -#endif #ifndef MAP_NORESERVE #define MAP_NORESERVE 0 #endif diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 36e4026f05..9d9c79a653 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -2807,7 +2807,6 @@ static void pgb_reserved_va(const char *image_name, abi_ulong guest_loaddr, /* Widen the "image" to the entire reserved address space. */ pgb_static(image_name, 0, reserved_va, align); - /* osdep.h defines this as 0 if it's missing */ flags |= MAP_FIXED_NOREPLACE; /* Reserve the memory on the host. */
In order for our emulation of MAP_FIXED_NOREPLACE to succeed within linux-user target_mmap, we require a non-zero value. This does not require host kernel support, merely the bit being defined. MAP_FIXED_NOREPLACE was added with glibc 2.28. From repology.org: Fedora 36: 2.35 CentOS 8 (RHEL-8): 2.28 Debian 11: 2.31 OpenSUSE Leap 15.4: 2.31 Ubuntu LTS 20.04: 2.31 Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- include/qemu/osdep.h | 3 --- linux-user/elfload.c | 1 - 2 files changed, 4 deletions(-)