summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Hajdan <phajdan.jr@gentoo.org>2013-03-03 23:46:22 +0000
committerPaweł Hajdan <phajdan.jr@gentoo.org>2013-03-03 23:46:22 +0000
commit6164554d4748df88a78520c3f3a84f3a8f004a11 (patch)
tree2535f94cf85bee05f48ed465c38163b6b83f4e89 /www-client
parentAdded unicode USE-flag to allow for iconv default ucode conversions. Closes b... (diff)
downloadgentoo-2-6164554d4748df88a78520c3f3a84f3a8f004a11.tar.gz
gentoo-2-6164554d4748df88a78520c3f3a84f3a8f004a11.tar.bz2
gentoo-2-6164554d4748df88a78520c3f3a84f3a8f004a11.zip
Fix build with mesa-9.1, bug #455762 by Anthony Parsons.
(Portage version: 2.1.11.50/cvs/Linux i686, signed Manifest commit with key 30427902)
Diffstat (limited to 'www-client')
-rw-r--r--www-client/chromium/ChangeLog8
-rw-r--r--www-client/chromium/chromium-26.0.1410.19.ebuild5
-rw-r--r--www-client/chromium/chromium-27.0.1425.0.ebuild5
-rw-r--r--www-client/chromium/chromium-9999-r1.ebuild4
-rw-r--r--www-client/chromium/files/chromium-mesa-r0.patch241
-rw-r--r--www-client/chromium/files/chromium-mesa-r1.patch241
6 files changed, 497 insertions, 7 deletions
diff --git a/www-client/chromium/ChangeLog b/www-client/chromium/ChangeLog
index 18a4249fdd1d..2b8798aee984 100644
--- a/www-client/chromium/ChangeLog
+++ b/www-client/chromium/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for www-client/chromium
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/ChangeLog,v 1.823 2013/03/01 20:56:02 phajdan.jr Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/ChangeLog,v 1.824 2013/03/03 23:46:22 phajdan.jr Exp $
+
+ 03 Mar 2013; Pawel Hajdan jr <phajdan.jr@gentoo.org>
+ +files/chromium-mesa-r0.patch, chromium-26.0.1410.19.ebuild,
+ chromium-27.0.1425.0.ebuild, chromium-9999-r1.ebuild,
+ +files/chromium-mesa-r1.patch:
+ Fix build with mesa-9.1, bug #455762 by Anthony Parsons.
01 Mar 2013; Pawel Hajdan jr <phajdan.jr@gentoo.org>
+files/chromium-system-ffmpeg-r4.patch:
diff --git a/www-client/chromium/chromium-26.0.1410.19.ebuild b/www-client/chromium/chromium-26.0.1410.19.ebuild
index f849c76b3176..e04bccda0828 100644
--- a/www-client/chromium/chromium-26.0.1410.19.ebuild
+++ b/www-client/chromium/chromium-26.0.1410.19.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-26.0.1410.19.ebuild,v 1.2 2013/03/01 03:30:15 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-26.0.1410.19.ebuild,v 1.3 2013/03/03 23:46:22 phajdan.jr Exp $
EAPI="5"
PYTHON_COMPAT=( python{2_6,2_7} )
@@ -51,7 +51,7 @@ RDEPEND="app-accessibility/speech-dispatcher
>=media-libs/libjpeg-turbo-1.2.0-r1
media-libs/libpng
>=media-libs/libwebp-0.2.0_rc1
- !arm? ( !x86? ( media-libs/mesa[gles2] ) )
+ !arm? ( !x86? ( >=media-libs/mesa-9.1[gles2] ) )
media-libs/opus
media-libs/speex
pulseaudio? ( media-sound/pulseaudio )
@@ -131,6 +131,7 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-ppapi-r0.patch"
epatch "${FILESDIR}/${PN}-gpsd-r0.patch"
+ epatch "${FILESDIR}/${PN}-mesa-r0.patch"
epatch "${FILESDIR}/${PN}-system-v8-r0.patch"
epatch "${FILESDIR}/${PN}-system-ffmpeg-r2.patch"
diff --git a/www-client/chromium/chromium-27.0.1425.0.ebuild b/www-client/chromium/chromium-27.0.1425.0.ebuild
index 803690652e8d..091144edbfb6 100644
--- a/www-client/chromium/chromium-27.0.1425.0.ebuild
+++ b/www-client/chromium/chromium-27.0.1425.0.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-27.0.1425.0.ebuild,v 1.1 2013/03/01 18:01:14 phajdan.jr Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-27.0.1425.0.ebuild,v 1.2 2013/03/03 23:46:22 phajdan.jr Exp $
EAPI="5"
PYTHON_COMPAT=( python{2_6,2_7} )
@@ -52,7 +52,7 @@ RDEPEND="app-accessibility/speech-dispatcher
media-libs/libpng
media-libs/libvpx
>=media-libs/libwebp-0.2.0_rc1
- !arm? ( !x86? ( media-libs/mesa[gles2] ) )
+ !arm? ( !x86? ( >=media-libs/mesa-9.1[gles2] ) )
media-libs/opus
media-libs/speex
pulseaudio? ( media-sound/pulseaudio )
@@ -132,6 +132,7 @@ src_prepare() {
epatch "${FILESDIR}/${PN}-ppapi-r0.patch"
epatch "${FILESDIR}/${PN}-gpsd-r0.patch"
+ epatch "${FILESDIR}/${PN}-mesa-r1.patch"
epatch "${FILESDIR}/${PN}-system-v8-r0.patch"
epatch "${FILESDIR}/${PN}-system-ffmpeg-r4.patch"
diff --git a/www-client/chromium/chromium-9999-r1.ebuild b/www-client/chromium/chromium-9999-r1.ebuild
index b02fa4112d0e..b59e6310a57e 100644
--- a/www-client/chromium/chromium-9999-r1.ebuild
+++ b/www-client/chromium/chromium-9999-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-9999-r1.ebuild,v 1.174 2013/03/01 18:01:14 phajdan.jr Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-client/chromium/chromium-9999-r1.ebuild,v 1.175 2013/03/03 23:46:22 phajdan.jr Exp $
EAPI="5"
PYTHON_COMPAT=( python{2_6,2_7} )
@@ -52,7 +52,7 @@ RDEPEND="app-accessibility/speech-dispatcher
media-libs/libpng
media-libs/libvpx
>=media-libs/libwebp-0.2.0_rc1
- !arm? ( !x86? ( media-libs/mesa[gles2] ) )
+ !arm? ( !x86? ( >=media-libs/mesa-9.1[gles2] ) )
media-libs/opus
media-libs/speex
pulseaudio? ( media-sound/pulseaudio )
diff --git a/www-client/chromium/files/chromium-mesa-r0.patch b/www-client/chromium/files/chromium-mesa-r0.patch
new file mode 100644
index 000000000000..0d99228d790c
--- /dev/null
+++ b/www-client/chromium/files/chromium-mesa-r0.patch
@@ -0,0 +1,241 @@
+Index: gpu/command_buffer/client/gles2_c_lib_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_c_lib_autogen.h b/gpu/command_buffer/client/gles2_c_lib_autogen.h
+index 80a4d230ad4b82abbaa82f2c328286b9d89da329..d56df6fdb0d851125148a1aac0bedbc487320682 100644
+--- a/gpu/command_buffer/client/gles2_c_lib_autogen.h
++++ b/gpu/command_buffer/client/gles2_c_lib_autogen.h
+@@ -355,7 +355,8 @@ void GLES2ShaderBinary(
+ n, shaders, binaryformat, binary, length);
+ }
+ void GLES2ShaderSource(
+- GLuint shader, GLsizei count, const char** str, const GLint* length) {
++ GLuint shader, GLsizei count, const GLchar* const* str,
++ const GLint* length) {
+ gles2::GetGLContext()->ShaderSource(shader, count, str, length);
+ }
+ void GLES2StencilFunc(GLenum func, GLint ref, GLuint mask) {
+Index: gpu/command_buffer/client/gles2_implementation.cc
+diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
+index b6c354819ce5d556ff91f7b5273875c3cec83f7a..600c02f3751a2ab72eed498be7ee0f02e628130d 100644
+--- a/gpu/command_buffer/client/gles2_implementation.cc
++++ b/gpu/command_buffer/client/gles2_implementation.cc
+@@ -1173,7 +1173,7 @@ void GLES2Implementation::VertexAttribDivisorANGLE(
+ }
+
+ void GLES2Implementation::ShaderSource(
+- GLuint shader, GLsizei count, const char** source, const GLint* length) {
++ GLuint shader, GLsizei count, const GLchar* const* source, const GLint* length) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glShaderSource("
+ << shader << ", " << count << ", "
+Index: gpu/command_buffer/client/gles2_implementation_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_implementation_autogen.h b/gpu/command_buffer/client/gles2_implementation_autogen.h
+index febcaf45bb5446393c7785196c9ef4a329438d0f..e4a63822ae6b3b9c950b7f9b05f173ce1ecfdb87 100644
+--- a/gpu/command_buffer/client/gles2_implementation_autogen.h
++++ b/gpu/command_buffer/client/gles2_implementation_autogen.h
+@@ -253,7 +253,7 @@ virtual void ShaderBinary(
+ GLsizei length) OVERRIDE;
+
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str,
++ GLuint shader, GLsizei count, const GLchar* const* str,
+ const GLint* length) OVERRIDE;
+
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
+Index: gpu/command_buffer/client/gles2_interface_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_interface_autogen.h b/gpu/command_buffer/client/gles2_interface_autogen.h
+index b84dd71bd9139ac487a40847ddb746f839cf3593..8aafc7fd45891be4e2aa61f5825c20d0ccd1dc76 100644
+--- a/gpu/command_buffer/client/gles2_interface_autogen.h
++++ b/gpu/command_buffer/client/gles2_interface_autogen.h
+@@ -152,7 +152,8 @@ virtual void ShaderBinary(
+ GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
+ GLsizei length) = 0;
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str, const GLint* length) = 0;
++ GLuint shader, GLsizei count, const GLchar* const* str,
++ const GLint* length) = 0;
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) = 0;
+ virtual void StencilFuncSeparate(
+ GLenum face, GLenum func, GLint ref, GLuint mask) = 0;
+Index: gpu/command_buffer/client/gles2_interface_stub_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_interface_stub_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
+index 3c1c6696b08923142c879aa591b3902339e5874c..80e6c1003ae1be90fcd1a2871ffdde58f7237bff 100644
+--- a/gpu/command_buffer/client/gles2_interface_stub_autogen.h
++++ b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
+@@ -163,7 +163,7 @@ virtual void ShaderBinary(
+ GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
+ GLsizei length) OVERRIDE;
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str,
++ GLuint shader, GLsizei count, const GLchar* const* str,
+ const GLint* length) OVERRIDE;
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
+ virtual void StencilFuncSeparate(
+Index: gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+index dce39c0def3ec52499c712afe1f792809c00db28..f097e8cba8e4d13af9027122a36b93f2ec28ae46 100644
+--- a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
++++ b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+@@ -310,7 +310,7 @@ void GLES2InterfaceStub::ShaderBinary(
+ const void* /* binary */, GLsizei /* length */) {
+ }
+ void GLES2InterfaceStub::ShaderSource(
+- GLuint /* shader */, GLsizei /* count */, const char** /* str */,
++ GLuint /* shader */, GLsizei /* count */, const GLchar* const* /* str */,
+ const GLint* /* length */) {
+ }
+ void GLES2InterfaceStub::StencilFunc(
+Index: gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+index 46cbdccccd0e3e4074b1fd919fc6b91d95fe04a5..da02881f9d180bd26f5a2bad2d4e814a9ca085b3 100644
+--- a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
++++ b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+@@ -163,7 +163,7 @@ virtual void ShaderBinary(
+ GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
+ GLsizei length) OVERRIDE;
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str,
++ GLuint shader, GLsizei count, const GLchar* const* str,
+ const GLint* length) OVERRIDE;
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
+ virtual void StencilFuncSeparate(
+Index: gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+index 8aff42a6711c38b76e8767057b41fa31fe89f168..8f87a40da0f26f0dd71772e5fbcf519c8b02ad12 100644
+--- a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
++++ b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+@@ -570,7 +570,8 @@ void GLES2TraceImplementation::ShaderBinary(
+ }
+
+ void GLES2TraceImplementation::ShaderSource(
+- GLuint shader, GLsizei count, const char** str, const GLint* length) {
++ GLuint shader, GLsizei count, const GLchar* const* str,
++ const GLint* length) {
+ TRACE_EVENT0("gpu", "GLES2Trace::ShaderSource");
+ gl_->ShaderSource(shader, count, str, length);
+ }
+Index: gpu/command_buffer/cmd_buffer_functions.txt
+diff --git a/gpu/command_buffer/cmd_buffer_functions.txt b/gpu/command_buffer/cmd_buffer_functions.txt
+index 2ad875a4aeaf86566c5f0334090f6583468c4781..08d33d963e3450d6fe442b333fb88089b184d86b 100644
+--- a/gpu/command_buffer/cmd_buffer_functions.txt
++++ b/gpu/command_buffer/cmd_buffer_functions.txt
+@@ -103,7 +103,7 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenumRenderBufferTar
+ GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
+ GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+ GL_APICALL void GL_APIENTRY glShaderBinary (GLsizeiNotNegative n, const GLuint* shaders, GLenumShaderBinaryFormat binaryformat, const void* binary, GLsizeiNotNegative length);
+-GL_APICALL void GL_APIENTRY glShaderSource (GLidShader shader, GLsizeiNotNegative count, const char** str, const GLint* length);
++GL_APICALL void GL_APIENTRY glShaderSource (GLidShader shader, GLsizeiNotNegative count, const GLchar* const* str, const GLint* length);
+ GL_APICALL void GL_APIENTRY glStencilFunc (GLenumCmpFunction func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenumFaceType face, GLenumCmpFunction func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
+Index: third_party/khronos/GLES2/gl2.h
+diff --git a/third_party/khronos/GLES2/gl2.h b/third_party/khronos/GLES2/gl2.h
+index edebb8b23a56f6a67bb1ecfe5304bb5b372745e6..7aef573b6af7f4e3c76bdfb741374521b2f1eca4 100644
+--- a/third_party/khronos/GLES2/gl2.h
++++ b/third_party/khronos/GLES2/gl2.h
+@@ -1,7 +1,7 @@
+ #ifndef __gl2_h_
+ #define __gl2_h_
+
+-/* $Revision: 1.1 $ on $Date: 2013/03/03 23:46:22 $ */
++/* $Revision: 1.1 $ on $Date: 2013/03/03 23:46:22 $ */
+
+ #include <GLES2/gl2chromium.h>
+ #include <GLES2/gl2platform.h>
+@@ -160,7 +160,6 @@ typedef khronos_ssize_t GLsizeiptr;
+ #define GL_INVALID_VALUE 0x0501
+ #define GL_INVALID_OPERATION 0x0502
+ #define GL_OUT_OF_MEMORY 0x0505
+-#define GL_CONTEXT_LOST 0x300E // TODO(gman): What value?
+
+ /* FrontFaceDirection */
+ #define GL_CW 0x0900
+@@ -529,7 +528,7 @@ GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
+ GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+-GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
++GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
+ GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
+ GL_APICALL GLenum GL_APIENTRY glGetError (void);
+@@ -548,7 +547,7 @@ GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum p
+ GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
+ GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
+ GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
+-GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
++GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
+ GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
+ GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
+@@ -570,7 +569,7 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum
+ GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
+ GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+ GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
+-GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
++GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
+ GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
+Index: third_party/khronos/README.chromium
+diff --git a/third_party/khronos/README.chromium b/third_party/khronos/README.chromium
+index b47cb038c3cc5b51181194a55869842118bf7a56..da2e6c511e33767a458da1a17bd1b78e87779439 100644
+--- a/third_party/khronos/README.chromium
++++ b/third_party/khronos/README.chromium
+@@ -20,7 +20,6 @@ NOTE: Please add Chromium-specific declarations to files in gpu/{GL,EGL,GLES2}
+ and not here.
+
+ GLES2/gl2.h
+- - Added GL_CONTEXT_LOST constant.
+ - Added include of gl2chromium.h
+ GLES2/gl2ext.h
+ - Added Chromium and Angle extensions.
+Index: ui/gl/generate_bindings.py
+diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py
+index 16f89984bc3d1dc967d6ea3d2c4c1ed799716f8e..8422bbc8baf049f6431cea602a179296698f12b3 100755
+--- a/ui/gl/generate_bindings.py
++++ b/ui/gl/generate_bindings.py
+@@ -482,7 +482,7 @@ GL_FUNCTIONS = [
+ { 'return_type': 'void',
+ 'names': ['glShaderSource'],
+ 'arguments':
+- 'GLuint shader, GLsizei count, const char** str, const GLint* length',
++ 'GLuint shader, GLsizei count, const char* const* str, const GLint* length',
+ 'logging_code': """
+ GL_SERVICE_LOG_CODE_BLOCK({
+ for (GLsizei ii = 0; ii < count; ++ii) {
+@@ -1584,7 +1584,7 @@ namespace gfx {
+ file.write('\n')
+ file.write('%s GL_BINDING_CALL Mock_%s(%s) {\n' %
+ (func['return_type'], func['names'][0], func['arguments']))
+- argument_names = re.sub(r'(const )?[a-zA-Z0-9]+\** ([a-zA-Z0-9]+)', r'\2',
++ argument_names = re.sub(r'(const )?[a-zA-Z0-9]+((\s*const\s*)?\*)* ([a-zA-Z0-9]+)', r'\4',
+ func['arguments'])
+ if argument_names == 'void':
+ argument_names = ''
+Index: ui/gl/gl_bindings_skia_in_process.cc
+diff --git a/ui/gl/gl_bindings_skia_in_process.cc b/ui/gl/gl_bindings_skia_in_process.cc
+index f45626616ed6ff8e8de0c59b25165e6b51f3668d..115eac8d8a57e7abc000935e20c8eb311cd404e8 100644
+--- a/ui/gl/gl_bindings_skia_in_process.cc
++++ b/ui/gl/gl_bindings_skia_in_process.cc
+@@ -365,7 +365,7 @@ GLvoid StubGLScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
+ glScissor(x, y, width, height);
+ }
+
+-GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char** str,
++GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char* const* str,
+ const GLint* length) {
+ glShaderSource(shader, count, str, length);
+ }
+Index: third_party/skia/include/gpu/gl/GrGLConfig_chrome.h
+===================================================================
+--- a/third_party/skia/include/gpu/gl/GrGLConfig_chrome.h (revision 7840)
++++ b/third_party/skia/include/gpu/gl/GrGLConfig_chrome.h (working copy)
+@@ -37,4 +37,8 @@
+ // Non-VBO vertices and indices are not allowed in Chromium.
+ #define GR_GL_MUST_USE_VBO 1
+
++// Use updated Khronos signature for glShaderSource
++// (const char* const instead of char**).
++#define GR_USE_NEW_GL_SHADER_SOURCE_SIGNATURE 1
++
+ #endif
diff --git a/www-client/chromium/files/chromium-mesa-r1.patch b/www-client/chromium/files/chromium-mesa-r1.patch
new file mode 100644
index 000000000000..97c0a1939baa
--- /dev/null
+++ b/www-client/chromium/files/chromium-mesa-r1.patch
@@ -0,0 +1,241 @@
+Index: gpu/command_buffer/client/gles2_c_lib_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_c_lib_autogen.h b/gpu/command_buffer/client/gles2_c_lib_autogen.h
+index 80a4d230ad4b82abbaa82f2c328286b9d89da329..d56df6fdb0d851125148a1aac0bedbc487320682 100644
+--- a/gpu/command_buffer/client/gles2_c_lib_autogen.h
++++ b/gpu/command_buffer/client/gles2_c_lib_autogen.h
+@@ -355,7 +355,8 @@ void GLES2ShaderBinary(
+ n, shaders, binaryformat, binary, length);
+ }
+ void GLES2ShaderSource(
+- GLuint shader, GLsizei count, const char** str, const GLint* length) {
++ GLuint shader, GLsizei count, const GLchar* const* str,
++ const GLint* length) {
+ gles2::GetGLContext()->ShaderSource(shader, count, str, length);
+ }
+ void GLES2StencilFunc(GLenum func, GLint ref, GLuint mask) {
+Index: gpu/command_buffer/client/gles2_implementation.cc
+diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
+index b6c354819ce5d556ff91f7b5273875c3cec83f7a..600c02f3751a2ab72eed498be7ee0f02e628130d 100644
+--- a/gpu/command_buffer/client/gles2_implementation.cc
++++ b/gpu/command_buffer/client/gles2_implementation.cc
+@@ -1173,7 +1173,7 @@ void GLES2Implementation::VertexAttribDivisorANGLE(
+ }
+
+ void GLES2Implementation::ShaderSource(
+- GLuint shader, GLsizei count, const char** source, const GLint* length) {
++ GLuint shader, GLsizei count, const GLchar* const* source, const GLint* length) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glShaderSource("
+ << shader << ", " << count << ", "
+Index: gpu/command_buffer/client/gles2_implementation_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_implementation_autogen.h b/gpu/command_buffer/client/gles2_implementation_autogen.h
+index febcaf45bb5446393c7785196c9ef4a329438d0f..e4a63822ae6b3b9c950b7f9b05f173ce1ecfdb87 100644
+--- a/gpu/command_buffer/client/gles2_implementation_autogen.h
++++ b/gpu/command_buffer/client/gles2_implementation_autogen.h
+@@ -253,7 +253,7 @@ virtual void ShaderBinary(
+ GLsizei length) OVERRIDE;
+
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str,
++ GLuint shader, GLsizei count, const GLchar* const* str,
+ const GLint* length) OVERRIDE;
+
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
+Index: gpu/command_buffer/client/gles2_interface_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_interface_autogen.h b/gpu/command_buffer/client/gles2_interface_autogen.h
+index b84dd71bd9139ac487a40847ddb746f839cf3593..8aafc7fd45891be4e2aa61f5825c20d0ccd1dc76 100644
+--- a/gpu/command_buffer/client/gles2_interface_autogen.h
++++ b/gpu/command_buffer/client/gles2_interface_autogen.h
+@@ -152,7 +152,8 @@ virtual void ShaderBinary(
+ GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
+ GLsizei length) = 0;
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str, const GLint* length) = 0;
++ GLuint shader, GLsizei count, const GLchar* const* str,
++ const GLint* length) = 0;
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) = 0;
+ virtual void StencilFuncSeparate(
+ GLenum face, GLenum func, GLint ref, GLuint mask) = 0;
+Index: gpu/command_buffer/client/gles2_interface_stub_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_interface_stub_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
+index 3c1c6696b08923142c879aa591b3902339e5874c..80e6c1003ae1be90fcd1a2871ffdde58f7237bff 100644
+--- a/gpu/command_buffer/client/gles2_interface_stub_autogen.h
++++ b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
+@@ -163,7 +163,7 @@ virtual void ShaderBinary(
+ GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
+ GLsizei length) OVERRIDE;
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str,
++ GLuint shader, GLsizei count, const GLchar* const* str,
+ const GLint* length) OVERRIDE;
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
+ virtual void StencilFuncSeparate(
+Index: gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+index dce39c0def3ec52499c712afe1f792809c00db28..f097e8cba8e4d13af9027122a36b93f2ec28ae46 100644
+--- a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
++++ b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+@@ -310,7 +310,7 @@ void GLES2InterfaceStub::ShaderBinary(
+ const void* /* binary */, GLsizei /* length */) {
+ }
+ void GLES2InterfaceStub::ShaderSource(
+- GLuint /* shader */, GLsizei /* count */, const char** /* str */,
++ GLuint /* shader */, GLsizei /* count */, const GLchar* const* /* str */,
+ const GLint* /* length */) {
+ }
+ void GLES2InterfaceStub::StencilFunc(
+Index: gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+index 46cbdccccd0e3e4074b1fd919fc6b91d95fe04a5..da02881f9d180bd26f5a2bad2d4e814a9ca085b3 100644
+--- a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
++++ b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+@@ -163,7 +163,7 @@ virtual void ShaderBinary(
+ GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
+ GLsizei length) OVERRIDE;
+ virtual void ShaderSource(
+- GLuint shader, GLsizei count, const char** str,
++ GLuint shader, GLsizei count, const GLchar* const* str,
+ const GLint* length) OVERRIDE;
+ virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
+ virtual void StencilFuncSeparate(
+Index: gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+diff --git a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+index 8aff42a6711c38b76e8767057b41fa31fe89f168..8f87a40da0f26f0dd71772e5fbcf519c8b02ad12 100644
+--- a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
++++ b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+@@ -570,7 +570,8 @@ void GLES2TraceImplementation::ShaderBinary(
+ }
+
+ void GLES2TraceImplementation::ShaderSource(
+- GLuint shader, GLsizei count, const char** str, const GLint* length) {
++ GLuint shader, GLsizei count, const GLchar* const* str,
++ const GLint* length) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::ShaderSource");
+ gl_->ShaderSource(shader, count, str, length);
+ }
+Index: gpu/command_buffer/cmd_buffer_functions.txt
+diff --git a/gpu/command_buffer/cmd_buffer_functions.txt b/gpu/command_buffer/cmd_buffer_functions.txt
+index 2ad875a4aeaf86566c5f0334090f6583468c4781..08d33d963e3450d6fe442b333fb88089b184d86b 100644
+--- a/gpu/command_buffer/cmd_buffer_functions.txt
++++ b/gpu/command_buffer/cmd_buffer_functions.txt
+@@ -103,7 +103,7 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenumRenderBufferTar
+ GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
+ GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+ GL_APICALL void GL_APIENTRY glShaderBinary (GLsizeiNotNegative n, const GLuint* shaders, GLenumShaderBinaryFormat binaryformat, const void* binary, GLsizeiNotNegative length);
+-GL_APICALL void GL_APIENTRY glShaderSource (GLidShader shader, GLsizeiNotNegative count, const char** str, const GLint* length);
++GL_APICALL void GL_APIENTRY glShaderSource (GLidShader shader, GLsizeiNotNegative count, const GLchar* const* str, const GLint* length);
+ GL_APICALL void GL_APIENTRY glStencilFunc (GLenumCmpFunction func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenumFaceType face, GLenumCmpFunction func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
+Index: third_party/khronos/GLES2/gl2.h
+diff --git a/third_party/khronos/GLES2/gl2.h b/third_party/khronos/GLES2/gl2.h
+index edebb8b23a56f6a67bb1ecfe5304bb5b372745e6..7aef573b6af7f4e3c76bdfb741374521b2f1eca4 100644
+--- a/third_party/khronos/GLES2/gl2.h
++++ b/third_party/khronos/GLES2/gl2.h
+@@ -1,7 +1,7 @@
+ #ifndef __gl2_h_
+ #define __gl2_h_
+
+-/* $Revision: 1.1 $ on $Date: 2013/03/03 23:46:22 $ */
++/* $Revision: 1.1 $ on $Date: 2013/03/03 23:46:22 $ */
+
+ #include <GLES2/gl2chromium.h>
+ #include <GLES2/gl2platform.h>
+@@ -160,7 +160,6 @@ typedef khronos_ssize_t GLsizeiptr;
+ #define GL_INVALID_VALUE 0x0501
+ #define GL_INVALID_OPERATION 0x0502
+ #define GL_OUT_OF_MEMORY 0x0505
+-#define GL_CONTEXT_LOST 0x300E // TODO(gman): What value?
+
+ /* FrontFaceDirection */
+ #define GL_CW 0x0900
+@@ -529,7 +528,7 @@ GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
+ GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+-GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
++GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
+ GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
+ GL_APICALL GLenum GL_APIENTRY glGetError (void);
+@@ -548,7 +547,7 @@ GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum p
+ GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
+ GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
+ GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
+-GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
++GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
+ GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
+ GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
+ GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
+@@ -570,7 +569,7 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum
+ GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
+ GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+ GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
+-GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
++GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
+ GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
+ GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
+Index: third_party/khronos/README.chromium
+diff --git a/third_party/khronos/README.chromium b/third_party/khronos/README.chromium
+index b47cb038c3cc5b51181194a55869842118bf7a56..da2e6c511e33767a458da1a17bd1b78e87779439 100644
+--- a/third_party/khronos/README.chromium
++++ b/third_party/khronos/README.chromium
+@@ -20,7 +20,6 @@ NOTE: Please add Chromium-specific declarations to files in gpu/{GL,EGL,GLES2}
+ and not here.
+
+ GLES2/gl2.h
+- - Added GL_CONTEXT_LOST constant.
+ - Added include of gl2chromium.h
+ GLES2/gl2ext.h
+ - Added Chromium and Angle extensions.
+Index: ui/gl/generate_bindings.py
+diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py
+index 16f89984bc3d1dc967d6ea3d2c4c1ed799716f8e..8422bbc8baf049f6431cea602a179296698f12b3 100755
+--- a/ui/gl/generate_bindings.py
++++ b/ui/gl/generate_bindings.py
+@@ -482,7 +482,7 @@ GL_FUNCTIONS = [
+ { 'return_type': 'void',
+ 'names': ['glShaderSource'],
+ 'arguments':
+- 'GLuint shader, GLsizei count, const char** str, const GLint* length',
++ 'GLuint shader, GLsizei count, const char* const* str, const GLint* length',
+ 'logging_code': """
+ GL_SERVICE_LOG_CODE_BLOCK({
+ for (GLsizei ii = 0; ii < count; ++ii) {
+@@ -1584,7 +1584,7 @@ namespace gfx {
+ file.write('\n')
+ file.write('%s GL_BINDING_CALL Mock_%s(%s) {\n' %
+ (func['return_type'], func['names'][0], func['arguments']))
+- argument_names = re.sub(r'(const )?[a-zA-Z0-9]+\** ([a-zA-Z0-9]+)', r'\2',
++ argument_names = re.sub(r'(const )?[a-zA-Z0-9]+((\s*const\s*)?\*)* ([a-zA-Z0-9]+)', r'\4',
+ func['arguments'])
+ if argument_names == 'void':
+ argument_names = ''
+Index: ui/gl/gl_bindings_skia_in_process.cc
+diff --git a/ui/gl/gl_bindings_skia_in_process.cc b/ui/gl/gl_bindings_skia_in_process.cc
+index f45626616ed6ff8e8de0c59b25165e6b51f3668d..115eac8d8a57e7abc000935e20c8eb311cd404e8 100644
+--- a/ui/gl/gl_bindings_skia_in_process.cc
++++ b/ui/gl/gl_bindings_skia_in_process.cc
+@@ -365,7 +365,7 @@ GLvoid StubGLScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
+ glScissor(x, y, width, height);
+ }
+
+-GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char** str,
++GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char* const* str,
+ const GLint* length) {
+ glShaderSource(shader, count, str, length);
+ }
+Index: third_party/skia/include/gpu/gl/GrGLConfig_chrome.h
+===================================================================
+--- a/third_party/skia/include/gpu/gl/GrGLConfig_chrome.h (revision 7840)
++++ b/third_party/skia/include/gpu/gl/GrGLConfig_chrome.h (working copy)
+@@ -37,4 +37,8 @@
+ // Non-VBO vertices and indices are not allowed in Chromium.
+ #define GR_GL_MUST_USE_VBO 1
+
++// Use updated Khronos signature for glShaderSource
++// (const char* const instead of char**).
++#define GR_USE_NEW_GL_SHADER_SOURCE_SIGNATURE 1
++
+ #endif