blender: fix ftbfs on big endian ppc64 systems

[ci skip]
This commit is contained in:
q66 2019-10-11 16:51:55 +02:00 committed by Helmut Pozimski
parent 1418336d7b
commit 9dfd8cacf5
1 changed files with 32 additions and 0 deletions

View File

@ -0,0 +1,32 @@
This applies a better workaround for C++ type conflicts
in AltiVec/C++, allowing it to build on BE ppc(64).
--- a/extern/clew/include/clew.h
+++ b/extern/clew/include/clew.h
@@ -370,15 +370,18 @@ typedef unsigned int cl_GLenum;
/* Define basic vector types */
/* Workaround for ppc64el platform: conflicts with bool from C++. */
-#if defined( __VEC__ ) && !(defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+#if defined(__VEC__)
#include <altivec.h> /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
- typedef vector unsigned char __cl_uchar16;
- typedef vector signed char __cl_char16;
- typedef vector unsigned short __cl_ushort8;
- typedef vector signed short __cl_short8;
- typedef vector unsigned int __cl_uint4;
- typedef vector signed int __cl_int4;
- typedef vector float __cl_float4;
+ #undef vector
+ #undef bool
+ #undef pixel
+ typedef __vector unsigned char __cl_uchar16;
+ typedef __vector signed char __cl_char16;
+ typedef __vector unsigned short __cl_ushort8;
+ typedef __vector signed short __cl_short8;
+ typedef __vector unsigned int __cl_uint4;
+ typedef __vector signed int __cl_int4;
+ typedef __vector float __cl_float4;
#define __CL_UCHAR16__ 1
#define __CL_CHAR16__ 1
#define __CL_USHORT8__ 1