On 10/02/14 01:26, Ian Romanick wrote: > On 02/08/2014 08:03 AM, Emil Velikov wrote: >> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> >> --- >> src/egl/main/Makefile.am | 2 + >> src/egl/main/egl-symbols-check | 109 >> +++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 111 insertions(+) >> create mode 100755 src/egl/main/egl-symbols-check >> >> diff --git a/src/egl/main/Makefile.am b/src/egl/main/Makefile.am >> index 46e890a..7d9748f 100644 >> --- a/src/egl/main/Makefile.am >> +++ b/src/egl/main/Makefile.am >> @@ -124,3 +124,5 @@ egl_HEADERS = \ >> $(top_srcdir)/include/EGL/egl.h \ >> $(top_srcdir)/include/EGL/eglmesaext.h \ >> $(top_srcdir)/include/EGL/eglplatform.h >> + >> +TESTS = egl-symbols-check >> \ No newline at end of file > > Perhaps add a newline? :) > >> diff --git a/src/egl/main/egl-symbols-check b/src/egl/main/egl-symbols-check >> new file mode 100755 >> index 0000000..fc69369 >> --- /dev/null >> +++ b/src/egl/main/egl-symbols-check >> @@ -0,0 +1,109 @@ >> +#!/bin/bash >> + >> +# XXX: the private _egl* symbols are exported for egl backends like >> egl_gallium >> + >> +FUNCS=$(nm -D --defined-only ${1-.libs/libEGL.so} | grep -o "T .*" | cut -c >> 3- | while read func; do >> +( grep -q "^$func$" || echo $func ) <<EOF >> +eglBindAPI >> +eglBindTexImage >> +eglBindWaylandDisplayWL >> +eglChooseConfig >> +eglChooseModeMESA >> +eglClientWaitSyncKHR > > Are we supposed to export extension functions? I thought that's what > eglGetProcAddress was for... I'd swear there was an "implementer's > guide" or some such from Khronos that gave some guidance here. > Those are the functions we currently export, regardless of what the spec says. I'll have to go through it and explicitly denote some of the symbols, but I believe that this may brake ABI compatibility of existing apps.
Turns out it was to get people looking in this direction :) -Emil >> +eglCopyBuffers >> +eglCopyContextMESA >> +eglCreateContext >> +eglCreateDRMImageMESA >> +eglCreateImageKHR >> +eglCreatePbufferFromClientBuffer >> +eglCreatePbufferSurface >> +eglCreatePixmapSurface >> +eglCreateScreenSurfaceMESA >> +eglCreateSyncKHR >> +eglCreateWaylandBufferFromImageWL >> +eglCreateWindowSurface >> +eglDestroyContext >> +eglDestroyImageKHR >> +eglDestroySurface >> +eglDestroySyncKHR >> +eglExportDRMImageMESA >> +eglGetConfigAttrib >> +eglGetConfigs >> +eglGetCurrentContext >> +eglGetCurrentDisplay >> +eglGetCurrentSurface >> +eglGetDisplay >> +eglGetDRMDisplayMESA >> +eglGetError >> +eglGetModeAttribMESA >> +eglGetModesMESA >> +eglGetProcAddress >> +eglGetScreensMESA >> +eglGetSyncAttribKHR >> +eglInitialize >> +eglMakeCurrent >> +eglPostSubBufferNV >> +eglQueryAPI >> +eglQueryContext >> +eglQueryModeStringMESA >> +eglQueryScreenMESA >> +eglQueryScreenModeMESA >> +eglQueryScreenSurfaceMESA >> +eglQueryString >> +eglQuerySurface >> +eglQueryWaylandBufferWL >> +eglReleaseTexImage >> +eglReleaseThread >> +eglScreenPositionMESA >> +eglShowScreenSurfaceMESA >> +eglSignalSyncKHR >> +eglSurfaceAttrib >> +eglSwapBuffers >> +eglSwapBuffersRegionNOK >> +eglSwapBuffersWithDamageEXT >> +eglSwapInterval >> +eglTerminate >> +eglUnbindWaylandDisplayWL >> +eglWaitClient >> +eglWaitGL >> +eglWaitNative >> +_eglBindContext >> +_eglBindTexImage >> +_eglCheckResource >> +_eglCleanupDisplay >> +_eglCompareConfigs >> +_eglDestroyArray >> +_eglError >> +_eglFilterArray >> +_eglFilterConfigArray >> +_eglGetAPIContext >> +_eglGetCurrentContext >> +_eglGetCurrentThread >> +_eglGetResource >> +_eglInitConfig >> +_eglInitContext >> +_eglInitDriverFallbacks >> +_eglInitImage >> +_eglInitScreen >> +_eglInitSurface >> +_eglInitSync >> +_eglLinkConfig >> +_eglLinkScreen >> +_eglLog >> +_eglMatchConfig >> +_eglParseConfigAttribList >> +_eglParseImageAttribList >> +_eglPutResource >> +_eglReleaseDisplayResources >> +_eglSearchPathForEach >> +_eglSetLogLevel >> +_eglSetLogProc >> +_eglValidateConfig >> +_fini >> +_init >> +EOF >> +done) >> + >> +test ! -n "$FUNCS" || echo $FUNCS >> +test ! -n "$FUNCS" >> + >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev