[Development] Linker script / symbols versions for private entries in Qt 6, regression from Qt 5?
Thiago Macieira
thiago.macieira at intel.com
Tue Apr 19 03:16:08 CEST 2022
On Monday, 18 April 2022 16:37:00 PDT Kevin Kofler via Development wrote:
> Lisandro Damián Nicanor Pérez Meyer wrote:
> > Sorry, that should have been
> >
> > _ZN10QTableViewC2ER17QTableViewPrivateP7QWidget at Qt_6_PRIVATE_API
That's what I have here:
$ eu-readelf --dyn-syms lib/libQt6Widgets.t.so | grep
_ZN10QTableViewC2ER17QTableViewPrivateP7QWidget
11644: 000000000063bb88 114 FUNC GLOBAL DEFAULT 15
_ZN10QTableViewC2ER17QTableViewPrivateP7QWidget@@Qt_6_PRIVATE_API
Can you confirm that *17QTableViewPrivate* appears in your src/widgets/
Widgets.version?
> That should really be
> _ZN10QTableViewC2ER17QTableViewPrivateP7QWidget at Qt_6.3.0_PRIVATE_API
> (or whatever exact version you are building), as in the openSUSE patch to Qt
> 5 that Fedora and some other distributions are also carrying.
>
> The point of those private APIs is that they change at every new version, so
> you want to require rebuilding stuff built with private APIs of the wrong
> version. If the symbol versioning does not ensure that, it is essentially
> useless.
Yes and that's very useful for Linux distributions. That patch should be
upstreamed and enabled by default... but there should be an opt-out for
developers. Those of us who recompile Qt often and do regression testing may
need to run code across the version change boundaries without recompiling.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel DPG Cloud Engineering
More information about the Development
mailing list