The CONFIG_LINUX check at the top of mmap-alloc.c never worked because it was done before including osdep.h.
This means MAP_SYNC and MAP_SHARED_VALIDATE would always be set to 0 at the beginning of the file. Luckily, this didn't break when using recent glibc versions (2.28+), because those macros were redefined by glibc headers. Move the CONFIG_LINUX check after the main include lines, so the CONFIG_LINUX check works and we actually include <linux/mman.h>. This will make MAP_SYNC and MAP_SHARED_VALIDATE available even if the host has an older glibc version. Reported-by: Jingqi Liu <jingqi....@intel.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> --- util/mmap-alloc.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c index 27dcccd8ec..7c2ce98eb0 100644 --- a/util/mmap-alloc.c +++ b/util/mmap-alloc.c @@ -9,6 +9,9 @@ * This work is licensed under the terms of the GNU GPL, version 2 or * later. See the COPYING file in the top-level directory. */ +#include "qemu/osdep.h" +#include "qemu/mmap-alloc.h" +#include "qemu/host-utils.h" #ifdef CONFIG_LINUX #include <linux/mman.h> @@ -17,10 +20,6 @@ #define MAP_SHARED_VALIDATE 0x0 #endif /* CONFIG_LINUX */ -#include "qemu/osdep.h" -#include "qemu/mmap-alloc.h" -#include "qemu/host-utils.h" - #define HUGETLBFS_MAGIC 0x958458f6 #ifdef CONFIG_LINUX -- 2.24.1