[Development] Linker script / symbols versions for private entries in Qt 6, regression from Qt 5?

Lisandro Damián Nicanor Pérez Meyer perezmeyer at gmail.com
Tue Apr 19 14:00:57 CEST 2022


On Mon, 18 Apr 2022 at 22:17, Thiago Macieira <thiago.macieira at intel.com> wrote:
>
> 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

$ eu-readelf --dyn-syms libQt6Widgets.so | grep
_ZN10QTableViewC2ER17QTableViewPrivateP7QWidget
5503: 000000000049c000     43 FUNC    GLOBAL DEFAULT       13
_ZN10QTableViewC2ER17QTableViewPrivateP7QWidget@@Qt_6

Not marked as private :-/

> Can you confirm that *17QTableViewPrivate* appears in your src/widgets/
> Widgets.version?

At least for 6.2.2 the tarball does not seems to ship that file. If
it's created at build time I would need to build it (just ping, I'll
happily do it).

> > 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.

ACK, I'll see what I can do.

-- 
Lisandro Damián Nicanor Pérez Meyer
https://perezmeyer.com.ar/


More information about the Development mailing list