-#!/bin/bash
+#!/bin/sh
+set -eu
# Print defined gl.* functions not in GL ES 3.0 or in
# (FIXME, none of these should be part of the ABI)
-# GL_EXT_discard_framebuffer
-# GL_EXT_map_buffer_range
# GL_EXT_multi_draw_arrays
-# GL_NV_draw_buffers
-# GL_NV_read_buffer
# GL_OES_EGL_image
-# GL_OES_get_program_binary
-# GL_OES_mapbuffer
-# GL_OES_texture_3D
-# GL_OES_vertex_array_object
-FUNCS=$(nm -D --defined-only ${1-.libs/libGLESv2.so.2} | grep -o 'T gl.*' | cut -c 3- | while read func; do
+LIB=${1-.libs/libGLESv2.so.2}
+
+if ! [ -f "$LIB" ]
+then
+ exit 1
+fi
+
+FUNCS=$(nm -D --defined-only $LIB | grep -o 'T gl.*' | cut -c 3- | while read func; do
( grep -q "^$func$" || echo $func ) <<EOF
glActiveTexture
glAttachShader
glBindTexture
glBindTransformFeedback
glBindVertexArray
-glBindVertexArrayOES
glBlendColor
glBlendEquation
glBlendEquationSeparate
glCompileShader
glCompressedTexImage2D
glCompressedTexImage3D
-glCompressedTexImage3DOES
glCompressedTexSubImage2D
glCompressedTexSubImage3D
-glCompressedTexSubImage3DOES
glCopyBufferSubData
glCopyTexImage2D
glCopyTexSubImage2D
glCopyTexSubImage3D
-glCopyTexSubImage3DOES
glCreateProgram
glCreateShader
glCullFace
glDeleteTextures
glDeleteTransformFeedbacks
glDeleteVertexArrays
-glDeleteVertexArraysOES
glDepthFunc
glDepthMask
glDepthRangef
glDetachShader
glDisable
glDisableVertexAttribArray
-glDiscardFramebufferEXT
glDrawArrays
glDrawArraysInstanced
glDrawBuffers
-glDrawBuffersNV
glDrawElements
glDrawElementsInstanced
glDrawRangeElements
glFinish
glFlush
glFlushMappedBufferRange
-glFlushMappedBufferRangeEXT
glFramebufferRenderbuffer
glFramebufferTexture2D
-glFramebufferTexture3DOES
glFramebufferTextureLayer
glFrontFace
glGenBuffers
glGenTextures
glGenTransformFeedbacks
glGenVertexArrays
-glGenVertexArraysOES
glGetActiveAttrib
glGetActiveUniform
glGetActiveUniformBlockiv
glGetBufferParameteri64v
glGetBufferParameteriv
glGetBufferPointerv
-glGetBufferPointervOES
glGetError
glGetFloatv
glGetFragDataLocation
glGetIntegerv
glGetInternalformativ
glGetProgramBinary
-glGetProgramBinaryOES
glGetProgramInfoLog
glGetProgramiv
glGetQueryiv
glIsTexture
glIsTransformFeedback
glIsVertexArray
-glIsVertexArrayOES
glLineWidth
glLinkProgram
-glMapBufferOES
glMapBufferRange
-glMapBufferRangeEXT
glMultiDrawArraysEXT
glMultiDrawElementsEXT
glPauseTransformFeedback
glPixelStorei
glPolygonOffset
glProgramBinary
-glProgramBinaryOES
glProgramParameteri
glReadBuffer
-glReadBufferNV
glReadPixels
glReleaseShaderCompiler
glRenderbufferStorage
glStencilOpSeparate
glTexImage2D
glTexImage3D
-glTexImage3DOES
glTexParameterf
glTexParameterfv
glTexParameteri
glTexStorage3D
glTexSubImage2D
glTexSubImage3D
-glTexSubImage3DOES
glTransformFeedbackVaryings
glUniform1f
glUniform1fv
glUniformMatrix4x2fv
glUniformMatrix4x3fv
glUnmapBuffer
-glUnmapBufferOES
glUseProgram
glValidateProgram
glVertexAttrib1f