Hi Frederico, I am not aware of an issue with ANGLE when using MinGW. Can you create a bug report on http://bugreports.qt.io/ ,attach a minimal example, and assign it to me so that it does not get lost?
Olli On 25/05/2019 17:47, Federico Buti wrote: > Hi all. > > We are facing a quite strange behaviour with qnanopainter > <https://github.com/QUItCoding/qnanopainter>. > Building/running the library and the examples works smoothly on Qt 5.9.8 > and no issue is found. I guess everything was fixed there, see for > instance here > <https://github.com/QUItCoding/qnanopainter/issues/16#issue-235192684>. > > Building the code on 5.12.x results in a similar linker issue as > depicted in the last link. In particular we have a series of undefined > references as shown below: > > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x12b): > > undefined reference to `_imp__glDeleteTextures@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b4): > > undefined reference to `glDeleteShader@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5): > > undefined reference to `glDeleteBuffers@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5): > > undefined reference to `glDeleteShader@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5): > > undefined reference to `glDeleteProgram@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x988): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9a0): > > undefined reference to `_imp__glPixelStorei@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9fc): > > undefined reference to `_imp__glTexSubImage2D@36' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0xa43): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1361): > > undefined reference to `_imp__glDeleteTextures@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1388): > > undefined reference to `_imp__glGetError@0' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1407): > > undefined reference to `_imp__glGenTextures@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x143a): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1442): > > undefined reference to `_imp__glPixelStorei@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14ae): > > undefined reference to `_imp__glTexImage2D@36' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14d7): > > undefined reference to `_imp__glTexParameteri@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1638): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16b9): > > undefined reference to `glGenerateMipmap@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16fa): > > undefined reference to `_imp__glTexImage2D@36' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x171a): > > undefined reference to `_imp__glTexParameteri@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x17e0): > > undefined reference to `glUniform4fv@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1828): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x185f): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x18bb): > > undefined reference to `glGetProgramInfoLog@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x192e): > > undefined reference to `glGetShaderInfoLog@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19c9): > > undefined reference to `glCreateProgram@0' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19d7): > > undefined reference to `glCreateShader@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19e8): > > undefined reference to `glCreateShader@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a19): > > undefined reference to `glShaderSource@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a44): > > undefined reference to `glShaderSource@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a4f): > > undefined reference to `glCompileShader@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a6a): > > undefined reference to `glGetShaderiv@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a94): > > undefined reference to `glCompileShader@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aaf): > > undefined reference to `glGetShaderiv@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1adb): > > undefined reference to `glAttachShader@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aea): > > undefined reference to `glAttachShader@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b05): > > undefined reference to `glBindAttribLocation@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b20): > > undefined reference to `glBindAttribLocation@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b2b): > > undefined reference to `glLinkProgram@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b46): > > undefined reference to `glGetProgramiv@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bd9): > > undefined reference to `glGetUniformLocation@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bf1): > > undefined reference to `glGetUniformLocation@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c09): > > undefined reference to `glGetUniformLocation@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c22): > > undefined reference to `glGenBuffers@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c38): > > undefined reference to `_imp__glFinish@0' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d14): > > undefined reference to `_imp__glStencilFunc@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5f): > > undefined reference to `glUseProgram@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d64): > > undefined reference to `_imp__glEnable@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d86): > > undefined reference to `_imp__glCullFace@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d96): > > undefined reference to `_imp__glFrontFace@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1da7): > > undefined reference to `_imp__glDisable@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1dca): > > undefined reference to `_imp__glColorMask@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1df7): > > undefined reference to `_imp__glStencilMask@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e0c): > > undefined reference to `_imp__glStencilOp@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e4c): > > undefined reference to `_imp__glStencilFunc@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5b): > > undefined reference to `glActiveTexture@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e60): > > undefined reference to `_imp__glBindTexture@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1edf): > > undefined reference to `glBindBuffer@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f07): > > undefined reference to `glBufferData@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f16): > > undefined reference to `glEnableVertexAttribArray@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f25): > > undefined reference to `glEnableVertexAttribArray@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5c): > > undefined reference to `glVertexAttribPointer@24' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f93): > > undefined reference to `glVertexAttribPointer@24' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fa9): > > undefined reference to `glUniform1i@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fc6): > > undefined reference to `glUniform4fv@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fce): > > undefined reference to `_imp__glDrawArrays@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2085): > > undefined reference to `glBlendFuncSeparate@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2141): > > undefined reference to `glStencilOpSeparate@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2168): > > undefined reference to `glStencilOpSeparate@16' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x217f): > > undefined reference to `_imp__glDrawArrays@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2289): > > undefined reference to `glDisableVertexAttribArray@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2298): > > undefined reference to `glDisableVertexAttribArray@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22bd): > > undefined reference to `glBindBuffer@8' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22cc): > > undefined reference to `glUseProgram@4' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2374): > > undefined reference to `_imp__glDrawArrays@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x249e): > > undefined reference to `_imp__glDrawArrays@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2532): > > undefined reference to `_imp__glDrawArrays@12' > libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2843): > > undefined reference to `_imp__glDrawArrays@12' > > When we substituted the "liblibGLESv2.a" from Qt 5.12 with the one from > 5.9 - just to do a wild test - compilation succeeded but then we had a > runtime failure which was totally expected. > > The very same series of undefined references are also spotted while > cross-compiling with MXE and a patched Qt version to have dynamic > selection of the GL backend. > > What is exactly happening here? How can we proceed? What's the best way > to use angle when cross-compiling Qt, e.g. with MXE? > > Thanks in advance, > F. > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest > _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest