From 5ca7ac2e8ea5133bfb3a9256b45f50a62d90afc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Herczeg?= Date: Fri, 14 Dec 2018 08:00:49 +0000 Subject: [PATCH] Use TARGET_OS_MAC macro in the executable allocator. --- src/sljit/sljitExecAllocator.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/sljit/sljitExecAllocator.c b/src/sljit/sljitExecAllocator.c index 6e3b295..7a97114 100644 --- a/src/sljit/sljitExecAllocator.c +++ b/src/sljit/sljitExecAllocator.c @@ -94,20 +94,28 @@ static SLJIT_INLINE void free_chunk(void *chunk, sljit_uw size) #else -#ifdef MAP_JIT - #ifdef __APPLE__ +// Configures TARGET_OS_MAC when appropriate. +#include + +#if defined TARGET_OS_MAC && defined MAP_JIT #include +#endif /* TARGET_OS_MAC && MAP_JIT */ #endif /* __APPLE__ */ +#ifdef MAP_JIT + static SLJIT_INLINE int get_map_jit_flag() { -#ifdef __APPLE__ +#ifdef TARGET_OS_MAC /* On macOS systems, returns MAP_JIT if it is defined _and_ we're running on a version of macOS where it's OK to have more than one JIT block. On non-macOS systems, returns MAP_JIT if it is defined. */ static int map_jit_flag = -1; + /* The following code is thread safe because multiple initialization + sets map_jit_flag to the same value and the code has no side-effects. + Changing the kernel version witout system restart is (very) unlikely. */ if (map_jit_flag == -1) { struct utsname name; @@ -118,9 +126,9 @@ static SLJIT_INLINE int get_map_jit_flag() } return map_jit_flag; -#else /* !__APPLE__ */ +#else /* !TARGET_OS_MAC */ return MAP_JIT; -#endif /* __APPLE__ */ +#endif /* TARGET_OS_MAC */ } #endif /* MAP_JIT */