Fixed bug 4392 - SDL_cpuinfo.h breaks compilation with C bool type Luke Dashjr Bug 3993 was "fixed" by #undef'ing bool. But this breaks C99's stdbool.h bool too. For example, mpv's build fails with: ../audio/out/ao_sdl.c:35:5: error: unknown type name ?bool? It seems ill-advised to be #undef'ing *anything* here - what if the code including SDL_cpuinfo.h actually wants to use altivec?
diff --git a/include/SDL_cpuinfo.h b/include/SDL_cpuinfo.h
index ee3a47e..ac8263a 100644
--- a/include/SDL_cpuinfo.h
+++ b/include/SDL_cpuinfo.h
@@ -50,12 +50,9 @@
#elif defined(__MINGW64_VERSION_MAJOR)
#include <intrin.h>
#else
-#ifdef __ALTIVEC__
-#if defined(HAVE_ALTIVEC_H) && !defined(__APPLE_ALTIVEC__) && !defined(SDL_DISABLE_ALTIVEC_H)
+/* altivec.h redefining bool causes a number of problems, see bugs 3993 and 4392, so you need to explicitly define SDL_ENABLE_ALTIVEC_H to have it included. */
+#if defined(HAVE_ALTIVEC_H) && defined(__ALTIVEC__) && !defined(__APPLE_ALTIVEC__) && defined(SDL_ENABLE_ALTIVEC_H)
#include <altivec.h>
-#undef pixel
-#undef bool
-#endif
#endif
#if defined(__ARM_NEON__) && !defined(SDL_DISABLE_ARM_NEON_H)
#include <arm_neon.h>