瀏覽代碼

virtual_memory: add MAP_JIT on macOS

selsta 6 年之前
父節點
當前提交
7c172f746f
共有 1 個文件被更改,包括 11 次插入1 次删除
  1. 11 1
      src/virtual_memory.cpp

+ 11 - 1
src/virtual_memory.cpp

@@ -99,7 +99,17 @@ void* allocMemoryPages(std::size_t bytes) {
 	#else
 	#else
 		#define RESERVED_FLAGS 0
 		#define RESERVED_FLAGS 0
 	#endif
 	#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)
 	if (mem == MAP_FAILED)
 		throw std::runtime_error("allocMemoryPages - mmap failed");
 		throw std::runtime_error("allocMemoryPages - mmap failed");
 #endif
 #endif