On Monday 6 May 2024 11:48:31 GMT-7 Allan Sandfeld Jensen wrote: > Out of purely academic interest, how would I go about searching for those > problems? Would I be lucky enough they would all be conviently gathered in a > JIRA ticket?
Unfortunately, no. But if you search JIRA for Qt 4.x-time QXmlStream problems, you may find some of them. The issue is that there are two platforms where symbol resolution at runtime is tied to the library they were found in at link time (so-called "two-level symbol resolution"). Therefore, for those two platforms, whatever we do, to keep BC, we must retain QDesktopServices in QtGui. On one of those two platforms, duplicating the symbols in the libraries is not a problem; but for the other one it is, therefore we must rename them when importing to QtCore. That's why we had this: https://github.com/qt/qt/blob/4.8/src/corelib/xml/qxmlstream.h#L100-L114 For QXmlStream classes, this was a big problem because one had objects of the types being renamed, so this caused cascading mangling changes in user code wherever they used our classes. This is the same BC break as libstdc++ did with std::__cxx11::basic_string. For QDesktopServices, at least there is no object and therefore no one is expecting to have functions with it as part of the mangled name. Those two platforms are: - Darwin (macOS, iOS, etc.) - Windows So not insignificant. And moreover, the two platforms where no one EVER runs without a GUI. -- Thiago Macieira - thiago.macieira (AT) intel.com Principal Engineer - Intel DCAI Cloud Engineering
smime.p7s
Description: S/MIME cryptographic signature
-- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development