On Thursday, April 4, 2024 2:17:12 PM CEST Thomas Klausner wrote:
> On Thu, Apr 04, 2024 at 02:09:36PM +0200, Joerg Sonnenberger wrote:
> > On Thursday, April 4, 2024 11:52:06 AM CEST Thomas Klausner wrote:
> > > On Thu, Apr 04, 2024 at 11:41:17AM +0200, Joerg Sonnenberger wrote:
> > > > On Thursday, April 4, 2024 8:47:19 AM CEST Thomas Klausner wrote:
> > > > > The symbol is in /usr/pkg/qt6/lib/libQt6Network.so.6:
> > > > >
> > > > > # nm /usr/pkg/qt6/lib/libQt6Network.so.6 | grep _ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate
> > > > > 0000000000086790 T _ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate
> > > >
> > > > Check the visibility with readelf/objdump as well, please.
> > >
> > > I hope this is what you wanted:
> >
> > Yes.
> >
> > > # readelf -Ws /usr/pkg/qt6/lib/libQt6Network.so.6 | grep 86790
> > > 2129: 0000000000086790 116 FUNC GLOBAL DEFAULT 12 _ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate@@Qt_6
> >
> > So this is a versioned global export. What confuses me is why the dependency
> > doesn't pick up the symbol version. Can you check QtNetwork.abi3.so as well please?
>
> The corresponding readelf -Ws line from QtNetwork.abi3.so is:
>
> 1588: 0000000000000000 0 FUNC GLOBAL DEFAULT UND _ZN16QNetworkDatagram7destroyEP23QNetworkDatagramPrivate@Qt_6_PRIVATE_API (6)
...and that's why it isn't found. They explicitly force the use of a non-existing symbol version.
Joerg