[Development] binary compatibility promise (was: Re: Frameworks on Mac?)

Rutledge Shawn Shawn.Rutledge at digia.com
Fri Nov 23 14:15:10 CET 2012


On 23 Nov 2012, at 11:07 AM, Peter Hartmann wrote:

> On 11/23/2012 12:12 AM, André Pönitz wrote:
>> (...)
>> The reality is that this guarantee often enough does not hold in
>> practice. Vendors of "binary" Qt based application typically test their
>> setup against one specific (often enough patched) version of Qt which
>> is then shipped with the application. Users are not expected to switch
>> Qt versions, except when upgrading the whole application. Insofar are
>> rules like "we can't add symbols in patch releases" not much more then
>> self-inflicted pain without measurable gain.
> 
> This situation is different on mobile (and I guess embedded as well); 
> for BlackBerry10 we have one version of Qt on the device and often 
> cross-compile apps with another version of Qt; so we depend on the 
> binary compatibility promise for patch releases (and in fact were bitten 
> by the new symbols as well when people reported their app was not 
> launching with "unknown symbol: _ZNK20QFutureInterfaceBase4refTEv" etc.).

I think that is also the reason Necessitas distributes Qt as separate packages, with apps depending on it, so that it can be shared between apps, right?

If vendors really need to redistribute Qt with every app on Mac and Windows, they could at least link it statically so that unused functions can be omitted.  But apparently there are problems with that too.




More information about the Development mailing list