Bug 98038 - [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
Summary: [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Qt (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Milian Wolff
URL:
Keywords:
Depends on:
Blocks: 74040
  Show dependency treegraph
 
Reported: 2012-10-01 08:50 PDT by Milian Wolff
Modified: 2012-11-13 13:38 PST (History)
2 users (show)

See Also:


Attachments
Patch (1.54 KB, patch)
2012-10-01 09:09 PDT, Milian Wolff
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Milian Wolff 2012-10-01 08:50:19 PDT
QtWebKit for QNX fails to compile with enabled 3D rendering:

qcc -Vgcc_ntoarmv7le -c -Wno-psabi -lang-c++ -g -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -D_REENTRANT -DQT_NO_CLIPBOARD -DSQLITE_CORE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_OMIT_COMPLETE -DQT_OPENGL_SHIMS=1 -DBUILDING_QT__=1 -DENABLE_3D_RENDERING=1 -DENABLE_BLOB=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_IMAGE_SET=1 -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_STICKY_POSITION=1 -DENABLE_DATALIST_ELEMENT=1 -DENABLE_DETAILS_ELEMENT=1 -DENABLE_FAST_MOBILE_SCROLLING=1 -DENABLE_FILTERS=1 -DENABLE_FTPDIR=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_GESTURE_EVENTS=1 -DENABLE_ICONDATABASE=1 -DENABLE_IFRAME_SEAMLESS=1 -DENABLE_INPUT_TYPE_COLOR=1 -DENABLE_INSPECTOR=1 -DENABLE_INSPECTOR_SERVER=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_LEGACY_NOTIFICATIONS=1 -DENABLE_LEGACY_VIEWPORT_ADAPTION=1 -DENABLE_LEGACY_VENDOR_PREFIXES=1 -DENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1 -DENABLE_METER_ELEMENT=1 -DENABLE_NOTIFICATIONS=1 -DENABLE_PAGE_VISIBILITY_API=1 -DENABLE_PROGRESS_ELEMENT=1 -DENABLE_REQUEST_ANIMATION_FRAME=1 -DENABLE_SHARED_WORKERS=1 -DENABLE_SMOOTH_SCROLLING=1 -DENABLE_SQL_DATABASE=1 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_TOUCH_ADJUSTMENT=1 -DENABLE_TOUCH_EVENTS=1 -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1 -DWTF_USE_TILED_BACKING_STORE=1 -DHAVE_QTQUICK=1 -DHAVE_QTPRINTSUPPORT=1 -DHAVE_QSTYLE=1 -DHAVE_QTTESTLIB=1 -DWTF_USE_ZLIB=1 -DPLUGIN_ARCHITECTURE_UNSUPPORTED=1 -DWTF_USE_3D_GRAPHICS=1 -DENABLE_WEBGL=1 -DENABLE_CSS_SHADERS=1 -DENABLE_TOUCH_SLIDER=1 -DENABLE_ACCELERATED_2D_CANVAS=0 -DENABLE_ANIMATION_API=0 -DENABLE_BATTERY_STATUS=0 -DENABLE_CSP_NEXT=0 -DENABLE_CSS_GRID_LAYOUT=0 -DENABLE_CSS_HIERARCHIES=0 -DENABLE_CSS_IMAGE_ORIENTATION=0 -DENABLE_CSS_IMAGE_RESOLUTION=0 -DENABLE_CSS_VARIABLES=0 -DENABLE_CSS3_TEXT_DECORATION=0 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATAGRID=0 -DENABLE_DATA_TRANSFER_ITEMS=0 -DENABLE_DEVICE_ORIENTATION=0 -DENABLE_DIRECTORY_UPLOAD=0 -DENABLE_DOWNLOAD_ATTRIBUTE=0 -DENABLE_FILE_SYSTEM=0 -DENABLE_GAMEPAD=0 -DENABLE_GEOLOCATION=0 -DENABLE_HIGH_DPI_CANVAS=0 -DENABLE_INDEXED_DATABASE=0 -DENABLE_INPUT_SPEECH=0 -DENABLE_INPUT_TYPE_DATE=0 -DENABLE_INPUT_TYPE_DATETIME=0 -DENABLE_INPUT_TYPE_DATETIMELOCAL=0 -DENABLE_INPUT_TYPE_MONTH=0 -DENABLE_INPUT_TYPE_TIME=0 -DENABLE_INPUT_TYPE_WEEK=0 -DENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 -DENABLE_LINK_PREFETCH=0 -DENABLE_LINK_PRERENDER=0 -DENABLE_MATHML=0 -DENABLE_MEDIA_SOURCE=0 -DENABLE_MEDIA_STATISTICS=0 -DENABLE_MEDIA_STREAM=0 -DENABLE_MHTML=0 -DENABLE_MICRODATA=0 -DENABLE_MUTATION_OBSERVERS=0 -DENABLE_NAVIGATOR_CONTENT_UTILS=0 -DENABLE_NETSCAPE_PLUGIN_API=0 -DENABLE_NETWORK_INFO=0 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_QUOTA=0 -DENABLE_SCRIPTED_SPEECH=0 -DENABLE_SHADOW_DOM=0 -DENABLE_STYLE_SCOPED=0 -DENABLE_SVG_DOM_OBJC_BINDINGS=0 -DENABLE_TEXT_AUTOSIZING=0 -DENABLE_TEXT_NOTIFICATIONS_ONLY=0 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_UNDO_MANAGER=0 -DENABLE_VIBRATION=0 -DENABLE_VIDEO=0 -DENABLE_VIDEO_TRACK=0 -DENABLE_WEB_AUDIO=0 -DENABLE_XSLT=0 -DBUILDING_WebCore -DBUILDING_WEBKIT -DQT_ASCII_CAST_WARNINGS -DSTATICALLY_LINKED_WITH_ANGLE -DSTATICALLY_LINKED_WITH_JavaScriptCore -DSTATICALLY_LINKED_WITH_WTF -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/home/milian/projects/qt5/install-qnx650/mkspecs/qnx-armv7le-qcc -I/home/milian/projects/qt5/qtwebkit/Source/WebCore -I. -I/home/milian/projects/qt5/qtwebkit/Source/WebCore -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/filesystem -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/geolocation -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/indexeddb -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/navigatorcontentutils -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/notifications -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/quota -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/webaudio -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/webdatabase -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/Modules/websockets -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/accessibility -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bindings -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bindings/generic -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bridge -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bridge/qt -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/css -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/dom -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/dom/default -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/editing -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/fileapi -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/history -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html/canvas -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html/parser -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html/shadow -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/html/track -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/inspector -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/loader -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/loader/appcache -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/loader/archive -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/loader/cache -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/loader/icon -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/mathml -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/page -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/page/animation -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/page/qt -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/page/scrolling -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/animation -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/audio -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/filters -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/filters/arm -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/opengl -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/opentype -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/qt -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/surfaces -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/texmap -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/transforms -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders/bmp -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders/ico -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders/gif -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders/jpeg -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders/png -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/image-decoders/webp -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/leveldb -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/mock -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/network -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/network/qt -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/qt -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/sql -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/text -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/text/transcoder -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/plugins -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/rendering -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/rendering/mathml -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/rendering/style -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/rendering/svg -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/storage -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/svg -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/svg/animation -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/svg/graphics -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/svg/graphics/filters -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/svg/properties -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/testing -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/websockets -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/workers -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/xml -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/xml/parser -I/home/milian/projects/qt5/qtwebkit/Source/ThirdParty -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bridge/jsc -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bindings/js -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/bridge/c -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/testing/js -Igenerated -I/home/milian/projects/qt5/qtbase/src/3rdparty/sqlite -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/gpu -I/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/gpu -I/home/milian/projects/qt5/qtwebkit/Source -I/home/milian/projects/qt5/build-qnx650/qtwebkit/Source/include -I/home/milian/projects/qt5/install-qnx650/include -I/home/milian/projects/qt5/install-qnx650/include/QtScript -I/home/milian/projects/qt5/qtwebkit/Source/ThirdParty/ANGLE/include/GLSLANG -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore -I/home/milian/projects/qt5/qtwebkit/Source -I/home/milian/projects/qt5/qtwebkit/Source/WTF -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/assembler -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/bytecode -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/bytecompiler -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/heap -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/dfg -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/debugger -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/disassembler -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/interpreter -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/jit -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/llint -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/parser -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/profiler -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/runtime -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/tools -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/yarr -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/API -I/home/milian/projects/qt5/qtwebkit/Source/JavaScriptCore/ForwardingHeaders -I../JavaScriptCore/generated -I/home/milian/projects/qt5/qtwebkit/Source/WTF -I/home/milian/projects/qt5/install-qnx650/include/QtSql -I/home/milian/projects/qt5/install-qnx650/include/QtNetwork -I/home/milian/projects/qt5/install-qnx650/include/QtGui -I/home/milian/projects/qt5/install-qnx650/include/QtGui/5.0.0 -I/home/milian/projects/qt5/install-qnx650/include/QtGui/5.0.0/QtGui -I/home/milian/projects/qt5/install-qnx650/include/QtCore -I/home/milian/projects/qt5/install-qnx650/include/QtCore/5.0.0 -I/home/milian/projects/qt5/install-qnx650/include/QtCore/5.0.0/QtCore -I/opt/qnx650/target/qnx6/usr/include -I/opt/qnx650/target/qnx6/usr/include/freetype2 -I. -o obj/debug/home/milian/projects/qt5/build-qnx650/qtwebkit/Source/WebCore/generated/JSDirectoryReader.o generated/JSDirectoryReader.cpp
/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/OpenGLShims.cpp: In function 'bool WebCore::initializeOpenGLShims()':
/home/milian/projects/qt5/qtwebkit/Source/WebCore/platform/graphics/OpenGLShims.cpp:192: error: invalid conversion from 'void (*)(GLuint, GLsizei, const GLchar* const*, const GLint*)' to 'void (*)(GLuint, GLsizei, const char**, const GLint*)'

The reason here is that WebKit defines

typedef void (GLAPIENTRY *glShaderSourceType) (GLuint, GLsizei, const char**, const GLint*);

which is compatible to the Desktop OpenGL and older OpenGL 2 ES versions of glShaderSource. Yet recent OpenGL 2 ES versions have a different signature for this method:


typedef void (GLAPIENTRY *glShaderSourceType) (GLuint, GLsizei, const char* const*, const GLint*);

See e.g. http://www.khronos.org/opengles/sdk/docs/man/xhtml/glShaderSource.xml (old documentation, same signature as used by webkit)
and then compare to the actual gl2.h header: http://www.khronos.org/registry/gles/api/2.0/gl2.h - it contains:

GL_APICALL void         GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
Comment 1 Milian Wolff 2012-10-01 09:09:28 PDT
Created attachment 166489 [details]
Patch
Comment 2 Simon Hausmann 2012-10-21 23:23:42 PDT
Comment on attachment 166489 [details]
Patch

Ok, I see the need for the cast ;( but would it make sense to adjust the prototype in OpenGLShims.h at the same time to confirm to the latest spec?
Comment 3 Milian Wolff 2012-11-09 04:05:32 PST
Simon, I am not acquainted with OpenGL. I think that you should decide what to do with the OpenGLShims.h file. Could we still merge this patch though?
Comment 4 WebKit Review Bot 2012-11-13 13:37:59 PST
Comment on attachment 166489 [details]
Patch

Clearing flags on attachment: 166489

Committed r134476: <http://trac.webkit.org/changeset/134476>
Comment 5 WebKit Review Bot 2012-11-13 13:38:02 PST
All reviewed patches have been landed.  Closing bug.