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

BIC: Changed QRhi::create() signature

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P1: Critical P1: Critical
    • 6.10.0 Beta4
    • 6.10.0 Beta3
    • Qt RHI, WebEngine
    • None
    • be840571d (6.10)

      When trying to run the simplebrowser example with Qt 6.10.0 installed via MaintenanceTool, I get:

      ./simplebrowser: symbol lookup error: .../qt/bin/6.10.0/gcc_64/lib/libQt6WebEngineCore.so.6: undefined symbol: _ZN4QRhi6createENS_14ImplementationEP14QRhiInitParams6QFlagsINS_4FlagEEP17QRhiNativeHandles, version Qt_6_PRIVATE_API
      

      Demangled this is QRhi::create(QRhi::Implementation, QRhiInitParams*, QFlags<QRhi::Flag>, QRhiNativeHandles*), but only the symbol without the added last argument is present:

      $ nm -gDC .../qt/bin/6.10.0/gcc_64/lib/libQt6Gui.so.6.10.0 | grep QRhi::create
      0000000000468500 T QRhi::create(QRhi::Implementation, QRhiInitParams*, QFlags<QRhi::Flag>, QRhiNativeHandles*, QRhiAdapter*)@@Qt_6_PRIVATE_API
      

       
      From what I understand, this changed in rhi: Introduce a way to enumerate adapters/physical devices (615647) · Gerrit Code Review (but none of the calls in src/core/web_engine_context.cpp pass that last argument).

      From Policies/Binary Compatibility Issues With C++ - KDE Community Wiki:

      you cannot... Change its signature. This includes: [...] Extending a function with another parameter, even if this parameter has a default argument. See below for a suggestion on how to avoid this issue

       

      But given this is private API, maybe it's QtWebEngine which needs to adjust to the new usage?

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            lagocs Laszlo Agocs
            the compiler Florian Bruhin
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes