From 47877d7052edcd5f9f7ae58fd551eca5f533e4c2 Mon Sep 17 00:00:00 2001 From: leleliu008 Date: Fri, 30 Aug 2024 12:24:09 +0800 Subject: [PATCH] MAP_POPULATE is Linux-specific and not declared on NetBSD https://www.man7.org/linux/man-pages/man2/mmap.2.html https://man.netbsd.org/mmap.2 Signed-off-by: leleliu008 --- src/file_reader.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/file_reader.cpp b/src/file_reader.cpp index 0efaeaef..1bc74813 100644 --- a/src/file_reader.cpp +++ b/src/file_reader.cpp @@ -143,12 +143,12 @@ class MMapException : std::exception {}; char* mmapReadOnly(int fd, offset_type offset, size_type size) { -#if defined(__APPLE__) || defined(__OpenBSD__) || defined(__HAIKU__) - const auto MAP_FLAGS = MAP_PRIVATE; +#if defined(__linux__) + const auto MAP_FLAGS = MAP_PRIVATE|MAP_POPULATE; #elif defined(__FreeBSD__) const auto MAP_FLAGS = MAP_PRIVATE|MAP_PREFAULT_READ; #else - const auto MAP_FLAGS = MAP_PRIVATE|MAP_POPULATE; + const auto MAP_FLAGS = MAP_PRIVATE; #endif const auto p = (char*)mmap(NULL, size, PROT_READ, MAP_FLAGS, fd, offset);