[Interest] Linking issues with Angle and Qt 5.12.x

Federico Buti fed.buti at gmail.com
Mon May 27 14:08:05 CEST 2019


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 <vperetokin at 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.Wolff at 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 at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b4):
>>
>> > undefined reference to `glDeleteShader at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5):
>>
>> > undefined reference to `glDeleteBuffers at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5):
>>
>> > undefined reference to `glDeleteShader at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5):
>>
>> > undefined reference to `glDeleteProgram at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x988):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9a0):
>>
>> > undefined reference to `_imp__glPixelStorei at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9fc):
>>
>> > undefined reference to `_imp__glTexSubImage2D at 36'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0xa43):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1361):
>>
>> > undefined reference to `_imp__glDeleteTextures at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1388):
>>
>> > undefined reference to `_imp__glGetError at 0'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1407):
>>
>> > undefined reference to `_imp__glGenTextures at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x143a):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1442):
>>
>> > undefined reference to `_imp__glPixelStorei at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14ae):
>>
>> > undefined reference to `_imp__glTexImage2D at 36'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14d7):
>>
>> > undefined reference to `_imp__glTexParameteri at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1638):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16b9):
>>
>> > undefined reference to `glGenerateMipmap at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16fa):
>>
>> > undefined reference to `_imp__glTexImage2D at 36'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x171a):
>>
>> > undefined reference to `_imp__glTexParameteri at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x17e0):
>>
>> > undefined reference to `glUniform4fv at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1828):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x185f):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x18bb):
>>
>> > undefined reference to `glGetProgramInfoLog at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x192e):
>>
>> > undefined reference to `glGetShaderInfoLog at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19c9):
>>
>> > undefined reference to `glCreateProgram at 0'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19d7):
>>
>> > undefined reference to `glCreateShader at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19e8):
>>
>> > undefined reference to `glCreateShader at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a19):
>>
>> > undefined reference to `glShaderSource at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a44):
>>
>> > undefined reference to `glShaderSource at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a4f):
>>
>> > undefined reference to `glCompileShader at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a6a):
>>
>> > undefined reference to `glGetShaderiv at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a94):
>>
>> > undefined reference to `glCompileShader at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aaf):
>>
>> > undefined reference to `glGetShaderiv at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1adb):
>>
>> > undefined reference to `glAttachShader at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aea):
>>
>> > undefined reference to `glAttachShader at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b05):
>>
>> > undefined reference to `glBindAttribLocation at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b20):
>>
>> > undefined reference to `glBindAttribLocation at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b2b):
>>
>> > undefined reference to `glLinkProgram at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b46):
>>
>> > undefined reference to `glGetProgramiv at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bd9):
>>
>> > undefined reference to `glGetUniformLocation at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bf1):
>>
>> > undefined reference to `glGetUniformLocation at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c09):
>>
>> > undefined reference to `glGetUniformLocation at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c22):
>>
>> > undefined reference to `glGenBuffers at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c38):
>>
>> > undefined reference to `_imp__glFinish at 0'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d14):
>>
>> > undefined reference to `_imp__glStencilFunc at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5f):
>>
>> > undefined reference to `glUseProgram at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d64):
>>
>> > undefined reference to `_imp__glEnable at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d86):
>>
>> > undefined reference to `_imp__glCullFace at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d96):
>>
>> > undefined reference to `_imp__glFrontFace at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1da7):
>>
>> > undefined reference to `_imp__glDisable at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1dca):
>>
>> > undefined reference to `_imp__glColorMask at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1df7):
>>
>> > undefined reference to `_imp__glStencilMask at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e0c):
>>
>> > undefined reference to `_imp__glStencilOp at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e4c):
>>
>> > undefined reference to `_imp__glStencilFunc at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5b):
>>
>> > undefined reference to `glActiveTexture at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e60):
>>
>> > undefined reference to `_imp__glBindTexture at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1edf):
>>
>> > undefined reference to `glBindBuffer at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f07):
>>
>> > undefined reference to `glBufferData at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f16):
>>
>> > undefined reference to `glEnableVertexAttribArray at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f25):
>>
>> > undefined reference to `glEnableVertexAttribArray at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5c):
>>
>> > undefined reference to `glVertexAttribPointer at 24'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f93):
>>
>> > undefined reference to `glVertexAttribPointer at 24'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fa9):
>>
>> > undefined reference to `glUniform1i at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fc6):
>>
>> > undefined reference to `glUniform4fv at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fce):
>>
>> > undefined reference to `_imp__glDrawArrays at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2085):
>>
>> > undefined reference to `glBlendFuncSeparate at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2141):
>>
>> > undefined reference to `glStencilOpSeparate at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2168):
>>
>> > undefined reference to `glStencilOpSeparate at 16'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x217f):
>>
>> > undefined reference to `_imp__glDrawArrays at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2289):
>>
>> > undefined reference to `glDisableVertexAttribArray at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2298):
>>
>> > undefined reference to `glDisableVertexAttribArray at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22bd):
>>
>> > undefined reference to `glBindBuffer at 8'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22cc):
>>
>> > undefined reference to `glUseProgram at 4'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2374):
>>
>> > undefined reference to `_imp__glDrawArrays at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x249e):
>>
>> > undefined reference to `_imp__glDrawArrays at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2532):
>>
>> > undefined reference to `_imp__glDrawArrays at 12'
>> >
>> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2843):
>>
>> > undefined reference to `_imp__glDrawArrays at 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 at qt-project.org
>> > https://lists.qt-project.org/listinfo/interest
>> >
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> https://lists.qt-project.org/listinfo/interest
>>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20190527/035b508b/attachment-0001.html>


More information about the Interest mailing list