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

ABI break between Qt 6.5 LTS and Qt 6.6/6.7

    XMLWordPrintable

Details

    • Android, Linux/X11
    • d50ba5ff5 (tqtc/lts-6.5)
    • Foundation PM Prioritized

    Description

      Use-case
      A customer has released an SDK based on Qt 6.5 LTS. It is already being consumed by numerous external applications.

       

      Problem
      Users who wish to upgrade to Qt 6.6/6.7 can no longer link to the published SDK, because of a compatibility break in Qt (Qt's compatibility promise is broken).

       

      Steps to reproduce

      1. Load the attached example on Linux
      2. Build "MyLib" using Qt 6.5 (I tested using Qt 6.5.3 and Qt 6.5.5)
      3. Build "MyApp" using Qt 6.6.2 or Qt 6.7.0-RC1

       
      Outcomes
      MyApp fails to link to MyLib:

      /usr/bin/ld: /home/USER/AppAndLib/MyApp/../lib/libMyLib.so: undefined reference to `QFutureInterfaceBase::setContinuation(std::function<void (QFutureInterfaceBase const&)>, QFutureInterfaceBasePrivate*)@Qt_6_PRIVATE_API'
      collect2: error: ld returned 1 exit status
      

       

      Analysis
      Qt 6.5 is the broken version - it is incompatible with both Qt<=6.4 and Qt>=6.6. Unfortunately, Qt 6.5 is also the current LTS version. So, Qt 6.5.6 needs to be made compatible with the other currently-supported versions of Qt.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-123429
          # Subject Branch Project Status CR V

          Activity

            People

              jbornema Joerg Bornemann
              skoh-qt Sze Howe Koh
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes