New Base for symbols in Qt5.6
Lisandro Damián Nicanor Pérez Meyer
perezmeyer at gmail.com
Sun Dec 27 05:22:20 UTC 2015
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 at Base 5.6.0
To see:
foo at 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/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-kde-talk/attachments/20151227/0d0cdc8e/attachment.sig>
More information about the pkg-kde-talk
mailing list