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

ABI break between Qt 6.5 LTS and Qt 6.6/6.7

XMLWordPrintable

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

      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.

        1. AppAndLib.zip
          3 kB
          Sze Howe Koh
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            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

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes