瀏覽代碼

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?
Sam Lantinga 6 年之前
父節點
當前提交
ac15de18bd
共有 1 個文件被更改,包括 2 次插入5 次删除
  1. 2 5
      include/SDL_cpuinfo.h

+ 2 - 5
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>