As some of you might know for what we have been discussing on IRC Qt 5.6 introduced the notion of adding symbols version to the symbols it generates.
I'm not an expert on this area (so feel free to correct me if you think I'm wrong), but basically we should stop seeing symbols like: foo@Base 5.6.0 To see: foo@Qt_5 5.6.0 If I understood things correctly this was added upstream in order to, in the future, allow certain compatibility between Qt5 and Qt6. For example let's supose VLC loads two plugins: one built against Qt5 and another built against Qt6. In the previous form the Qt6-based plugin might declare a QString, and chances are that the linker would load the Qt5 version. With this change it should load the appropriate one on each case. We also have special definitions for private symbols, so we will catch them more easily. Now we feared that this change would create us problems with loading apps compiled against older versions of Qt. In order to test this I built qtbase 5.6 beta with this changes: - sed -i 's/@Base/@Qt_5/g' # yes, private symbols would get this wrong. - Build qtbase and get symbols changes. - Process them with pkgkde's symbolshelper. In this step private symbols will get corrected by marking as missing the @Base versions and "new ones" appearing with @QT5_PRIVATE in them. - Build again this time succesfully getting the binary packages. - On a VM I installed both an app I compiled with Qt 5.5 and hexalate, which only require stuff present in qtbase and qt5.6~beta's qtbase5-dev and dependencies. - ssh -X the VM and run them both without issues. So I think it's safe to go ahead with the changes. Dmitry: we still need to look for private symbols as we used to, IIRC there where some cases of upstream not marking private symbols as such. having both methods at hand will surely catch those cases. Kinds regards, Lisandro. -- Si vives cada día de tu vida como si fuera el último, algún día realmente tendrás razón. Steve Jobs Lisandro Damián Nicanor Pérez Meyer http://perezmeyer.com.ar/ http://perezmeyer.blogspot.com/
Description: This is a digitally signed message part.