Re: [gtk-list] Re: 1.1 <=> 1.2 not compatible, why not 2.0?



> When compatibility is broken, you need to change the minor
> version.  This allows the dynamic linker to distinguish between
> which library to use.  libgtk.so.1.0 or libgtk.so.1.2
> 
> Although during compilation time only one library will be referenced.
> If you compiled under libgtk.so.1.0 and then installed libgtk.so.1.2
> As long as you keep libgtk.so.1.0 around (in LD_LIBRARY_PATH)
> you do not need to recompile.
> 
> It is common practice to do this. You don't change the major 
> version on compatibility issues.  You usually change the
> major version on complete design changes.
> 
> The tiny version is what gets changed for non compatibility changes
> ie. libgtk.so.1.2.1.
> 
This is not correct, minor version numbers change when the library 
remains binary compatible, major version change when the binary
compatibility gets broken.

That allows the dynamic linker to determine whether an application
linked against a library with a lesser minor number can still be
used with a library with a bigger minor number, the linker then
also knows not to use a library with a different *major* number.

The version numbers you talk about are marketing numbers.

The scheme that gtk uses is absolutely not standard, although I must
say that if they would have used the major.minor scheme, they would
be at version 30.1 by now. Although they also might have chosen to
not bother about the version number in the library in the development
line.

And as a final remark, the Linux version numbering scheme has nothing
to do with shared library versioning! Except that the gtk people 
wanted to try using this scheme to indicate the development line.

Marc.

----------------------------------------------------
Marc van Kempen                 BowTie Technology     
Email: marc@bowtie.nl            WWW & Databases
tel. +31 40 2 43 20 65         
fax. +31 40 2 44 21 86         http://www.bowtie.nl
----------------------------------------------------





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