OSDN Git Service

Export type-info symbols.
authorNicolas Capens <capn@google.com>
Wed, 19 Jul 2017 15:39:28 +0000 (11:39 -0400)
committerNicolas Capens <nicolascapens@google.com>
Wed, 19 Jul 2017 18:14:49 +0000 (18:14 +0000)
Sanitizer tools require type information to catch undefined behavior and
other issues. This wasn't available accross libraries due to the version
script giving them hidden visibility, leading to false positives.

Bug chromium:737384

Change-Id: Iab3e25f4da3672f694e32c1c89278a3fe677d51a
Reviewed-on: https://swiftshader-review.googlesource.com/10728
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
src/OpenGL/libEGL/exports.map
src/OpenGL/libGLESv2/exports.map

index 487457e..8455dc9 100644 (file)
@@ -1,5 +1,6 @@
 {
 global:
+       # EGL core functions
        eglBindAPI;
        eglBindTexImage;
        eglChooseConfig;
@@ -46,9 +47,13 @@ global:
        eglClientWaitSyncKHR;
        eglGetSyncAttribKHR;
 
+       # Table of function pointers to disambiguate between libraries
        libEGL_swiftshader;
 
+       # Type-strings and type-infos required by sanitizers
+       _ZTS*;
+       _ZTI*;
+
 local:
-    *;
+       *;
 };
