From: Anton Mitrofanov <BugMaster@narod.ru>
Date: Wed, 30 Sep 2015 22:02:16 +0000 (+0300)
Subject: ppc: Add detection of AltiVec support for FreeBSD
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=75992107adcc8317ba2888e3957a7d56f16b5cd4;p=libx264

ppc: Add detection of AltiVec support for FreeBSD

Patch from FreeBSD ports.
---

diff --git a/common/cpu.c b/common/cpu.c
index e311bab1..44231445 100644
--- a/common/cpu.c
+++ b/common/cpu.c
@@ -318,7 +318,7 @@ uint32_t x264_cpu_detect( void )
 
 #elif ARCH_PPC
 
-#if SYS_MACOSX || SYS_OPENBSD
+#if SYS_MACOSX || SYS_OPENBSD || SYS_FREEBSD
 #include <sys/sysctl.h>
 uint32_t x264_cpu_detect( void )
 {
@@ -326,12 +326,16 @@ uint32_t x264_cpu_detect( void )
     uint32_t cpu = 0;
 #if SYS_OPENBSD
     int      selectors[2] = { CTL_MACHDEP, CPU_ALTIVEC };
-#else
+#elif SYS_MACOSX
     int      selectors[2] = { CTL_HW, HW_VECTORUNIT };
 #endif
     int      has_altivec = 0;
     size_t   length = sizeof( has_altivec );
+#if SYS_MACOSX || SYS_OPENBSD
     int      error = sysctl( selectors, 2, &has_altivec, &length, NULL, 0 );
+#else
+    int      error = sysctlbyname( "hw.altivec", &has_altivec, &length, NULL, 0 );
+#endif
 
     if( error == 0 && has_altivec != 0 )
         cpu |= X264_CPU_ALTIVEC;