From: Søren Sandmann Pedersen Date: Thu, 23 Feb 2012 23:36:04 +0000 (-0500) Subject: Disable MMX when Clang is being used. X-Git-Tag: pixman-0.25.2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5eb4c12a79b3017ec6cc22ab756f53f225731533;p=platform%2Fupstream%2Fpixman.git 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. --- 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 int main () { __m64 v = _mm_cvtsi32_si64 (1);