From 98ca493a989c94a0456116251311a633c9284601 Mon Sep 17 00:00:00 2001 From: q66 Date: Fri, 11 Oct 2019 16:51:55 +0200 Subject: [PATCH] blender: fix ftbfs on big endian ppc64 systems [ci skip] --- srcpkgs/blender/patches/altivec-all.patch | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 srcpkgs/blender/patches/altivec-all.patch diff --git a/srcpkgs/blender/patches/altivec-all.patch b/srcpkgs/blender/patches/altivec-all.patch new file mode 100644 index 00000000000..115e1ea6fd0 --- /dev/null +++ b/srcpkgs/blender/patches/altivec-all.patch @@ -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 /* 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