aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch
blob: ecb3a9d32e08fc0b12256c815077a49aa3fcfb44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>

diff -ruN mpeg2dec-0.4.1-orig/configure.in mpeg2dec-0.4.1/configure.in
--- mpeg2dec-0.4.1-orig/configure.in	2010-09-14 20:55:42.399687663 +0800
+++ mpeg2dec-0.4.1/configure.in	2010-09-14 20:56:43.403204648 +0800
@@ -75,11 +75,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)],