Hi all. Maybe I'm wrong - that's not exactly my cup of tea here - but I've noticed something that feels off to me. The def file <https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/angle/src/libGLESv2/libGLESv2_mingw32.def?h=5.9.8> included in Qt 5.9.x for the exported functions seems to correctly match the undefined references that I reported in the original email. Things like "glBindTexture@8" or "glDeleteTextures@8" are indeed there and there is no undefined reference. Instead, the corresponding file <https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/angle/src/libGLESv2/libGLESv2d_mingw32.def?h=5.12.3> in Qt 5.12.x seems to export different names and it matches exactly the non ming32 <https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/angle/src/libGLESv2/libGLESv2d.def?h=5.12.3> one.
Is that correct? Thanks, F. On Mon, 27 May 2019 at 17:12, Federico Buti <fed.b...@gmail.com> wrote: > An update. > > We used chroot from Archlinux and repos which provides a patched ANGLE, as > seen here > <https://github.com/edubart/archlibs/blob/master/mingw-w64/mingw-w64-angleproject/angleproject-fix-mingw-compatibility.patch#L51>, > and > it worked like a charm. We were able to compile qnanopainter and deploy it > via qtwindeploy to a Windows host. Not sure if this rings some bells but > just thought it was worth mentioning. > > Regards, > F. > > > On Mon, 27 May 2019 at 14:08, Federico Buti <fed.b...@gmail.com> wrote: > >> Hi Vadim, >> >> Thanks for the reply. >> No, quite sure we are not mixing packages in MXE. Compilation is forced >> for 32 bit target only. On native Windows we are using plain Qt 5.12.x from >> qt.io so there everything should be correctly aligned too. >> F. >> >> >> On Mon, 27 May 2019 at 13:11, Vadim Peretokin <vpereto...@gmail.com> >> wrote: >> >>> Are you mixing 64bit and 32bit libraries by accident during linking? I >>> had similar messages in that scenario. >>> >>> On Mon, May 27, 2019 at 12:57 PM Oliver Wolff <oliver.wo...@qt.io> >>> wrote: >>> >>>> 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 >>>> >>> _______________________________________________ >>> 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