1Add new method to judge whether <altivec.h> is needed 2 3The original logic will use "typedef vector int t;" to judge 4whether <altivec.h> is needed. altivec.h contains the following 5statement: 6 7 #if !defined(__APPLE_ALTIVEC__) 8 #define vector __vector 9 #define pixel __pixel 10 #define bool 11 #endif 12 13In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither 14as vector, pixel, and bool. In order to make "typedef vector int t;" 15pass the compilation, we need to include altivec.h. 16 17However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler, 18so as vector, pixel, and bool. We could not judge whether 19altivec.h is needed by "typedef vector int t;". 20Here we include another statement "int tmp = __CR6_EQ;", in 21which __CR6_EQ is defined in altivec.h. 22 23Upstream-Status: Pending 24 25Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> 26 27diff -ruN a/configure.in b/configure.in 28--- a/configure.ac 2010-09-14 20:55:42.399687663 +0800 29+++ b/configure.ac 2010-09-14 20:56:43.403204648 +0800 30@@ -79,11 +79,11 @@ 31 CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS" 32 AC_MSG_CHECKING([if <altivec.h> is needed]) 33 AC_TRY_COMPILE([], 34- [typedef vector int t; 35+ [typedef vector int t; int tmp = __CR6_EQ; 36 vec_ld(0, (unsigned char *)0);], 37 [have_altivec=yes; AC_MSG_RESULT(no)], 38 [AC_TRY_COMPILE([#include <altivec.h>], 39- [typedef vector int t; vec_ld(0, (unsigned char *)0);], 40+ [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);], 41 [AC_DEFINE([HAVE_ALTIVEC_H],, 42 [Define to 1 if you have the <altivec.h> header.]) 43 have_altivec=yes; AC_MSG_RESULT(yes)], 44