summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2011-10-05 22:54:36 -0400
committerMatt Turner <mattst88@gmail.com>2011-10-06 17:52:12 -0400
commit0a34277180d29f471a2554afc2e2b682fee33c79 (patch)
tree272a95514f3ee87bae9f11e424d2e289a89a7c97
parent879b7c21e45b092272e689e05dc867f6260e258f (diff)
Make sure iwMMXt is only detected on ARM
iwMMXt is incorrectly detected on x86 and amd64. This happens because the test uses standard _mm_* intrinsic functions which it compiles with -march=iwmmxt, but when the user has set CFLAGS=-march=k8 for instance, no error is generated from -march=iwmmxt, even though it's not a valid flag on x86/amd64. Passing CFLAGS=-march=native does not override the -march=iwmmxt flag though, which is why it wasn't noticed before. So, just #error out in the test if the __arm__ preprocessor directive isn't defined. Fixes https://bugs.gentoo.org/show_bug.cgi?id=385179 Signed-off-by: Matt Turner <mattst88@gmail.com>
-rw-r--r--configure.ac3
1 files changed, 3 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 481d0bb..471a127 100644
--- a/configure.ac
+++ b/configure.ac
@@ -552,6 +552,9 @@ AC_MSG_CHECKING(whether to use ARM IWMMXT intrinsics)
xserver_save_CFLAGS=$CFLAGS
CFLAGS="$IWMMXT_CFLAGS $CFLAGS"
AC_COMPILE_IFELSE([
+#ifndef __arm__
+#error "IWMMXT is only available on ARM"
+#endif
#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 3 && __GNUC_MINOR__ < 6))
#error "Need GCC >= 4.6 for IWMMXT intrinsics"
#endif