forked from brl/citadel
44 lines
1.6 KiB
Diff
44 lines
1.6 KiB
Diff
Add new method to judge whether <altivec.h> is needed
|
|
|
|
The original logic will use "typedef vector int t;" to judge
|
|
whether <altivec.h> is needed. altivec.h contains the following
|
|
statement:
|
|
|
|
#if !defined(__APPLE_ALTIVEC__)
|
|
#define vector __vector
|
|
#define pixel __pixel
|
|
#define bool
|
|
#endif
|
|
|
|
In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither
|
|
as vector, pixel, and bool. In order to make "typedef vector int t;"
|
|
pass the compilation, we need to include altivec.h.
|
|
|
|
However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler,
|
|
so as vector, pixel, and bool. We could not judge whether
|
|
altivec.h is needed by "typedef vector int t;".
|
|
Here we include another statement "int tmp = __CR6_EQ;", in
|
|
which __CR6_EQ is defined in altivec.h.
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
|
|
|
|
diff -ruN a/configure.in b/configure.in
|
|
--- a/configure.ac 2010-09-14 20:55:42.399687663 +0800
|
|
+++ b/configure.ac 2010-09-14 20:56:43.403204648 +0800
|
|
@@ -79,11 +79,11 @@
|
|
CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
|
|
AC_MSG_CHECKING([if <altivec.h> is needed])
|
|
AC_TRY_COMPILE([],
|
|
- [typedef vector int t;
|
|
+ [typedef vector int t; int tmp = __CR6_EQ;
|
|
vec_ld(0, (unsigned char *)0);],
|
|
[have_altivec=yes; AC_MSG_RESULT(no)],
|
|
[AC_TRY_COMPILE([#include <altivec.h>],
|
|
- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
|
|
+ [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);],
|
|
[AC_DEFINE([HAVE_ALTIVEC_H],,
|
|
[Define to 1 if you have the <altivec.h> header.])
|
|
have_altivec=yes; AC_MSG_RESULT(yes)],
|