[Development] QtMultimedia and Musepack

Allan Sandfeld Jensen kde at carewolf.com
Tue Aug 26 10:27:52 CEST 2014


On Tuesday 26 August 2014, Thiago Macieira wrote:
> On Monday 25 August 2014 22:44:38 Allan Sandfeld Jensen wrote:
> > Using namespace or versioned symbols. I think something like
> > -Wl,--default- symver on all Qt modules and
> > -Wl,--default-imported-symver on anything using  Qt modules could solve
> > such crashes in many cases. It doesn't solve all issues though, and
> > versioned symbols have a bad reputation. Finally the two options are not
> > support by the gold linker we now prefer on linux, which would require
> > using version scripts instead.
> 
> To properly fix this, we need to break the ABI on either Qt 4 or Qt 5 and
> that will not happen. That's what libudev did when it got integrated into
> systemd and is causing us some headache.
> 
> Something for people to remind us for Qt 6.

Well. That would the safe way, and we should keep that in mind for Qt6, but I 
believe with symbol versioning it can be done without breaking ABI, assuming 
it works as advertised. The libraries would export all symbols as both their 
normal form and with @Qt_5 or @Qt_4 added. The libraries would at link time 
remember which the version suffix they linked against, and prefer that symbol 
at runtime linking. This means the duplicate non versioned symbol shouldn't 
cause any issues.
I haven't tried, and some information I found about it, seems to suggest it 
can run into bugs in ld.so.

`Allan



More information about the Development mailing list