]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
macOS: Fix Apple hardened runtime support and put behind build option.
authorMike Pall <mike>
Mon, 10 Mar 2025 01:53:20 +0000 (02:53 +0100)
committerMike Pall <mike>
Mon, 10 Mar 2025 01:53:20 +0000 (02:53 +0100)
Reported by vanc. #1334

src/lj_ccallback.c
src/lj_mcode.c

index d93dbc645755c1b3f93e8c16262d8ed15957d4bd..7f08f0a8488a164950cda59fe5819edd271fce8b 100644 (file)
@@ -263,7 +263,7 @@ static void *callback_mcode_init(global_State *g, uint32_t *page)
 #endif
 
 /* Check for macOS hardened runtime. */
-#if LUAJIT_SECURITY_MCODE != 0 && defined(MAP_JIT) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
+#if defined(LUAJIT_ENABLE_OSX_HRT) && LUAJIT_SECURITY_MCODE != 0 && defined(MAP_JIT) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
 #include <pthread.h>
 #define CCMAP_CREATE   MAP_JIT
 #else
index d8fa165e1d59d191bf41fe0ebecd04534f451f60..2b8ac2df58dbd5499bd18d93f57fb4bc587293c3 100644 (file)
@@ -99,7 +99,7 @@ static int mcode_setprot(void *p, size_t sz, DWORD prot)
 #endif
 
 /* Check for macOS hardened runtime. */
-#if LUAJIT_SECURITY_MCODE != 0 && defined(MAP_JIT) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
+#if defined(LUAJIT_ENABLE_OSX_HRT) && LUAJIT_SECURITY_MCODE != 0 && defined(MAP_JIT) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 110000
 #include <pthread.h>
 #define MCMAP_CREATE   MAP_JIT
 #else
@@ -111,6 +111,8 @@ static int mcode_setprot(void *p, size_t sz, DWORD prot)
 #define MCPROT_RWX     (PROT_READ|PROT_WRITE|PROT_EXEC)
 #ifdef PROT_MPROTECT
 #define MCPROT_CREATE  (PROT_MPROTECT(MCPROT_RWX))
+#elif MCMAP_CREATE
+#define MCPROT_CREATE  PROT_EXEC
 #else
 #define MCPROT_CREATE  0
 #endif