Deal with non-executable memory on Darwin (only an issue on Darwin/x86 so far)

parent 742aea2b
......@@ -40,7 +40,7 @@
#include <pthread.h>
#endif
#if defined(openbsd_HOST_OS) || defined(linux_HOST_OS)
#if defined(openbsd_HOST_OS) || defined(linux_HOST_OS) || defined(darwin_HOST_OS)
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
......@@ -352,7 +352,7 @@ stgMallocBytesRWX(int len)
barf("mallocBytesRWX: failed to protect 0x%p; error=%lu; old protection: %lu\n",
addr, (unsigned long)GetLastError(), (unsigned long)dwOldProtect);
}
#elif defined(openbsd_HOST_OS) || defined(linux_HOST_OS)
#elif defined(openbsd_HOST_OS) || defined(linux_HOST_OS) || defined(darwin_HOST_OS)
/* malloced memory isn't executable by default on OpenBSD */
my_uintptr_t pageSize = sysconf(_SC_PAGESIZE);
my_uintptr_t mask = ~(pageSize - 1);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment