mapi: work around GCC LTO dropping assembly-defined functions
[mesa.git] / src / mapi / es2api / ABI-check
1 #!/bin/sh
2 set -eu
3
4 # Print defined gl.* functions not in GL ES 3.{0..2}
5
6 case "$(uname)" in
7 Darwin)
8 LIB=${1-es2api/.libs/libGLESv2.dylib}
9 ;;
10 CYGWIN*)
11 LIB=${1-es2api/.libs/cygGLESv2-2.dll}
12 ;;
13 *)
14 LIB=${1-es2api/.libs/libGLESv2.so.2}
15 ;;
16 esac
17
18 if ! [ -f "$LIB" ]
19 then
20 exit 1
21 fi
22
23 FUNCS=$($NM -D --defined-only $LIB | grep -o 'T gl.*' | cut -c 3- | while read func; do
24 ( grep -q "^$func$" || echo $func ) <<EOF
25 glActiveShaderProgram
26 glActiveTexture
27 glAttachShader
28 glBeginQuery
29 glBeginTransformFeedback
30 glBindAttribLocation
31 glBindBuffer
32 glBindBufferBase
33 glBindBufferRange
34 glBindFramebuffer
35 glBindImageTexture
36 glBindProgramPipeline
37 glBindRenderbuffer
38 glBindSampler
39 glBindTexture
40 glBindTransformFeedback
41 glBindVertexArray
42 glBindVertexBuffer
43 glBlendBarrier
44 glBlendColor
45 glBlendEquation
46 glBlendEquationSeparate
47 glBlendEquationSeparatei
48 glBlendEquationi
49 glBlendFunc
50 glBlendFuncSeparate
51 glBlendFuncSeparatei
52 glBlendFunci
53 glBlitFramebuffer
54 glBufferData
55 glBufferSubData
56 glCheckFramebufferStatus
57 glClear
58 glClearBufferfi
59 glClearBufferfv
60 glClearBufferiv
61 glClearBufferuiv
62 glClearColor
63 glClearDepthf
64 glClearStencil
65 glClientWaitSync
66 glColorMask
67 glColorMaski
68 glCompileShader
69 glCompressedTexImage2D
70 glCompressedTexImage3D
71 glCompressedTexSubImage2D
72 glCompressedTexSubImage3D
73 glCopyBufferSubData
74 glCopyImageSubData
75 glCopyTexImage2D
76 glCopyTexSubImage2D
77 glCopyTexSubImage3D
78 glCreateProgram
79 glCreateShader
80 glCreateShaderProgramv
81 glCullFace
82 glDebugMessageCallback
83 glDebugMessageControl
84 glDebugMessageInsert
85 glDeleteBuffers
86 glDeleteFramebuffers
87 glDeleteProgram
88 glDeleteProgramPipelines
89 glDeleteQueries
90 glDeleteRenderbuffers
91 glDeleteSamplers
92 glDeleteShader
93 glDeleteSync
94 glDeleteTextures
95 glDeleteTransformFeedbacks
96 glDeleteVertexArrays
97 glDepthFunc
98 glDepthMask
99 glDepthRangef
100 glDetachShader
101 glDisable
102 glDisableVertexAttribArray
103 glDisablei
104 glDispatchCompute
105 glDispatchComputeIndirect
106 glDrawArrays
107 glDrawArraysIndirect
108 glDrawArraysInstanced
109 glDrawBuffers
110 glDrawElements
111 glDrawElementsBaseVertex
112 glDrawElementsIndirect
113 glDrawElementsInstanced
114 glDrawElementsInstancedBaseVertex
115 glDrawRangeElements
116 glDrawRangeElementsBaseVertex
117 glEnable
118 glEnableVertexAttribArray
119 glEnablei
120 glEndQuery
121 glEndTransformFeedback
122 glFenceSync
123 glFinish
124 glFlush
125 glFlushMappedBufferRange
126 glFramebufferParameteri
127 glFramebufferRenderbuffer
128 glFramebufferTexture
129 glFramebufferTexture2D
130 glFramebufferTextureLayer
131 glFrontFace
132 glGenBuffers
133 glGenFramebuffers
134 glGenProgramPipelines
135 glGenQueries
136 glGenRenderbuffers
137 glGenSamplers
138 glGenTextures
139 glGenTransformFeedbacks
140 glGenVertexArrays
141 glGenerateMipmap
142 glGetActiveAttrib
143 glGetActiveUniform
144 glGetActiveUniformBlockName
145 glGetActiveUniformBlockiv
146 glGetActiveUniformsiv
147 glGetAttachedShaders
148 glGetAttribLocation
149 glGetBooleani_v
150 glGetBooleanv
151 glGetBufferParameteri64v
152 glGetBufferParameteriv
153 glGetBufferPointerv
154 glGetDebugMessageLog
155 glGetError
156 glGetFloatv
157 glGetFragDataLocation
158 glGetFramebufferAttachmentParameteriv
159 glGetFramebufferParameteriv
160 glGetGraphicsResetStatus
161 glGetInteger64i_v
162 glGetInteger64v
163 glGetIntegeri_v
164 glGetIntegerv
165 glGetInternalformativ
166 glGetMultisamplefv
167 glGetObjectLabel
168 glGetObjectPtrLabel
169 glGetPointerv
170 glGetProgramBinary
171 glGetProgramInfoLog
172 glGetProgramInterfaceiv
173 glGetProgramPipelineInfoLog
174 glGetProgramPipelineiv
175 glGetProgramResourceIndex
176 glGetProgramResourceLocation
177 glGetProgramResourceName
178 glGetProgramResourceiv
179 glGetProgramiv
180 glGetQueryObjectuiv
181 glGetQueryiv
182 glGetRenderbufferParameteriv
183 glGetSamplerParameterIiv
184 glGetSamplerParameterIuiv
185 glGetSamplerParameterfv
186 glGetSamplerParameteriv
187 glGetShaderInfoLog
188 glGetShaderPrecisionFormat
189 glGetShaderSource
190 glGetShaderiv
191 glGetString
192 glGetStringi
193 glGetSynciv
194 glGetTexLevelParameterfv
195 glGetTexLevelParameteriv
196 glGetTexParameterIiv
197 glGetTexParameterIuiv
198 glGetTexParameterfv
199 glGetTexParameteriv
200 glGetTransformFeedbackVarying
201 glGetUniformBlockIndex
202 glGetUniformIndices
203 glGetUniformLocation
204 glGetUniformfv
205 glGetUniformiv
206 glGetUniformuiv
207 glGetVertexAttribIiv
208 glGetVertexAttribIuiv
209 glGetVertexAttribPointerv
210 glGetVertexAttribfv
211 glGetVertexAttribiv
212 glGetnUniformfv
213 glGetnUniformiv
214 glGetnUniformuiv
215 glHint
216 glInvalidateFramebuffer
217 glInvalidateSubFramebuffer
218 glIsBuffer
219 glIsEnabled
220 glIsEnabledi
221 glIsFramebuffer
222 glIsProgram
223 glIsProgramPipeline
224 glIsQuery
225 glIsRenderbuffer
226 glIsSampler
227 glIsShader
228 glIsSync
229 glIsTexture
230 glIsTransformFeedback
231 glIsVertexArray
232 glLineWidth
233 glLinkProgram
234 glMapBufferRange
235 glMemoryBarrier
236 glMemoryBarrierByRegion
237 glMinSampleShading
238 glObjectLabel
239 glObjectPtrLabel
240 glPatchParameteri
241 glPauseTransformFeedback
242 glPixelStorei
243 glPolygonOffset
244 glPopDebugGroup
245 glPrimitiveBoundingBox
246 glProgramBinary
247 glProgramParameteri
248 glProgramUniform1f
249 glProgramUniform1fv
250 glProgramUniform1i
251 glProgramUniform1iv
252 glProgramUniform1ui
253 glProgramUniform1uiv
254 glProgramUniform2f
255 glProgramUniform2fv
256 glProgramUniform2i
257 glProgramUniform2iv
258 glProgramUniform2ui
259 glProgramUniform2uiv
260 glProgramUniform3f
261 glProgramUniform3fv
262 glProgramUniform3i
263 glProgramUniform3iv
264 glProgramUniform3ui
265 glProgramUniform3uiv
266 glProgramUniform4f
267 glProgramUniform4fv
268 glProgramUniform4i
269 glProgramUniform4iv
270 glProgramUniform4ui
271 glProgramUniform4uiv
272 glProgramUniformMatrix2fv
273 glProgramUniformMatrix2x3fv
274 glProgramUniformMatrix2x4fv
275 glProgramUniformMatrix3fv
276 glProgramUniformMatrix3x2fv
277 glProgramUniformMatrix3x4fv
278 glProgramUniformMatrix4fv
279 glProgramUniformMatrix4x2fv
280 glProgramUniformMatrix4x3fv
281 glPushDebugGroup
282 glReadBuffer
283 glReadPixels
284 glReadnPixels
285 glReleaseShaderCompiler
286 glRenderbufferStorage
287 glRenderbufferStorageMultisample
288 glResumeTransformFeedback
289 glSampleCoverage
290 glSampleMaski
291 glSamplerParameterIiv
292 glSamplerParameterIuiv
293 glSamplerParameterf
294 glSamplerParameterfv
295 glSamplerParameteri
296 glSamplerParameteriv
297 glScissor
298 glShaderBinary
299 glShaderSource
300 glStencilFunc
301 glStencilFuncSeparate
302 glStencilMask
303 glStencilMaskSeparate
304 glStencilOp
305 glStencilOpSeparate
306 glTexBuffer
307 glTexBufferRange
308 glTexImage2D
309 glTexImage3D
310 glTexParameterIiv
311 glTexParameterIuiv
312 glTexParameterf
313 glTexParameterfv
314 glTexParameteri
315 glTexParameteriv
316 glTexStorage2D
317 glTexStorage2DMultisample
318 glTexStorage3D
319 glTexStorage3DMultisample
320 glTexSubImage2D
321 glTexSubImage3D
322 glTransformFeedbackVaryings
323 glUniform1f
324 glUniform1fv
325 glUniform1i
326 glUniform1iv
327 glUniform1ui
328 glUniform1uiv
329 glUniform2f
330 glUniform2fv
331 glUniform2i
332 glUniform2iv
333 glUniform2ui
334 glUniform2uiv
335 glUniform3f
336 glUniform3fv
337 glUniform3i
338 glUniform3iv
339 glUniform3ui
340 glUniform3uiv
341 glUniform4f
342 glUniform4fv
343 glUniform4i
344 glUniform4iv
345 glUniform4ui
346 glUniform4uiv
347 glUniformBlockBinding
348 glUniformMatrix2fv
349 glUniformMatrix2x3fv
350 glUniformMatrix2x4fv
351 glUniformMatrix3fv
352 glUniformMatrix3x2fv
353 glUniformMatrix3x4fv
354 glUniformMatrix4fv
355 glUniformMatrix4x2fv
356 glUniformMatrix4x3fv
357 glUnmapBuffer
358 glUseProgram
359 glUseProgramStages
360 glValidateProgram
361 glValidateProgramPipeline
362 glVertexAttrib1f
363 glVertexAttrib1fv
364 glVertexAttrib2f
365 glVertexAttrib2fv
366 glVertexAttrib3f
367 glVertexAttrib3fv
368 glVertexAttrib4f
369 glVertexAttrib4fv
370 glVertexAttribBinding
371 glVertexAttribDivisor
372 glVertexAttribFormat
373 glVertexAttribI4i
374 glVertexAttribI4iv
375 glVertexAttribI4ui
376 glVertexAttribI4uiv
377 glVertexAttribIFormat
378 glVertexAttribIPointer
379 glVertexAttribPointer
380 glVertexBindingDivisor
381 glViewport
382 glWaitSync
383 EOF
384 done)
385
386 test ! -n "$FUNCS" || echo $FUNCS
387 test ! -n "$FUNCS"