DragonflyBSD compilation fixes

This commit is contained in:
SChernykh 2022-12-17 12:14:28 +01:00
parent 2ea37cdf37
commit 7d4d48e83b
5 changed files with 38 additions and 17 deletions

View file

@ -57,6 +57,15 @@
# define MAP_HUGE_MASK 0x3f
#endif
#ifdef XMRIG_OS_FREEBSD
# ifndef MAP_ALIGNED_SUPER
# define MAP_ALIGNED_SUPER 0
# endif
# ifndef MAP_PREFAULT_READ
# define MAP_PREFAULT_READ 0
# endif
#endif
#ifdef XMRIG_SECURE_JIT
# define SECURE_PROT_EXEC 0
@ -65,7 +74,7 @@
#endif
#if defined(XMRIG_OS_LINUX) || (!defined(XMRIG_OS_APPLE) && !defined(__FreeBSD__) && !defined(__DragonFly__))
#if defined(XMRIG_OS_LINUX) || (!defined(XMRIG_OS_APPLE) && !defined(XMRIG_OS_FREEBSD))
static inline int hugePagesFlag(size_t size)
{
return (static_cast<int>(log2(size)) & MAP_HUGE_MASK) << MAP_HUGE_SHIFT;
@ -135,7 +144,7 @@ void *xmrig::VirtualMemory::allocateExecutableMemory(size_t size, bool hugePages
# ifdef XMRIG_ARM
pthread_jit_write_protect_np(false);
# endif
# elif defined(__FreeBSD__) || defined(__DragonFly__)
# elif defined(XMRIG_OS_FREEBSD)
void *mem = nullptr;
if (hugePages) {
@ -168,7 +177,7 @@ void *xmrig::VirtualMemory::allocateLargePagesMemory(size_t size)
{
# 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__) || defined(__DragonFly__)
# elif defined(XMRIG_OS_FREEBSD)
void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_ALIGNED_SUPER | MAP_PREFAULT_READ, -1, 0);
# else
void *mem = mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB | MAP_POPULATE | hugePagesFlag(hugePageSize()), 0, 0);