https://bugs.exim.org/show_bug.cgi?id=2769
Bug ID: 2769 Summary: r1315: apple_update_wx_flags() calls unavailable API when compiling to deploy on older macOS Product: PCRE Version: 10.37 (PCRE2) Hardware: x86-64 OS: All Status: NEW Severity: bug Priority: medium Component: Code Assignee: philip.ha...@gmail.com Reporter: sie...@barebones.com CC: pcre-dev@exim.org I'm building r1315 as a "universal" library (x86_64 + arm64) for deployment on macOS 10.14 and later. During build, I get the following compiler warnings: ``` In file included from /Users/siegel/svn/pcre2/src/pcre2_jit_compile.c:79: In file included from /Users/siegel/svn/pcre2/src/sljit/sljitLir.c:271: /Users/siegel/svn/pcre2/src/sljit/sljitExecAllocator.c:152:2: warning: 'pthread_jit_write_protect_np' is only available on macOS 11.0 or newer [-Wunguarded-availability-new] pthread_jit_write_protect_np(enable_exec); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/include/pthread.h:561:6: note: 'pthread_jit_write_protect_np' has been marked as being introduced in macOS 11.0 here, but the deployment target is macOS 10.14.0 void pthread_jit_write_protect_np(int enabled); ^ /Users/siegel/svn/pcre2/src/sljit/sljitExecAllocator.c:152:2: note: enclose 'pthread_jit_write_protect_np' in a __builtin_available check to silence this warning pthread_jit_write_protect_np(enable_exec); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` I haven't tried yet, but I suspect that the JIT compiler will crash when run on any version of macOS prior to 11.0. The solution is as described in the warning; you can use a formulation like this: ``` static SLJIT_INLINE void apple_update_wx_flags(sljit_s32 enable_exec) { if (__builtin_available(macOS 11.0, *)) { pthread_jit_write_protect_np(enable_exec); } } ``` -- You are receiving this mail because: You are on the CC list for the bug. -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev