summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2012-02-23 18:36:04 -0500
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-02-24 16:30:41 -0500
commit5eb4c12a79b3017ec6cc22ab756f53f225731533 (patch)
tree0de51a89127a38d08a72b575c1a7cff0bf55d633
parent350e231b3f01d6f82a2fdc7d9a9945234c404d0a (diff)
Disable MMX when Clang is being used.
There are several issues with the Clang compiler and pixman-mmx.c: - When not optimizing, it doesn't seem to recognize that an argument to an __always_inline__ function is compile-time constant. This results in this error being produced: fatal error: error in backend: Invalid operand for inline asm constraint 'K'! - This inline assembly: asm ("pmulhuw %1, %0\n\t" : "+y" (__A) : "y" (__B) ); results in fatal error: error in backend: Unsupported asm: input constraint with a matching output constraint of incompatible type! So disable MMX when the compiler is Clang.
-rw-r--r--configure.ac3
1 files changed, 3 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index f39f437..cca4d16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -294,6 +294,9 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4))
#error "Need GCC >= 3.4 for MMX intrinsics"
#endif
+#if defined(__clang__)
+#error "clang chokes on the inline assembly in pixman-mmx.c"
+#endif
#include <mmintrin.h>
int main () {
__m64 v = _mm_cvtsi32_si64 (1);