diff --git a/CMakeLists.txt b/CMakeLists.txt index 849c1257..da576f82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,6 +156,8 @@ else() if (CMAKE_SYSTEM_NAME STREQUAL FreeBSD) set(EXTRA_LIBS kvm pthread) + elseif (CMAKE_SYSTEM_NAME STREQUAL OpenBSD) + set(EXTRA_LIBS kvm pthread) else() set(EXTRA_LIBS pthread rt dl) endif() diff --git a/src/base/kernel/Platform_unix.cpp b/src/base/kernel/Platform_unix.cpp index bbba39f9..edac61a0 100644 --- a/src/base/kernel/Platform_unix.cpp +++ b/src/base/kernel/Platform_unix.cpp @@ -87,6 +87,9 @@ char *xmrig::Platform::createUserAgent() #ifndef XMRIG_FEATURE_HWLOC bool xmrig::Platform::setThreadAffinity(uint64_t cpu_id) { +#if defined(__OpenBSD__) + return true; +#else cpu_set_t mn; CPU_ZERO(&mn); CPU_SET(cpu_id, &mn); @@ -96,6 +99,7 @@ bool xmrig::Platform::setThreadAffinity(uint64_t cpu_id) # else return sched_setaffinity(gettid(), sizeof(cpu_set_t), &mn) == 0; # endif +#endif } #endif diff --git a/src/crypto/common/VirtualMemory_unix.cpp b/src/crypto/common/VirtualMemory_unix.cpp index 3d099c76..a96c960b 100644 --- a/src/crypto/common/VirtualMemory_unix.cpp +++ b/src/crypto/common/VirtualMemory_unix.cpp @@ -62,6 +62,8 @@ void *xmrig::VirtualMemory::allocateLargePagesMemory(size_t size) 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, 0, 0); # endif