$OpenBSD$ Index: src/crypto/common/VirtualMemory_unix.cpp --- src/crypto/common/VirtualMemory_unix.cpp.orig +++ src/crypto/common/VirtualMemory_unix.cpp @@ -65,7 +65,7 @@ #endif -#if defined(XMRIG_OS_LINUX) || (!defined(XMRIG_OS_APPLE) && !defined(__FreeBSD__)) +#if defined(XMRIG_OS_LINUX) || (!defined(XMRIG_OS_APPLE) && !defined(__OpenBSD__)) static inline int hugePagesFlag(size_t size) { return (static_cast(log2(size)) & MAP_HUGE_MASK) << MAP_HUGE_SHIFT; @@ -129,11 +129,11 @@ void *xmrig::VirtualMemory::allocateExecutableMemory(s # ifdef XMRIG_ARM pthread_jit_write_protect_np(false); # endif -# elif defined(__FreeBSD__) +# elif defined(__OpenBSD__) void *mem = nullptr; if (hugePages) { - mem = mmap(0, size, PROT_READ | PROT_WRITE | SECURE_PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS | MAP_ALIGNED_SUPER | MAP_PREFAULT_READ, -1, 0); + mem = mmap(0, size, PROT_READ | PROT_WRITE | SECURE_PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); } if (!mem) { @@ -145,7 +145,7 @@ void *xmrig::VirtualMemory::allocateExecutableMemory(s void *mem = nullptr; if (hugePages) { - mem = mmap(0, align(size), PROT_READ | PROT_WRITE | SECURE_PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE | hugePagesFlag(hugePageSize()), -1, 0); + mem = mmap(0, align(size), PROT_READ | PROT_WRITE | SECURE_PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS | hugePagesFlag(hugePageSize()), -1, 0); } if (!mem) { @@ -162,10 +162,10 @@ void *xmrig::VirtualMemory::allocateLargePagesMemory(s { # if defined(XMRIG_OS_APPLE) void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, VM_FLAGS_SUPERPAGE_SIZE_2MB, 0); -# elif defined(__FreeBSD__) - void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_ALIGNED_SUPER | MAP_PREFAULT_READ, -1, 0); +# elif defined(__OpenBSD__) + void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); # else - void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB | MAP_POPULATE | hugePagesFlag(hugePageSize()), 0, 0); + void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS hugePagesFlag(hugePageSize()), 0, 0); # endif return mem == MAP_FAILED ? nullptr : mem;