summaryrefslogtreecommitdiffstatshomepage
path: root/unix/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix/alloc.c')
-rw-r--r--unix/alloc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/unix/alloc.c b/unix/alloc.c
index 2c09f18461..cb866c78a2 100644
--- a/unix/alloc.c
+++ b/unix/alloc.c
@@ -30,8 +30,11 @@
#include "mpconfigport.h"
-void mp_unix_alloc_exec(mp_uint_t min_size, void** ptr, mp_uint_t *size)
-{
+#if defined(__OpenBSD__) || defined(__MACH__)
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+void mp_unix_alloc_exec(mp_uint_t min_size, void **ptr, mp_uint_t *size) {
// size needs to be a multiple of the page size
*size = (min_size + 0xfff) & (~0xfff);
*ptr = mmap(NULL, *size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
@@ -40,7 +43,6 @@ void mp_unix_alloc_exec(mp_uint_t min_size, void** ptr, mp_uint_t *size)
}
}
-void mp_unix_free_exec(void *ptr, mp_uint_t size)
-{
+void mp_unix_free_exec(void *ptr, mp_uint_t size) {
munmap(ptr, size);
}