There are two issues: 1) PFNGL* 2) GLchar not typedef'd for Harmattan so a workaround needs to be added in here, just like it was done for the QtBase project. In file included from platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:37: platform/graphics/opengl/Extensions3DOpenGLES.h:110: error: 'PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:111: error: 'PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:112: error: 'PFNGLBINDVERTEXARRAYOESPROC' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:113: error: 'PFNGLDELETEVERTEXARRAYSOESPROC' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:114: error: 'PFNGLGENVERTEXARRAYSOESPROC' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:115: error: 'PFNGLISVERTEXARRAYOESPROC' does not name a type platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'void WebCore::GraphicsContext3D::compileShader(Platform3DObject)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:480: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:482: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'bool WebCore::GraphicsContext3D::getActiveAttrib(Platform3DObject, GC3Duint, WebCore::ActiveInfo&)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:636: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:639: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'bool WebCore::GraphicsContext3D::getActiveUniform(Platform3DObject, GC3Duint, WebCore::ActiveInfo&)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:660: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:664: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'WTF::String WebCore::GraphicsContext3D::getProgramInfoLog(Platform3DObject)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1119: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1121: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'WTF::String WebCore::GraphicsContext3D::getShaderInfoLog(Platform3DObject)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1186: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1188: error: request for member 'get' in 'info', which is of non-class type 'int' make[3]: *** [obj/release/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.o] Error 1 make[3]: Leaving directory `/home/lpapp/qt5-beta1/qt5-webkit/qt5-webkit/Source/WebCore' make[2]: *** [sub-Target-pri-make_first-ordered] Error 2 make[2]: Leaving directory `/home/lpapp/qt5-beta1/qt5-webkit/qt5-webkit/Source/WebCore' make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2 make[1]: Leaving directory `/home/lpapp/qt5-beta1/qt5-webkit/qt5-webkit' dh_auto_build: make -j1 returned exit code 2 make: *** [build] Error 9
Created attachment 164474 [details] Initial fixes
As suggested by Simon over IRC, including qopengles2ext.h from Extensions3DOpenGLES.h helped solve the issue, but just including it causes the build to fail like in https://bugs.webkit.org/show_bug.cgi?id=91030. This is due to qopengles2ext.h defining two of the PFN* extension functions with a PROC suffix (like Khrono's version) while WebKit's own ANGLE copy does not. So, in the first patch are the initial changes to make it past this problem.
Wouldn't a qopengl.h include be enough? That would already have the typedef for the GLchar, and would also include the qopengles2ext.h header.
Part of the problem is that the qopengles2ext.h header has what I believe is a bug. See also https://codereview.qt-project.org/#change,35004 This can be worked around though by avoiding the inclusion of gl2ext.h.
Created attachment 164532 [details] Patch
Comment on attachment 164532 [details] Patch Clearing flags on attachment: 164532 Committed r128877: <http://trac.webkit.org/changeset/128877>
All reviewed patches have been landed. Closing bug.