EglFS plugin - undefined symbol: _Z19qt_qgl_paint_enginev



  • Hello,

    I (re)built Qt 5 from git, and I am wondering if the EglFS platform plugin is still functional. Maybe I did something wrong, but recently, I've been getting this warning:
    @
    Old plugin format found in lib /tmp/mnt/UserFS/qt/plugins/platforms/libqeglfs.so
    Qt plugin loader: Compatibility plugin '/tmp/mnt/UserFS/qt/plugins/platforms/lib
    qeglfs.so', need to load for accessing meta data.
    @

    The hellogl_es2, textures, 2dpainting, and practically all other example applications crash quickly after they start, with the same :
    @
    Old plugin format found in lib /tmp/mnt/UserFS/qt/plugins/platforms/libqeglfs.so
    Qt plugin loader: Compatibility plugin '/tmp/mnt/UserFS/qt/plugins/platforms/lib
    qeglfs.so', need to load for accessing meta data.
    Opened display 0x1

    Initialized display 1 4
    [...various application specific messages...]
    This plugin does not support propagateSizeHints()
    [...various application specific messages...]
    ./qtbase/opengl/textures/textures: symbol lookup error: /tmp/mnt/UserFS/qt/plugi
    ns/platforms/libqeglfs.so: undefined symbol: _Z19qt_qgl_paint_enginev
    @

    Surprisingly, the paintedwindow and hellowindow don't crash, the hellowindow even has a moving Qt logo, although I do get a BAD_ACCESS eglError apparently...
    (Talkign about the OpenGL parts, not so much the window decorations or any normal Qt widgets, like buttons, sliders, etc... but I guess that's normal.)

    Ay ideas what I might be doing wrong, or what this might be caused by? I am cross compiling like I've been doing for the past weeks, nothing has changed, really...



  • Upon further investigation, it seems that qt_qgl_paint_engine() is defined in qgl_p.h as:
    @
    extern QPaintEngine* qt_qgl_paint_engine();
    @

    and implemented in qgl.cpp as:
    @
    QPaintEngine* qt_qgl_paint_engine()
    {
    return qt_gl_2_engine()->engine();
    }
    @

    Could I have a missing library? (but in that case, wouldn't the application complain before the undefined symbol error?)

    edit: oops, sorry for the double posting, just saw the edit button, I'll edit future posts!



  • I faced same issue

    I solved it by adding Q_DECL_EXPORT
    @
    Q_DECL_EXPORT QPaintEngine* qt_qgl_paint_engine()
    {
    return qt_gl_2_engine()->engine();
    }
    @
    Looks like developer-build exports all symbols.

    [edit] code wrapping added, koahnig



  • Hi nari01,

    Thank you for your suggestion, that's interesting.

    It seems though, as if the recent EglFS-related patches fixed my problems with it. You might want to try and re-pull qtbase to see if it is fixed for you too.

    Best regards,
    Pierre


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.