$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<int>(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;