3838#endif
3939#if defined(SDL_PLATFORM_MACOS ) && (defined(__ppc__ ) || defined(__ppc64__ ))
4040#include <sys/sysctl.h> // For AltiVec check
41- #elif defined(SDL_PLATFORM_OPENBSD ) && defined(__powerpc__ )
41+ #elif defined(SDL_PLATFORM_OPENBSD ) && defined(__powerpc__ ) && !defined( HAVE_ELF_AUX_INFO )
4242#include <sys/types.h>
4343#include <sys/sysctl.h> // For AltiVec check
4444#include <machine/cpu.h>
45- #elif defined(SDL_PLATFORM_FREEBSD ) && defined(__powerpc__ )
45+ #elif defined(SDL_PLATFORM_FREEBSD ) && defined(__powerpc__ ) && defined( HAVE_ELF_AUX_INFO )
4646#include <machine/cpu.h>
47- #include <sys/auxv.h>
4847#elif defined(SDL_ALTIVEC_BLITTERS ) && defined(HAVE_SETJMP )
4948#include <signal.h>
5049#include <setjmp.h>
@@ -331,7 +330,12 @@ static int CPU_haveAltiVec(void)
331330{
332331 volatile int altivec = 0 ;
333332#ifndef SDL_CPUINFO_DISABLED
334- #if (defined(SDL_PLATFORM_MACOS ) && (defined(__ppc__ ) || defined(__ppc64__ ))) || (defined(SDL_PLATFORM_OPENBSD ) && defined(__powerpc__ ))
333+ #if (defined(SDL_PLATFORM_FREEBSD ) || defined(SDL_PLATFORM_OPENBSD )) && defined(__powerpc__ ) && defined(HAVE_ELF_AUX_INFO )
334+ unsigned long cpufeatures = 0 ;
335+ elf_aux_info (AT_HWCAP , & cpufeatures , sizeof (cpufeatures ));
336+ altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC ;
337+ return altivec ;
338+ #elif (defined(SDL_PLATFORM_MACOS ) && (defined(__ppc__ ) || defined(__ppc64__ ))) || (defined(SDL_PLATFORM_OPENBSD ) && defined(__powerpc__ ))
335339#ifdef SDL_PLATFORM_OPENBSD
336340 int selectors [2 ] = { CTL_MACHDEP , CPU_ALTIVEC };
337341#else
@@ -343,11 +347,6 @@ static int CPU_haveAltiVec(void)
343347 if (0 == error ) {
344348 altivec = (hasVectorUnit != 0 );
345349 }
346- #elif defined(SDL_PLATFORM_FREEBSD ) && defined(__powerpc__ )
347- unsigned long cpufeatures = 0 ;
348- elf_aux_info (AT_HWCAP , & cpufeatures , sizeof (cpufeatures ));
349- altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC ;
350- return altivec ;
351350#elif defined(SDL_PLATFORM_LINUX ) && defined(__powerpc__ ) && defined(HAVE_GETAUXVAL )
352351 altivec = getauxval (AT_HWCAP ) & PPC_FEATURE_HAS_ALTIVEC ;
353352#elif defined(SDL_ALTIVEC_BLITTERS ) && defined(HAVE_SETJMP )
@@ -483,8 +482,6 @@ static int CPU_haveNEON(void)
483482 return 0 ; // assume anything else from Apple doesn't have NEON.
484483#elif !defined(__arm__ )
485484 return 0 ; // not an ARM CPU at all.
486- #elif defined(SDL_PLATFORM_OPENBSD )
487- return 1 ; // OpenBSD only supports ARMv7 CPUs that have NEON.
488485#elif defined(HAVE_ELF_AUX_INFO )
489486 unsigned long hasneon = 0 ;
490487 if (elf_aux_info (AT_HWCAP , (void * )& hasneon , (int )sizeof (hasneon )) != 0 ) {
@@ -519,6 +516,8 @@ static int CPU_haveNEON(void)
519516 }
520517 return 0 ;
521518 }
519+ #elif defined(SDL_PLATFORM_OPENBSD )
520+ return 1 ; // OpenBSD only supports ARMv7 CPUs that have NEON.
522521#elif defined(SDL_PLATFORM_EMSCRIPTEN )
523522 return 0 ;
524523#else
0 commit comments