summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel/qsqldatabase.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2023-10-06 09:53:26 -0700
committerAlexandru Croitor <alexandru.croitor@qt.io>2023-10-11 22:06:20 +0200
commit0f0371c8304bd7354a3c43f9fac6b85bd3e9a3f1 (patch)
treee116c2f880d312777003db7dcdf358d2d559b5c1 /src/sql/kernel/qsqldatabase.cpp
parent042c38379f1600782936ff20d89f9bb668d895fd (diff)
Remove Qt_6_PRIVATE_API ELF version from a symbol used by QFuture::then()
QFuture::then() uses QtPrivate::Continuation::create(), which in turn uses private API from an inline function: f->d.setContinuation(ContinuationWrapper(std::move(continuation)), fi.d); f->d is QFutureInterfaceBase (a public class), but its setContinuation() takes QFutureInterfaceBasePrivate by pointer. Our ELF versioning scripts mark everything that uses that class as private, resulting in: 4806: 0000000000287d70 365 FUNC GLOBAL PROTECTED 16 _ZN20QFutureInterfaceBase15setContinuationESt8functionIFvRKS_EEP27QFutureInterfaceBasePrivate@@Qt_6_PRIVATE_API This commit adds an exception for this symbol, causing it to go back to the regular "Qt_6" ELF version: 5629: 00000000003d6a16 366 FUNC GLOBAL PROTECTED 16 _ZN20QFutureInterfaceBase15setContinuationESt8functionIFvRKS_EEP27QFutureInterfaceBasePrivate@@Qt_6 This solution can probably be cleaned up a bit by moving the marker into the header files parsed by syncqt, so they follow code motion without having to remember to update the CMakeLists.txt. That requires some surgery with syncqt, so not suitable for cherry-picking. As a drive-by, fix the target_type check for the _qt_extra_linker_script_content genex property Fixes: QTBUG-117514 Pick-to: 6.6 Change-Id: I85599ea5ca7a4b79a8bbfffd178b92e73dbe11de Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/sql/kernel/qsqldatabase.cpp')
0 files changed, 0 insertions, 0 deletions