From 7c172f746f94d2f98e0927d2f0e1c3ba3e95e062 Mon Sep 17 00:00:00 2001 From: selsta Date: Fri, 29 May 2020 00:19:08 +0200 Subject: [PATCH] virtual_memory: add MAP_JIT on macOS --- src/virtual_memory.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/virtual_memory.cpp b/src/virtual_memory.cpp index 2b752cb..2f3ee39 100644 --- a/src/virtual_memory.cpp +++ b/src/virtual_memory.cpp @@ -99,7 +99,17 @@ void* allocMemoryPages(std::size_t bytes) { #else #define RESERVED_FLAGS 0 #endif - mem = mmap(nullptr, bytes, PAGE_READWRITE | RESERVED_FLAGS, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + #ifdef __APPLE__ + #include + #ifdef TARGET_OS_OSX + #define MEXTRA MAP_JIT + #else + #define MEXTRA 0 + #endif + #else + #define MEXTRA 0 + #endif + mem = mmap(nullptr, bytes, PAGE_READWRITE | RESERVED_FLAGS, MAP_ANONYMOUS | MAP_PRIVATE | MEXTRA, -1, 0); if (mem == MAP_FAILED) throw std::runtime_error("allocMemoryPages - mmap failed"); #endif