Fix build on FreeBSD aarch64

This commit is contained in:
mikael 2021-05-16 11:10:24 +02:00
parent d82e100e30
commit 7599c95dd7

View file

@ -26,11 +26,14 @@
#include <thread> #include <thread>
#if __ARM_FEATURE_CRYPTO && !defined(__APPLE__) #if __ARM_FEATURE_CRYPTO && !(defined(__APPLE__) || defined(__FreeBSD__))
# include <sys/auxv.h> # include <sys/auxv.h>
# include <asm/hwcap.h> # include <asm/hwcap.h>
#endif #endif
#if defined (__FreeBSD__)
#include <machine/armreg.h>
#endif
#include "backend/cpu/platform/BasicCpuInfo.h" #include "backend/cpu/platform/BasicCpuInfo.h"
#include "3rdparty/rapidjson/document.h" #include "3rdparty/rapidjson/document.h"
@ -62,8 +65,14 @@ xmrig::BasicCpuInfo::BasicCpuInfo() :
# endif # endif
# if __ARM_FEATURE_CRYPTO # if __ARM_FEATURE_CRYPTO
# if !defined(__APPLE__) # if !(defined(__APPLE__) || defined(__FreeBSD__))
m_flags.set(FLAG_AES, getauxval(AT_HWCAP) & HWCAP_AES); m_flags.set(FLAG_AES, getauxval(AT_HWCAP) & HWCAP_AES);
# elif defined(__FreeBSD__)
uint64_t id_aa64isar0;
id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_BASE) {
m_flags.set(FLAG_AES, true);
}
# else # else
m_flags.set(FLAG_AES, true); m_flags.set(FLAG_AES, true);
# endif # endif