Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | Add new method to judge whether <altivec.h> is needed |
| 2 | |
| 3 | The original logic will use "typedef vector int t;" to judge |
| 4 | whether <altivec.h> is needed. altivec.h contains the following |
| 5 | statement: |
| 6 | |
| 7 | #if !defined(__APPLE_ALTIVEC__) |
| 8 | #define vector __vector |
| 9 | #define pixel __pixel |
| 10 | #define bool |
| 11 | #endif |
| 12 | |
| 13 | In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither |
| 14 | as vector, pixel, and bool. In order to make "typedef vector int t;" |
| 15 | pass the compilation, we need to include altivec.h. |
| 16 | |
| 17 | However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler, |
| 18 | so as vector, pixel, and bool. We could not judge whether |
| 19 | altivec.h is needed by "typedef vector int t;". |
| 20 | Here we include another statement "int tmp = __CR6_EQ;", in |
| 21 | which __CR6_EQ is defined in altivec.h. |
| 22 | |
| 23 | Upstream-Status: Pending |
| 24 | |
| 25 | Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> |
| 26 | |
| 27 | diff -ruN mpeg2dec-0.4.1-orig/configure.in mpeg2dec-0.4.1/configure.in |
| 28 | --- mpeg2dec-0.4.1-orig/configure.in 2010-09-14 20:55:42.399687663 +0800 |
| 29 | +++ mpeg2dec-0.4.1/configure.in 2010-09-14 20:56:43.403204648 +0800 |
| 30 | @@ -75,11 +75,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)], |