[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libqt3 and soname problems...



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thursday 11 September 2003 01:32, Adam Majer wrote:
> Since Qt is a C++ library, the soname Qt needs to get bumped *every*
> time a class is changed - that is, a function is added, deleted
> OR changed. Well, at least the virtual classes AFAIK.

There is no such thing as a virtual class, you mean virtual function. That 
just as a side note.

Let me also suggest a thread in comp.lang.c++.moderated called "Does adding 
new methods to a class require recompliation". It turns out that you are 
invoking behaviour not defined by the C++ standard, but that it works for 
many cases.

Also, I seem to remember that either KDE or Qt had the rules what not to do in 
order to remain backward compatible in their coding-guidelines.

> IF it was a C only library, the soname is only changed when an
> interface is either deleted or changed.

Same for C++, just that interface seems a bit less easy to grasp.

> On Linux, when you change a
> class, you pretty much change the size of the virtual table
> causing binary incompatibilities.

That is not different on probably every implementation that uses the 
vtable-approach, regardless of the OS it runs on. 

  Beware, wanderer, FUD comes your way!

> Just see the bug against MySQL CC,
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=210340
> It was compiled against 3.1.2 but fails against 3.2.1

I don't think that 3.1 is supposed to be binary compatible with 3.2, but I 
don't really know. I think that 3.2.2 is supposed to be compatible with 3.2.1 
though.

Uli
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/YXG6wVdGSYi8Mq8RAl64AKCOIRFUX2UOToFyDrRe7GQWutJLZwCfRTnV
w3NWjb8PL/mkGrYTvHls+VA=
=59FM
-----END PGP SIGNATURE-----



Reply to: