From: Maamoun TK Date: Mon, 20 Jul 2020 16:18:35 +0000 (+0300) Subject: Add AIX to cpu detection X-Git-Tag: nettle_3.7rc1~76^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0e6f97b29948ecf46a0a0a5921c42c3bc152be3;p=thirdparty%2Fnettle.git Add AIX to cpu detection --- diff --git a/fat-ppc.c b/fat-ppc.c index 7198e2dd..9b8022d7 100644 --- a/fat-ppc.c +++ b/fat-ppc.c @@ -39,10 +39,17 @@ #include #include #include -#if defined(__FreeBSD__) && __FreeBSD__ < 12 -#include -#else + +#if defined(_AIX) +#include +#elif defined(__linux__) +#include +#elif defined(__FreeBSD__) +#if __FreeBSD__ >= 12 #include +#else +#include +#endif #endif #include "nettle-types.h" @@ -64,19 +71,23 @@ struct ppc_features static void get_ppc_features (struct ppc_features *features) { +#if defined(_AIX) && defined(__power_8_andup) + features->have_crypto_ext = __power_8_andup() != 0 ? 1 : 0; +#else unsigned long hwcap2 = 0; -#if defined(__FreeBSD__) -#if __FreeBSD__ < 12 +#if defined(__linux__) + hwcap2 = getauxval(AT_HWCAP2); +#elif defined(__FreeBSD__) +#if __FreeBSD__ >= 12 + elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2)); +#else size_t len = sizeof(hwcap2); sysctlbyname("hw.cpu_features2", &hwcap2, &len, NULL, 0); -#else - elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2)); #endif -#else - hwcap2 = getauxval(AT_HWCAP2); #endif features->have_crypto_ext = (hwcap2 & PPC_FEATURE2_VEC_CRYPTO) == PPC_FEATURE2_VEC_CRYPTO ? 1 : 0; +#endif } DECLARE_FAT_FUNC(_nettle_aes_encrypt, aes_crypt_internal_func)