Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-109030

QQuickFramebufferObject::Renderer::framebufferObject symbol is marked with PRIVATE_API

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 5.15.2
    • None
    • Should happen for all .so where the linker version script is used.
    • Linux/X11

    Description

      Hi,

      Following file is creating the linker version script: https://code.qt.io/cgit/qt/qtbase.git/tree/mkspecs/features/qt_module.prf?h=5.15#n253

      This calls: https://code.qt.io/cgit/qt/qtbase.git/tree/mkspecs/features/data/unix/findclasslist.pl?h=5.15

      Which basically parses all the headers marked private and creates a symbol entry with heavy use of wildcards for every class / struct found.

      For example when it parses following file: https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/scenegraph/coreapi/qsgbatchrenderer_p.h?h=5.15#n759

      it will create following output:

       *8Renderer*;

       This unfortunately causes the linker also to mark following symbol private:

      https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/items/qquickframebufferobject.cpp?h=5.15#n431

      Because it is also named Renderer.

       

      This is causing compatibility issues on our operating system because our version of Qt is even more strict when it comes to the PRIVATE_API macro because of this patch: https://build.opensuse.org/package/view_file/KDE:Qt5/libqt5-qtbase/tell-the-truth-about-private-api.patch?expand=1

       

      As far as I can see this affects also Qt6 but I cannot check it.

      An easy way to see if the library is affected is via:

      readelf -a --wide libQt5Quick.so | grep framebufferObject | c++filt

      This returns: "7353: 000000000039be00    27 FUNC    GLOBAL DEFAULT   14 QQuickFramebufferObject::Renderer::framebufferObject() const@@Qt_5.15.2_PRIVATE_API"

       

      Maybe the perl script can be adapted so that it includes also the namespace?

      Attachments

        Activity

          People

            qtbuildsystem Qt Build System Team
            michael_dluhosch Michael Dluhosch
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: