diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-02-23 18:36:04 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-02-24 16:30:41 -0500 |
commit | 5eb4c12a79b3017ec6cc22ab756f53f225731533 (patch) | |
tree | 0de51a89127a38d08a72b575c1a7cff0bf55d633 | |
parent | 350e231b3f01d6f82a2fdc7d9a9945234c404d0a (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.ac | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index f39f4373..cca4d16e 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); |