diff --git a/src/configs/hardware-config.c b/src/configs/hardware-config.c --- a/src/configs/hardware-config.c +++ b/src/configs/hardware-config.c @@ -46,6 +46,9 @@ #if XNN_ARCH_PPC64 #include + #if defined(__FreeBSD__) + #include + #endif #endif #if XNN_ARCH_WASM || XNN_ARCH_WASMSIMD || XNN_ARCH_WASMRELAXEDSIMD @@ -304,8 +307,14 @@ #endif #if XNN_ARCH_PPC64 - const unsigned long HWCAPs = getauxval(AT_HWCAP); - const unsigned long HWCAPs_2 = getauxval(AT_HWCAP2); + #if defined(__FreeBSD__) + unsigned long HWCAPs = 0, HWCAPs_2 = 0; + elf_aux_info(AT_HWCAP, &HWCAPs, sizeof(HWCAPs)); + elf_aux_info(AT_HWCAP2, &HWCAPs_2, sizeof(HWCAPs_2)); + #else + const unsigned long HWCAPs = getauxval(AT_HWCAP); + const unsigned long HWCAPs_2 = getauxval(AT_HWCAP2); + #endif if (HWCAPs & PPC_FEATURE_HAS_VSX) { set_arch_flag(xnn_arch_vsx, 1); }