Browse Source

Temp Mac workaround

dev-old-randomx
fekt 7 months ago
parent
commit
19e18cf37a
  1. 20
      src/RandomX/src/virtual_memory.c

20
src/RandomX/src/virtual_memory.c

@ -148,9 +148,9 @@ void* allocMemoryPages(size_t bytes) {
mem = NULL; mem = NULL;
#if defined(USE_PTHREAD_JIT_WP) && defined(MAC_OS_VERSION_11_0) \ #if defined(USE_PTHREAD_JIT_WP) && defined(MAC_OS_VERSION_11_0) \
&& MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
if (__builtin_available(macOS 11.0, *)) { //if (__builtin_available(macOS 11.0, *)) {
pthread_jit_write_protect_np(0); pthread_jit_write_protect_np(0);
} //}
#endif #endif
#endif #endif
return mem; return mem;
@ -173,11 +173,11 @@ void setPagesRW(void* ptr, size_t bytes) {
char *errfunc; char *errfunc;
#if defined(USE_PTHREAD_JIT_WP) && defined(MAC_OS_VERSION_11_0) \ #if defined(USE_PTHREAD_JIT_WP) && defined(MAC_OS_VERSION_11_0) \
&& MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
if (__builtin_available(macOS 11.0, *)) { //if (__builtin_available(macOS 11.0, *)) {
pthread_jit_write_protect_np(0); pthread_jit_write_protect_np(0);
} else { //} else {
pageProtect(ptr, bytes, PAGE_READWRITE, &errfunc); // pageProtect(ptr, bytes, PAGE_READWRITE, &errfunc);
} //}
#else #else
pageProtect(ptr, bytes, PAGE_READWRITE, &errfunc); pageProtect(ptr, bytes, PAGE_READWRITE, &errfunc);
#endif #endif
@ -187,12 +187,12 @@ void setPagesRX(void* ptr, size_t bytes) {
char *errfunc; char *errfunc;
#if defined(USE_PTHREAD_JIT_WP) && defined(MAC_OS_VERSION_11_0) \ #if defined(USE_PTHREAD_JIT_WP) && defined(MAC_OS_VERSION_11_0) \
&& MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
if (__builtin_available(macOS 11.0, *)) { //if (__builtin_available(macOS 11.0, *)) {
pthread_jit_write_protect_np(1); pthread_jit_write_protect_np(1);
__builtin___clear_cache((char*)ptr, ((char*)ptr) + bytes); __builtin___clear_cache((char*)ptr, ((char*)ptr) + bytes);
} else { //} else {
pageProtect(ptr, bytes, PAGE_EXECUTE_READ, &errfunc); // pageProtect(ptr, bytes, PAGE_EXECUTE_READ, &errfunc);
} //}
#else #else
pageProtect(ptr, bytes, PAGE_EXECUTE_READ, &errfunc); pageProtect(ptr, bytes, PAGE_EXECUTE_READ, &errfunc);
#endif #endif

Loading…
Cancel
Save