-
index 8238564..adc4ff5 100644 (file)
 {
 global:
-    glActiveTexture;
-    glAttachShader;
-    glBindAttribLocation;
-    glBindBuffer;
-    glBindFramebuffer;
-    glBindRenderbuffer;
-    glBindTexture;
-    glBlendColor;
-    glBlendEquation;
-    glBlendEquationSeparate;
-    glBlendFunc;
-    glBlendFuncSeparate;
-    glBufferData;
-    glBufferSubData;
-    glCheckFramebufferStatus;
-    glClear;
-    glClearColor;
-    glClearDepthf;
-    glClearStencil;
-    glColorMask;
-    glCompileShader;
-    glCompressedTexImage2D;
-    glCompressedTexSubImage2D;
-    glCopyTexImage2D;
-    glCopyTexSubImage2D;
-    glCreateProgram;
-    glCreateShader;
-    glCullFace;
-    glDeleteBuffers;
-    glDeleteFramebuffers;
-    glDeleteProgram;
-    glDeleteRenderbuffers;
-    glDeleteShader;
-    glDeleteTextures;
-    glDepthFunc;
-    glDepthMask;
-    glDepthRangef;
-    glDetachShader;
-    glDisable;
-    glDisableVertexAttribArray;
-    glDrawArrays;
-    glDrawElements;
-    glEnable;
-    glEnableVertexAttribArray;
-    glFinish;
-    glFlush;
-    glFramebufferRenderbuffer;
-    glFramebufferTexture2D;
-    glFrontFace;
-    glGenBuffers;
-    glGenFramebuffers;
-    glGenRenderbuffers;
-    glGenTextures;
-    glGenerateMipmap;
-    glGetActiveAttrib;
-    glGetActiveUniform;
-    glGetAttachedShaders;
-    glGetAttribLocation;
-    glGetBooleanv;
-    glGetBufferParameteriv;
-    glGetError;
-    glGetFloatv;
-    glGetFramebufferAttachmentParameteriv;
-    glGetIntegerv;
-    glGetProgramInfoLog;
-    glGetProgramiv;
-    glGetRenderbufferParameteriv;
-    glGetShaderInfoLog;
-    glGetShaderPrecisionFormat;
-    glGetShaderSource;
-    glGetShaderiv;
-    glGetString;
-    glGetTexParameterfv;
-    glGetTexParameteriv;
-    glGetUniformLocation;
-    glGetUniformfv;
-    glGetUniformiv;
-    glGetVertexAttribPointerv;
-    glGetVertexAttribfv;
-    glGetVertexAttribiv;
-    glHint;
-    glIsBuffer;
-    glIsEnabled;
-    glIsFramebuffer;
-    glIsProgram;
-    glIsRenderbuffer;
-    glIsShader;
-    glIsTexture;
-    glLineWidth;
-    glLinkProgram;
-    glPixelStorei;
-    glPolygonOffset;
-    glReadPixels;
-    glReleaseShaderCompiler;
-    glRenderbufferStorage;
-    glSampleCoverage;
-    glScissor;
-    glShaderBinary;
-    glShaderSource;
-    glStencilFunc;
-    glStencilFuncSeparate;
-    glStencilMask;
-    glStencilMaskSeparate;
-    glStencilOp;
-    glStencilOpSeparate;
-    glTexImage2D;
-    glTexParameterf;
-    glTexParameterfv;
-    glTexParameteri;
-    glTexParameteriv;
-    glTexSubImage2D;
-    glUniform1f;
-    glUniform1fv;
-    glUniform1i;
-    glUniform1iv;
-    glUniform2f;
-    glUniform2fv;
-    glUniform2i;
-    glUniform2iv;
-    glUniform3f;
-    glUniform3fv;
-    glUniform3i;
-    glUniform3iv;
-    glUniform4f;
-    glUniform4fv;
-    glUniform4i;
-    glUniform4iv;
-    glUniformMatrix2fv;
-    glUniformMatrix3fv;
-    glUniformMatrix4fv;
-    glUseProgram;
-    glValidateProgram;
-    glVertexAttrib1f;
-    glVertexAttrib1fv;
-    glVertexAttrib2f;
-    glVertexAttrib2fv;
-    glVertexAttrib3f;
-    glVertexAttrib3fv;
-    glVertexAttrib4f;
-    glVertexAttrib4fv;
-    glVertexAttribPointer;
-    glViewport;
+       # OpenGL ES 2.0 core functions
+       glActiveTexture;
+       glAttachShader;
+       glBindAttribLocation;
+       glBindBuffer;
+       glBindFramebuffer;
+       glBindRenderbuffer;
+       glBindTexture;
+       glBlendColor;
+       glBlendEquation;
+       glBlendEquationSeparate;
+       glBlendFunc;
+       glBlendFuncSeparate;
+       glBufferData;
+       glBufferSubData;
+       glCheckFramebufferStatus;
+       glClear;
+       glClearColor;
+       glClearDepthf;
+       glClearStencil;
+       glColorMask;
+       glCompileShader;
+       glCompressedTexImage2D;
+       glCompressedTexSubImage2D;
+       glCopyTexImage2D;
+       glCopyTexSubImage2D;
+       glCreateProgram;
+       glCreateShader;
+       glCullFace;
+       glDeleteBuffers;
+       glDeleteFramebuffers;
+       glDeleteProgram;
+       glDeleteRenderbuffers;
+       glDeleteShader;
+       glDeleteTextures;
+       glDepthFunc;
+       glDepthMask;
+       glDepthRangef;
+       glDetachShader;
+       glDisable;
+       glDisableVertexAttribArray;
+       glDrawArrays;
+       glDrawElements;
+       glEnable;
+       glEnableVertexAttribArray;
+       glFinish;
+       glFlush;
+       glFramebufferRenderbuffer;
+       glFramebufferTexture2D;
+       glFrontFace;
+       glGenBuffers;
+       glGenFramebuffers;
+       glGenRenderbuffers;
+       glGenTextures;
+       glGenerateMipmap;
+       glGetActiveAttrib;
+       glGetActiveUniform;
+       glGetAttachedShaders;
+       glGetAttribLocation;
+       glGetBooleanv;
+       glGetBufferParameteriv;
+       glGetError;
+       glGetFloatv;
+       glGetFramebufferAttachmentParameteriv;
+       glGetIntegerv;
+       glGetProgramInfoLog;
+       glGetProgramiv;
+       glGetRenderbufferParameteriv;
+       glGetShaderInfoLog;
+       glGetShaderPrecisionFormat;
+       glGetShaderSource;
+       glGetShaderiv;
+       glGetString;
+       glGetTexParameterfv;
+       glGetTexParameteriv;
+       glGetUniformLocation;
+       glGetUniformfv;
+       glGetUniformiv;
+       glGetVertexAttribPointerv;
+       glGetVertexAttribfv;
+       glGetVertexAttribiv;
+       glHint;
+       glIsBuffer;
+       glIsEnabled;
+       glIsFramebuffer;
+       glIsProgram;
+       glIsRenderbuffer;
+       glIsShader;
+       glIsTexture;
+       glLineWidth;
+       glLinkProgram;
+       glPixelStorei;
+       glPolygonOffset;
+       glReadPixels;
+       glReleaseShaderCompiler;
+       glRenderbufferStorage;
+       glSampleCoverage;
+       glScissor;
+       glShaderBinary;
+       glShaderSource;
+       glStencilFunc;
+       glStencilFuncSeparate;
+       glStencilMask;
+       glStencilMaskSeparate;
+       glStencilOp;
+       glStencilOpSeparate;
+       glTexImage2D;
+       glTexParameterf;
+       glTexParameterfv;
+       glTexParameteri;
+       glTexParameteriv;
+       glTexSubImage2D;
+       glUniform1f;
+       glUniform1fv;
+       glUniform1i;
+       glUniform1iv;
+       glUniform2f;
+       glUniform2fv;
+       glUniform2i;
+       glUniform2iv;
+       glUniform3f;
+       glUniform3fv;
+       glUniform3i;
+       glUniform3iv;
+       glUniform4f;
+       glUniform4fv;
+       glUniform4i;
+       glUniform4iv;
+       glUniformMatrix2fv;
+       glUniformMatrix3fv;
+       glUniformMatrix4fv;
+       glUseProgram;
+       glValidateProgram;
+       glVertexAttrib1f;
+       glVertexAttrib1fv;
+       glVertexAttrib2f;
+       glVertexAttrib2fv;
+       glVertexAttrib3f;
+       glVertexAttrib3fv;
+       glVertexAttrib4f;
+       glVertexAttrib4fv;
+       glVertexAttribPointer;
+       glViewport;
 
-    # Extensions
-    glTexImage3DOES;
-    glBlitFramebufferANGLE;
-    glRenderbufferStorageMultisampleANGLE;
-    glDeleteFencesNV;
-    glFinishFenceNV;
-    glGenFencesNV;
-    glGetFenceivNV;
-    glIsFenceNV;
-    glSetFenceNV;
-    glTestFenceNV;
-    glGetGraphicsResetStatusEXT;
-    glReadnPixelsEXT;
-    glGetnUniformfvEXT;
-    glGetnUniformivEXT;
-    glGenQueriesEXT;
-    glDeleteQueriesEXT;
-    glIsQueryEXT;
-    glBeginQueryEXT;
-    glEndQueryEXT;
-    glGetQueryivEXT;
-    glGetQueryObjectuivEXT;
-    glEGLImageTargetTexture2DOES;
-    glEGLImageTargetRenderbufferStorageOES;
+       # OpenGL ES 3.0 core functions
+       glReadBuffer;
+       glDrawRangeElements;
+       glTexImage3D;
+       glTexSubImage3D;
+       glCopyTexSubImage3D;
+       glCompressedTexImage3D;
+       glCompressedTexSubImage3D;
+       glGenQueries;
+       glDeleteQueries;
+       glIsQuery;
+       glBeginQuery;
+       glEndQuery;
+       glGetQueryiv;
+       glGetQueryObjectuiv;
+       glUnmapBuffer;
+       glGetBufferPointerv;
+       glDrawBuffers;
+       glUniformMatrix2x3fv;
+       glUniformMatrix3x2fv;
+       glUniformMatrix2x4fv;
+       glUniformMatrix4x2fv;
+       glUniformMatrix3x4fv;
+       glUniformMatrix4x3fv;
+       glBlitFramebuffer;
+       glRenderbufferStorageMultisample;
+       glFramebufferTextureLayer;
+       glMapBufferRange;
+       glFlushMappedBufferRange;
+       glBindVertexArray;
+       glDeleteVertexArrays;
+       glGenVertexArrays;
+       glIsVertexArray;
+       glGetIntegeri_v;
+       glBeginTransformFeedback;
+       glEndTransformFeedback;
+       glBindBufferRange;
+       glBindBufferBase;
+       glTransformFeedbackVaryings;
+       glGetTransformFeedbackVarying;
+       glVertexAttribIPointer;
+       glGetVertexAttribIiv;
+       glGetVertexAttribIuiv;
+       glVertexAttribI4i;
+       glVertexAttribI4ui;
+       glVertexAttribI4iv;
+       glVertexAttribI4uiv;
+       glGetUniformuiv;
+       glGetFragDataLocation;
+       glUniform1ui;
+       glUniform2ui;
+       glUniform3ui;
+       glUniform4ui;
+       glUniform1uiv;
+       glUniform2uiv;
+       glUniform3uiv;
+       glUniform4uiv;
+       glClearBufferiv;
+       glClearBufferuiv;
+       glClearBufferfv;
+       glClearBufferfi;
+       glGetStringi;
+       glCopyBufferSubData;
+       glGetUniformIndices;
+       glGetActiveUniformsiv;
+       glGetUniformBlockIndex;
+       glGetActiveUniformBlockiv;
+       glGetActiveUniformBlockName;
+       glUniformBlockBinding;
+       glDrawArraysInstanced;
+       glDrawElementsInstanced;
+       glFenceSync;
+       glIsSync;
+       glDeleteSync;
+       glClientWaitSync;
+       glWaitSync;
+       glGetInteger64v;
+       glGetSynciv;
+       glGetInteger64i_v;
+       glGetBufferParameteri64v;
+       glGenSamplers;
+       glDeleteSamplers;
+       glIsSampler;
+       glBindSampler;
+       glSamplerParameteri;
+       glSamplerParameteriv;
+       glSamplerParameterf;
+       glSamplerParameterfv;
+       glGetSamplerParameteriv;
+       glGetSamplerParameterfv;
+       glVertexAttribDivisor;
+       glBindTransformFeedback;
+       glDeleteTransformFeedbacks;
+       glGenTransformFeedbacks;
+       glIsTransformFeedback;
+       glPauseTransformFeedback;
+       glResumeTransformFeedback;
+       glGetProgramBinary;
+       glProgramBinary;
+       glProgramParameteri;
+       glInvalidateFramebuffer;
+       glInvalidateSubFramebuffer;
+       glTexStorage2D;
+       glTexStorage3D;
+       glGetInternalformativ;
+
+       # Extensions
+       glTexImage3DOES;
+       glBlitFramebufferANGLE;
+       glRenderbufferStorageMultisampleANGLE;
+       glDeleteFencesNV;
+       glFinishFenceNV;
+       glGenFencesNV;
+       glGetFenceivNV;
+       glIsFenceNV;
+       glSetFenceNV;
+       glTestFenceNV;
+       glGetGraphicsResetStatusEXT;
+       glReadnPixelsEXT;
+       glGetnUniformfvEXT;
+       glGetnUniformivEXT;
+       glGenQueriesEXT;
+       glDeleteQueriesEXT;
+       glIsQueryEXT;
+       glBeginQueryEXT;
+       glEndQueryEXT;
+       glGetQueryivEXT;
+       glGetQueryObjectuivEXT;
+       glEGLImageTargetTexture2DOES;
+       glEGLImageTargetRenderbufferStorageOES;
        glIsRenderbufferOES;
        glBindRenderbufferOES;
        glDeleteRenderbuffersOES;
@@ -184,117 +291,15 @@ global:
        glGenerateMipmapOES;
        glDrawBuffersEXT;
 
-    # GLES 3.0 Functions
-    glReadBuffer;
-    glDrawRangeElements;
-    glTexImage3D;
-    glTexSubImage3D;
-    glCopyTexSubImage3D;
-    glCompressedTexImage3D;
-    glCompressedTexSubImage3D;
-    glGenQueries;
-    glDeleteQueries;
-    glIsQuery;
-    glBeginQuery;
-    glEndQuery;
-    glGetQueryiv;
-    glGetQueryObjectuiv;
-    glUnmapBuffer;
-    glGetBufferPointerv;
-    glDrawBuffers;
-    glUniformMatrix2x3fv;
-    glUniformMatrix3x2fv;
-    glUniformMatrix2x4fv;
-    glUniformMatrix4x2fv;
-    glUniformMatrix3x4fv;
-    glUniformMatrix4x3fv;
-    glBlitFramebuffer;
-    glRenderbufferStorageMultisample;
-    glFramebufferTextureLayer;
-    glMapBufferRange;
-    glFlushMappedBufferRange;
-    glBindVertexArray;
-    glDeleteVertexArrays;
-    glGenVertexArrays;
-    glIsVertexArray;
-    glGetIntegeri_v;
-    glBeginTransformFeedback;
-    glEndTransformFeedback;
-    glBindBufferRange;
-    glBindBufferBase;
-    glTransformFeedbackVaryings;
-    glGetTransformFeedbackVarying;
-    glVertexAttribIPointer;
-    glGetVertexAttribIiv;
-    glGetVertexAttribIuiv;
-    glVertexAttribI4i;
-    glVertexAttribI4ui;
-    glVertexAttribI4iv;
-    glVertexAttribI4uiv;
-    glGetUniformuiv;
-    glGetFragDataLocation;
-    glUniform1ui;
-    glUniform2ui;
-    glUniform3ui;
-    glUniform4ui;
-    glUniform1uiv;
-    glUniform2uiv;
-    glUniform3uiv;
-    glUniform4uiv;
-    glClearBufferiv;
-    glClearBufferuiv;
-    glClearBufferfv;
-    glClearBufferfi;
-    glGetStringi;
-    glCopyBufferSubData;
-    glGetUniformIndices;
-    glGetActiveUniformsiv;
-    glGetUniformBlockIndex;
-    glGetActiveUniformBlockiv;
-    glGetActiveUniformBlockName;
-    glUniformBlockBinding;
-    glDrawArraysInstanced;
-    glDrawElementsInstanced;
-    glFenceSync;
-    glIsSync;
-    glDeleteSync;
-    glClientWaitSync;
-    glWaitSync;
-    glGetInteger64v;
-    glGetSynciv;
-    glGetInteger64i_v;
-    glGetBufferParameteri64v;
-    glGenSamplers;
-    glDeleteSamplers;
-    glIsSampler;
-    glBindSampler;
-    glSamplerParameteri;
-    glSamplerParameteriv;
-    glSamplerParameterf;
-    glSamplerParameterfv;
-    glGetSamplerParameteriv;
-    glGetSamplerParameterfv;
-    glVertexAttribDivisor;
-    glBindTransformFeedback;
-    glDeleteTransformFeedbacks;
-    glGenTransformFeedbacks;
-    glIsTransformFeedback;
-    glPauseTransformFeedback;
-    glResumeTransformFeedback;
-    glGetProgramBinary;
-    glProgramBinary;
-    glProgramParameteri;
-    glInvalidateFramebuffer;
-    glInvalidateSubFramebuffer;
-    glTexStorage2D;
-    glTexStorage3D;
-    glGetInternalformativ;
+       # Table of function pointers to disambiguate between libraries
+       libGLESv2_swiftshader;
 
-    libGLESv2_swiftshader;
+       # Type-strings and type-infos required by sanitizers
+       _ZTS*;
+       _ZTI*;
 
-    Register;
+       Register;
 
 local:
-    *;
+       *;
 };
-