This is necessary because otherwise conflicts are introduced in C++ code that includes this. The header itself does not rely on the macros. The issue is not visible on little endian because they undef the macros somewhere else. --- a/3rdparty/include/opencl/1.2/CL/cl_platform.h +++ b/3rdparty/include/opencl/1.2/CL/cl_platform.h @@ -332,6 +332,9 @@ typedef unsigned int cl_GLenum; /* Define basic vector types */ #if defined( __VEC__ ) #include /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */ + #undef vector + #undef pixel + #undef bool typedef __vector unsigned char __cl_uchar16; typedef __vector signed char __cl_char16; typedef __vector unsigned short __cl_ushort8;