Bug#1066577: nanovg: FTBFS: ../src/nanovg_gl.h:341:17: error: implicit declaration of function ‘glBlendFuncSeparate’; did you mean ‘glnvg__blendFuncSeparate’? [-Werror=implicit-function-declaration]
Source: nanovg
Version: 0.0~git20230826.f93799c+dfsg-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas@debian.org
Usertags: ftbfs-20240313 ftbfs-trixie ftbfs-impfuncdef
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
This is most likely caused by a change in dpkg 1.22.6, that enabled
-Werror=implicit-function-declaration. For more information, see
https://wiki.debian.org/qa.debian.org/FTBFS#A2024-03-13_-Werror.3Dimplicit-function-declaration
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>/build'
> ==== Building nanovg (debug) ====
> Creating obj/Debug/nanovg
> nanovg.c
> Linking nanovg
> ==== Building example_gl2 (debug) ====
> ==== Building example_gl3 (debug) ====
> ==== Building example_gl2_msaa (debug) ====
> ==== Building example_gl3_msaa (debug) ====
> ==== Building example_fbo (debug) ====
> ==== Building example_gles2 (debug) ====
> ==== Building example_gles3 (debug) ====
> Creating obj/Debug/example_gl2
> Creating obj/Debug/example_gl3
> example_gl2.c
> Creating obj/Debug/example_gl2_msaa
> Creating obj/Debug/example_gl3_msaa
> example_gl3.c
> Creating obj/Debug/example_gles3
> Creating obj/Debug/example_fbo
> Creating obj/Debug/example_gles2
> demo.c
> example_gl2.c
> example_gl3.c
> example_gles3.c
> example_gles2.c
> example_fbo.c
> In file included from ../example/example_fbo.c:29:
> ../src/nanovg_gl.h: In function ‘glnvg__blendFuncSeparate’:
> ../src/nanovg_gl.h:341:17: error: implicit declaration of function ‘glBlendFuncSeparate’; did you mean ‘glnvg__blendFuncSeparate’? [-Werror=implicit-function-declaration]
> 341 | glBlendFuncSeparate(blend->srcRGB, blend->dstRGB, blend->srcAlpha,blend->dstAlpha);
> | ^~~~~~~~~~~~~~~~~~~
> | glnvg__blendFuncSeparate
> ../src/nanovg_gl.h: In function ‘glnvg__dumpShaderError’:
> ../src/nanovg_gl.h:404:9: error: implicit declaration of function ‘glGetShaderInfoLog’ [-Werror=implicit-function-declaration]
> 404 | glGetShaderInfoLog(shader, 512, &len, str);
> | ^~~~~~~~~~~~~~~~~~
> ../example/demo.c: In function ‘drawParagraph’:
> ../example/demo.c:874:21: warning: unused variable ‘boxText’ [-Wunused-variable]
> 874 | const char* boxText = "Testing\nsome multiline\ntext.";
> | ^~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__dumpProgramError’:
> ../src/nanovg_gl.h:414:9: error: implicit declaration of function ‘glGetProgramInfoLog’ [-Werror=implicit-function-declaration]
> 414 | glGetProgramInfoLog(prog, 512, &len, str);
> | ^~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__createShader’:
> ../src/nanovg_gl.h:441:16: error: implicit declaration of function ‘glCreateProgram’ [-Werror=implicit-function-declaration]
> 441 | prog = glCreateProgram();
> | ^~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:442:16: error: implicit declaration of function ‘glCreateShader’; did you mean ‘glnvg__createShader’? [-Werror=implicit-function-declaration]
> 442 | vert = glCreateShader(GL_VERTEX_SHADER);
> | ^~~~~~~~~~~~~~
> | glnvg__createShader
> ../src/nanovg_gl.h:445:9: error: implicit declaration of function ‘glShaderSource’ [-Werror=implicit-function-declaration]
> 445 | glShaderSource(vert, 3, str, 0);
> | ^~~~~~~~~~~~~~
> ../src/nanovg_gl.h:449:9: error: implicit declaration of function ‘glCompileShader’ [-Werror=implicit-function-declaration]
> 449 | glCompileShader(vert);
> | ^~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:450:9: error: implicit declaration of function ‘glGetShaderiv’; did you mean ‘glGetMapiv’? [-Werror=implicit-function-declaration]
> 450 | glGetShaderiv(vert, GL_COMPILE_STATUS, &status);
> | ^~~~~~~~~~~~~
> | glGetMapiv
> ../src/nanovg_gl.h:463:9: error: implicit declaration of function ‘glAttachShader’ [-Werror=implicit-function-declaration]
> 463 | glAttachShader(prog, vert);
> | ^~~~~~~~~~~~~~
> ../src/nanovg_gl.h:466:9: error: implicit declaration of function ‘glBindAttribLocation’ [-Werror=implicit-function-declaration]
> 466 | glBindAttribLocation(prog, 0, "vertex");
> | ^~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:469:9: error: implicit declaration of function ‘glLinkProgram’; did you mean ‘glHistogram’? [-Werror=implicit-function-declaration]
> 469 | glLinkProgram(prog);
> | ^~~~~~~~~~~~~
> | glHistogram
> ../src/nanovg_gl.h:470:9: error: implicit declaration of function ‘glGetProgramiv’ [-Werror=implicit-function-declaration]
> 470 | glGetProgramiv(prog, GL_LINK_STATUS, &status);
> | ^~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__deleteShader’:
> ../src/nanovg_gl.h:486:17: error: implicit declaration of function ‘glDeleteProgram’ [-Werror=implicit-function-declaration]
> 486 | glDeleteProgram(shader->prog);
> | ^~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:488:17: error: implicit declaration of function ‘glDeleteShader’; did you mean ‘glnvg__deleteShader’? [-Werror=implicit-function-declaration]
> 488 | glDeleteShader(shader->vert);
> | ^~~~~~~~~~~~~~
> | glnvg__deleteShader
> ../src/nanovg_gl.h: In function ‘glnvg__getUniforms’:
> ../src/nanovg_gl.h:495:43: error: implicit declaration of function ‘glGetUniformLocation’ [-Werror=implicit-function-declaration]
> 495 | shader->loc[GLNVG_LOC_VIEWSIZE] = glGetUniformLocation(shader->prog, "viewSize");
> | ^~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:499:39: error: implicit declaration of function ‘glGetUniformBlockIndex’ [-Werror=implicit-function-declaration]
> 499 | shader->loc[GLNVG_LOC_FRAG] = glGetUniformBlockIndex(shader->prog, "frag");
> | ^~~~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__renderCreate’:
> ../src/nanovg_gl.h:695:9: error: implicit declaration of function ‘glGenVertexArrays’ [-Werror=implicit-function-declaration]
> 695 | glGenVertexArrays(1, &gl->vertArr);
> | ^~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:697:9: error: implicit declaration of function ‘glGenBuffers’; did you mean ‘glReadBuffer’? [-Werror=implicit-function-declaration]
> 697 | glGenBuffers(1, &gl->vertBuf);
> | ^~~~~~~~~~~~
> | glReadBuffer
> ../src/nanovg_gl.h:701:9: error: implicit declaration of function ‘glUniformBlockBinding’ [-Werror=implicit-function-declaration]
> 701 | glUniformBlockBinding(gl->shader.prog, gl->shader.loc[GLNVG_LOC_FRAG], GLNVG_FRAG_BINDING);
> | ^~~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__renderCreateTexture’:
> ../src/nanovg_gl.h:813:17: error: implicit declaration of function ‘glGenerateMipmap’ [-Werror=implicit-function-declaration]
> 813 | glGenerateMipmap(GL_TEXTURE_2D);
> | ^~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__setUniforms’:
> ../src/nanovg_gl.h:986:9: error: implicit declaration of function ‘glBindBufferRange’ [-Werror=implicit-function-declaration]
> 986 | glBindBufferRange(GL_UNIFORM_BUFFER, GLNVG_FRAG_BINDING, gl->fragBuf, uniformOffset, sizeof(GLNVGfragUniforms));
> | ^~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__fill’:
> ../src/nanovg_gl.h:1026:9: error: implicit declaration of function ‘glStencilOpSeparate’ [-Werror=implicit-function-declaration]
> 1026 | glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR_WRAP);
> | ^~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__renderFlush’:
> ../src/nanovg_gl.h:1187:17: error: implicit declaration of function ‘glUseProgram’ [-Werror=implicit-function-declaration]
> 1187 | glUseProgram(gl->shader.prog);
> | ^~~~~~~~~~~~
> ../src/nanovg_gl.h:1215:17: error: implicit declaration of function ‘glBindBuffer’; did you mean ‘glReadBuffer’? [-Werror=implicit-function-declaration]
> 1215 | glBindBuffer(GL_UNIFORM_BUFFER, gl->fragBuf);
> | ^~~~~~~~~~~~
> | glReadBuffer
> ../src/nanovg_gl.h:1216:17: error: implicit declaration of function ‘glBufferData’ [-Werror=implicit-function-declaration]
> 1216 | glBufferData(GL_UNIFORM_BUFFER, gl->nuniforms * gl->fragSize, gl->uniforms, GL_STREAM_DRAW);
> | ^~~~~~~~~~~~
> ../src/nanovg_gl.h:1221:17: error: implicit declaration of function ‘glBindVertexArray’ [-Werror=implicit-function-declaration]
> 1221 | glBindVertexArray(gl->vertArr);
> | ^~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:1225:17: error: implicit declaration of function ‘glEnableVertexAttribArray’ [-Werror=implicit-function-declaration]
> 1225 | glEnableVertexAttribArray(0);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h:1227:17: error: implicit declaration of function ‘glVertexAttribPointer’; did you mean ‘glVertexPointer’? [-Werror=implicit-function-declaration]
> 1227 | glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(NVGvertex), (const GLvoid*)(size_t)0);
> | ^~~~~~~~~~~~~~~~~~~~~
> | glVertexPointer
> ../src/nanovg_gl.h:1231:17: error: implicit declaration of function ‘glUniform1i’ [-Werror=implicit-function-declaration]
> 1231 | glUniform1i(gl->shader.loc[GLNVG_LOC_TEX], 0);
> | ^~~~~~~~~~~
> ../src/nanovg_gl.h:1232:17: error: implicit declaration of function ‘glUniform2fv’ [-Werror=implicit-function-declaration]
> 1232 | glUniform2fv(gl->shader.loc[GLNVG_LOC_VIEWSIZE], 1, gl->view);
> | ^~~~~~~~~~~~
> ../src/nanovg_gl.h:1251:17: error: implicit declaration of function ‘glDisableVertexAttribArray’ [-Werror=implicit-function-declaration]
> 1251 | glDisableVertexAttribArray(0);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl.h: In function ‘glnvg__renderDelete’:
> ../src/nanovg_gl.h:1540:17: error: implicit declaration of function ‘glDeleteBuffers’; did you mean ‘glSelectBuffer’? [-Werror=implicit-function-declaration]
> 1540 | glDeleteBuffers(1, &gl->fragBuf);
> | ^~~~~~~~~~~~~~~
> | glSelectBuffer
> ../src/nanovg_gl.h:1543:17: error: implicit declaration of function ‘glDeleteVertexArrays’ [-Werror=implicit-function-declaration]
> 1543 | glDeleteVertexArrays(1, &gl->vertArr);
> | ^~~~~~~~~~~~~~~~~~~~
> In file included from ../example/example_fbo.c:30:
> ../src/nanovg_gl_utils.h: In function ‘nvgluCreateFramebuffer’:
> ../src/nanovg_gl_utils.h:81:9: error: implicit declaration of function ‘glGenFramebuffers’; did you mean ‘glfwGetFramebufferSize’? [-Werror=implicit-function-declaration]
> 81 | glGenFramebuffers(1, &fb->fbo);
> | ^~~~~~~~~~~~~~~~~
> | glfwGetFramebufferSize
> ../src/nanovg_gl_utils.h:82:9: error: implicit declaration of function ‘glBindFramebuffer’; did you mean ‘nvgluBindFramebuffer’? [-Werror=implicit-function-declaration]
> 82 | glBindFramebuffer(GL_FRAMEBUFFER, fb->fbo);
> | ^~~~~~~~~~~~~~~~~
> | nvgluBindFramebuffer
> ../src/nanovg_gl_utils.h:85:9: error: implicit declaration of function ‘glGenRenderbuffers’ [-Werror=implicit-function-declaration]
> 85 | glGenRenderbuffers(1, &fb->rbo);
> | ^~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl_utils.h:86:9: error: implicit declaration of function ‘glBindRenderbuffer’ [-Werror=implicit-function-declaration]
> 86 | glBindRenderbuffer(GL_RENDERBUFFER, fb->rbo);
> | ^~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl_utils.h:87:9: error: implicit declaration of function ‘glRenderbufferStorage’ [-Werror=implicit-function-declaration]
> 87 | glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX8, w, h);
> | ^~~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl_utils.h:90:9: error: implicit declaration of function ‘glFramebufferTexture2D’ [-Werror=implicit-function-declaration]
> 90 | glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, fb->texture, 0);
> | ^~~~~~~~~~~~~~~~~~~~~~
> demo.c
> perf.c
> demo.c
> ../src/nanovg_gl_utils.h:91:9: error: implicit declaration of function ‘glFramebufferRenderbuffer’ [-Werror=implicit-function-declaration]
> 91 | glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fb->rbo);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> ../src/nanovg_gl_utils.h:93:13: error: implicit declaration of function ‘glCheckFramebufferStatus’ [-Werror=implicit-function-declaration]
> 93 | if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> demo.c
> ../src/nanovg_gl_utils.h: In function ‘nvgluDeleteFramebuffer’:
> ../src/nanovg_gl_utils.h:138:17: error: implicit declaration of function ‘glDeleteFramebuffers’; did you mean ‘nvgluDeleteFramebuffer’? [-Werror=implicit-function-declaration]
> 138 | glDeleteFramebuffers(1, &fb->fbo);
> | ^~~~~~~~~~~~~~~~~~~~
> | nvgluDeleteFramebuffer
> ../src/nanovg_gl_utils.h:140:17: error: implicit declaration of function ‘glDeleteRenderbuffers’ [-Werror=implicit-function-declaration]
> 140 | glDeleteRenderbuffers(1, &fb->rbo);
> | ^~~~~~~~~~~~~~~~~~~~~
> demo.c
> demo.c
> ../example/perf.c: In function ‘startGPUTimer’:
> ../example/perf.c:46:9: error: implicit declaration of function ‘glBeginQuery’ [-Werror=implicit-function-declaration]
> 46 | glBeginQuery(GL_TIME_ELAPSED, timer->queries[timer->cur % GPU_QUERY_COUNT] );
> | ^~~~~~~~~~~~
> ../example/perf.c: In function ‘stopGPUTimer’:
> ../example/perf.c:59:9: error: implicit declaration of function ‘glEndQuery’ [-Werror=implicit-function-declaration]
> 59 | glEndQuery(GL_TIME_ELAPSED);
> | ^~~~~~~~~~
> ../example/demo.c: In function ‘drawParagraph’:
> ../example/demo.c:874:21: warning: unused variable ‘boxText’ [-Wunused-variable]
> 874 | const char* boxText = "Testing\nsome multiline\ntext.";
> | ^~~~~~~
> ../example/perf.c:62:17: error: implicit declaration of function ‘glGetQueryObjectiv’ [-Werror=implicit-function-declaration]
> 62 | glGetQueryObjectiv(timer->queries[timer->ret % GPU_QUERY_COUNT], GL_QUERY_RESULT_AVAILABLE, &available);
> | ^~~~~~~~~~~~~~~~~~
> ../example/demo.c: In function ‘drawParagraph’:
> ../example/demo.c:874:21: warning: unused variable ‘boxText’ [-Wunused-variable]
> 874 | const char* boxText = "Testing\nsome multiline\ntext.";
> | ^~~~~~~
> cc1: some warnings being treated as errors
> make[2]: *** [example_gles3.make:226: obj/Debug/example_gles3/perf.o] Error 1
The full build log is available from:
http://qa-logs.debian.net/2024/03/13/nanovg_0.0~git20230826.f93799c+dfsg-1_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240313;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240313&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
Reply to: