From bf1d7a3a15a6c090188974bec8ca84eb1903d4f7 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 18 Sep 2021 10:31:37 -0400 Subject: [PATCH] cmake: Don't trust the HAVE_IMMINTRIN_H check on Apple targets. Otherwise universal builds might try to include an Intel-specific header on ARM builds, etc. Fixes #4753. --- include/SDL_config.h.cmake | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake index 7b20a1d68..446c09468 100644 --- a/include/SDL_config.h.cmake +++ b/include/SDL_config.h.cmake @@ -222,7 +222,19 @@ #cmakedefine HAVE_INOTIFY_INIT 1 #cmakedefine HAVE_INOTIFY_INIT1 1 #cmakedefine HAVE_INOTIFY 1 -#cmakedefine HAVE_IMMINTRIN_H 1 + +/* Apple platforms might be building universal binaries, where Intel builds + can use immintrin.h but other architectures can't. */ +#ifdef __APPLE__ +# if defined(__has_include) && (defined(__i386__) || defined(__x86_64)) +# if __has_include() +# define HAVE_IMMINTRIN_H 1 +# endif +# endif +#else /* non-Apple platforms can use the normal CMake check for this. +# cmakedefine HAVE_IMMINTRIN_H 1 +#endif + #cmakedefine HAVE_LIBUDEV_H 1 #cmakedefine HAVE_LIBSAMPLERATE_H 1 #cmakedefine HAVE_LIBDECOR_H 1