Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
6.5.5-1
-
Ubuntu 22.04
-
-
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
- Load the attached example on Linux
- Build "MyLib" using Qt 6.5 (I tested using Qt 6.5.3 and Qt 6.5.5)
- 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
- resulted from
-
QTBUG-117514 QFuture::then marked as private
- Closed