virtual_memory: add MAP_JIT on macOS

This commit is contained in:
selsta 2020-05-29 00:19:08 +02:00
parent 9905ec9c5a
commit 7c172f746f
No known key found for this signature in database
GPG Key ID: 2EA0A99A8B07AE5E
1 changed files with 11 additions and 1 deletions

View File

@ -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 <TargetConditionals.h>
#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