[Mesa-dev] [PATCH 1/2] gles1: Add an ABI-check test
Matt Turner
mattst88 at gmail.com
Tue Mar 12 13:01:20 PDT 2013
Checks that no functions are exported that are not part of the ABI.
Note that currently we are exporting functions that are aliased to
functions that are part of the ABI. They shouldn't be exported, but the
XML descriptions don't adequately describe this case.
---
src/mapi/es1api/ABI-check | 252 +++++++++++++++++++++++++++++++++++++++++++
src/mapi/es1api/Makefile.am | 2 +
2 files changed, 254 insertions(+), 0 deletions(-)
create mode 100755 src/mapi/es1api/ABI-check
diff --git a/src/mapi/es1api/ABI-check b/src/mapi/es1api/ABI-check
new file mode 100755
index 0000000..4741fbf
--- /dev/null
+++ b/src/mapi/es1api/ABI-check
@@ -0,0 +1,252 @@
+#!/bin/bash
+
+# Print defined gl.* functions not in GL ES 1.1 or in
+# (FIXME, none of these should be part of the ABI)
+# GL_OES_fixed_point
+# GL_OES_single_precision
+
+# or in extensions that are part of the ES 1.1 extension pack.
+# (see http://www.khronos.org/registry/gles/specs/1.1/opengles_spec_1_1_extension_pack.pdf)
+
+FUNCS=$(nm -D --defined-only ${1-.libs/libGLESv1_CM.so.1} | grep -o 'T gl.*' | cut -c 3- | while read func; do
+( grep -q "^$func$" || echo $func ) <<EOF
+glActiveTexture
+glAlphaFunc
+glAlphaFuncx
+glAlphaFuncxOES
+glBindBuffer
+glBindFramebufferOES
+glBindRenderbufferOES
+glBindTexture
+glBlendEquationOES
+glBlendEquationSeparateOES
+glBlendFunc
+glBlendFuncSeparateOES
+glBufferData
+glBufferSubData
+glCheckFramebufferStatusOES
+glClear
+glClearColor
+glClearColorx
+glClearColorxOES
+glClearDepthf
+glClearDepthfOES
+glClearDepthx
+glClearDepthxOES
+glClearStencil
+glClientActiveTexture
+glClipPlanef
+glClipPlanefOES
+glClipPlanex
+glClipPlanexOES
+glColor4f
+glColor4ub
+glColor4x
+glColor4xOES
+glColorMask
+glColorPointer
+glCompressedTexImage2D
+glCompressedTexSubImage2D
+glCopyTexImage2D
+glCopyTexSubImage2D
+glCullFace
+glDeleteBuffers
+glDeleteFramebuffersOES
+glDeleteRenderbuffersOES
+glDeleteTextures
+glDepthFunc
+glDepthMask
+glDepthRangef
+glDepthRangefOES
+glDepthRangex
+glDepthRangexOES
+glDisable
+glDisableClientState
+glDrawArrays
+glDrawElements
+glDrawTexfOES
+glDrawTexfvOES
+glDrawTexiOES
+glDrawTexivOES
+glDrawTexsOES
+glDrawTexsvOES
+glDrawTexxOES
+glDrawTexxvOES
+glEGLImageTargetRenderbufferStorageOES
+glEGLImageTargetTexture2DOES
+glEnable
+glEnableClientState
+glFinish
+glFlush
+glFlushMappedBufferRangeEXT
+glFogf
+glFogfv
+glFogx
+glFogxOES
+glFogxv
+glFogxvOES
+glFramebufferRenderbufferOES
+glFramebufferTexture2DOES
+glFrontFace
+glFrustumf
+glFrustumfOES
+glFrustumx
+glFrustumxOES
+glGenBuffers
+glGenerateMipmapOES
+glGenFramebuffersOES
+glGenRenderbuffersOES
+glGenTextures
+glGetBooleanv
+glGetBufferParameteriv
+glGetBufferPointervOES
+glGetClipPlanef
+glGetClipPlanefOES
+glGetClipPlanex
+glGetClipPlanexOES
+glGetError
+glGetFixedv
+glGetFixedvOES
+glGetFloatv
+glGetFramebufferAttachmentParameterivOES
+glGetIntegerv
+glGetLightfv
+glGetLightxv
+glGetLightxvOES
+glGetMaterialfv
+glGetMaterialxv
+glGetMaterialxvOES
+glGetPointerv
+glGetRenderbufferParameterivOES
+glGetString
+glGetTexEnvfv
+glGetTexEnviv
+glGetTexEnvxv
+glGetTexEnvxvOES
+glGetTexGenfvOES
+glGetTexGenivOES
+glGetTexGenxvOES
+glGetTexParameterfv
+glGetTexParameteriv
+glGetTexParameterxv
+glGetTexParameterxvOES
+glHint
+glIsBuffer
+glIsEnabled
+glIsFramebufferOES
+glIsRenderbufferOES
+glIsTexture
+glLightf
+glLightfv
+glLightModelf
+glLightModelfv
+glLightModelx
+glLightModelxOES
+glLightModelxv
+glLightModelxvOES
+glLightx
+glLightxOES
+glLightxv
+glLightxvOES
+glLineWidth
+glLineWidthx
+glLineWidthxOES
+glLoadIdentity
+glLoadMatrixf
+glLoadMatrixx
+glLoadMatrixxOES
+glLogicOp
+glMapBufferOES
+glMapBufferRangeEXT
+glMaterialf
+glMaterialfv
+glMaterialx
+glMaterialxOES
+glMaterialxv
+glMaterialxvOES
+glMatrixMode
+glMultiDrawArraysEXT
+glMultiDrawElementsEXT
+glMultiTexCoord4f
+glMultiTexCoord4x
+glMultiTexCoord4xOES
+glMultMatrixf
+glMultMatrixx
+glMultMatrixxOES
+glNormal3f
+glNormal3x
+glNormal3xOES
+glNormalPointer
+glOrthof
+glOrthofOES
+glOrthox
+glOrthoxOES
+glPixelStorei
+glPointParameterf
+glPointParameterfv
+glPointParameterx
+glPointParameterxOES
+glPointParameterxv
+glPointParameterxvOES
+glPointSize
+glPointSizePointerOES
+glPointSizex
+glPointSizexOES
+glPolygonOffset
+glPolygonOffsetx
+glPolygonOffsetxOES
+glPopMatrix
+glPushMatrix
+glQueryMatrixxOES
+glReadPixels
+glRenderbufferStorageOES
+glRotatef
+glRotatex
+glRotatexOES
+glSampleCoverage
+glSampleCoveragex
+glSampleCoveragexOES
+glScalef
+glScalex
+glScalexOES
+glScissor
+glShadeModel
+glStencilFunc
+glStencilMask
+glStencilOp
+glTexCoordPointer
+glTexEnvf
+glTexEnvfv
+glTexEnvi
+glTexEnviv
+glTexEnvx
+glTexEnvxOES
+glTexEnvxv
+glTexEnvxvOES
+glTexGenfOES
+glTexGenfvOES
+glTexGeniOES
+glTexGenivOES
+glTexGenxOES
+glTexGenxvOES
+glTexImage2D
+glTexParameterf
+glTexParameterfv
+glTexParameteri
+glTexParameteriv
+glTexParameterx
+glTexParameterxOES
+glTexParameterxv
+glTexParameterxvOES
+glTexSubImage2D
+glTranslatef
+glTranslatex
+glTranslatexOES
+glUnmapBufferOES
+glVertexPointer
+glViewport
+EOF
+done)
+
+test ! -n "$FUNCS" || echo $FUNCS
+test ! -n "$FUNCS"
diff --git a/src/mapi/es1api/Makefile.am b/src/mapi/es1api/Makefile.am
index c163a39..bd3c60d 100644
--- a/src/mapi/es1api/Makefile.am
+++ b/src/mapi/es1api/Makefile.am
@@ -28,6 +28,8 @@ AM_CPPFLAGS = \
AM_CFLAGS = $(VISIBILITY_CFLAGS)
+TESTS = ABI-check
+
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = glesv1_cm.pc
--
1.7.8.6
More information about the mesa-dev
mailing list