5050#endif
5151#if defined(__MACOSX__ ) && (defined(__ppc__ ) || defined(__ppc64__ ))
5252#include <sys/sysctl.h> /* For AltiVec check */
53- #elif defined(__OpenBSD__ ) && defined(__powerpc__ )
53+ #elif defined(__OpenBSD__ ) && defined(__powerpc__ ) && !defined( HAVE_ELF_AUX_INFO )
5454#include <sys/types.h>
5555#include <sys/sysctl.h> /* For AltiVec check */
5656#include <machine/cpu.h>
57- #elif defined(__FreeBSD__ ) && defined(__powerpc__ )
57+ #elif defined(__FreeBSD__ ) && defined(__powerpc__ ) && defined( HAVE_ELF_AUX_INFO )
5858#include <machine/cpu.h>
59- #include <sys/auxv.h>
6059#elif defined(SDL_ALTIVEC_BLITTERS ) && defined(HAVE_SETJMP )
6160#include <signal.h>
6261#include <setjmp.h>
@@ -343,7 +342,12 @@ static int CPU_haveAltiVec(void)
343342{
344343 volatile int altivec = 0 ;
345344#ifndef SDL_CPUINFO_DISABLED
346- #if (defined(__MACOSX__ ) && (defined(__ppc__ ) || defined(__ppc64__ ))) || (defined(__OpenBSD__ ) && defined(__powerpc__ ))
345+ #if (defined(__FreeBSD__ ) || defined(__OpenBSD__ )) && defined(__powerpc__ ) && defined(HAVE_ELF_AUX_INFO )
346+ unsigned long cpufeatures = 0 ;
347+ elf_aux_info (AT_HWCAP , & cpufeatures , sizeof (cpufeatures ));
348+ altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC ;
349+ return altivec ;
350+ #elif (defined(__MACOSX__ ) && (defined(__ppc__ ) || defined(__ppc64__ ))) || (defined(__OpenBSD__ ) && defined(__powerpc__ ))
347351#ifdef __OpenBSD__
348352 int selectors [2 ] = { CTL_MACHDEP , CPU_ALTIVEC };
349353#else
@@ -355,11 +359,6 @@ static int CPU_haveAltiVec(void)
355359 if (0 == error ) {
356360 altivec = (hasVectorUnit != 0 );
357361 }
358- #elif defined(__FreeBSD__ ) && defined(__powerpc__ )
359- unsigned long cpufeatures = 0 ;
360- elf_aux_info (AT_HWCAP , & cpufeatures , sizeof (cpufeatures ));
361- altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC ;
362- return altivec ;
363362#elif defined(__LINUX__ ) && defined(__powerpc__ ) && defined(HAVE_GETAUXVAL )
364363 altivec = getauxval (AT_HWCAP ) & PPC_FEATURE_HAS_ALTIVEC ;
365364#elif defined(SDL_ALTIVEC_BLITTERS ) && defined(HAVE_SETJMP )
@@ -489,8 +488,6 @@ static int CPU_haveNEON(void)
489488 return 0 ; /* assume anything else from Apple doesn't have NEON. */
490489#elif !defined(__arm__ )
491490 return 0 ; /* not an ARM CPU at all. */
492- #elif defined(__OpenBSD__ )
493- return 1 ; /* OpenBSD only supports ARMv7 CPUs that have NEON. */
494491#elif defined(HAVE_ELF_AUX_INFO )
495492 unsigned long hasneon = 0 ;
496493 if (elf_aux_info (AT_HWCAP , (void * )& hasneon , (int )sizeof (hasneon )) != 0 ) {
@@ -527,6 +524,8 @@ static int CPU_haveNEON(void)
527524 }
528525 return 0 ;
529526 }
527+ #elif defined(__OpenBSD__ )
528+ return 1 ; /* OpenBSD only supports ARMv7 CPUs that have NEON. */
530529#else
531530#warning SDL_HasNEON is not implemented for this ARM platform. Write me.
532531 return 0 ;
0 commit comments