libtool
[Top][All Lists]
Advanced

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

Re: version and release number


From: Lorenzo Bettini
Subject: Re: version and release number
Date: Thu, 16 Apr 2009 21:30:43 +0200
User-agent: Thunderbird 2.0.0.21 (X11/20090409)

Bob Friesenhahn wrote:
On Thu, 16 Apr 2009, Lorenzo Bettini wrote:

Never try to set the interface numbers so that they correspond to the release number of your package. This is an abuse that only fosters misunderstanding of the purpose of library versions. Instead, use the -release flag (see Release numbers), but be warned that every release of your package will not be binary compatible with any other release.

what I don't understand is the "not binary compatible": if I use, say 1.0 for the release flag (and the version number correctly as stated in the manual), and release another implementation of the library with the incremented version number but with the same release number, why won't it be binary compatible?

Or does "not binary compatible" apply only if I increment also the release number?

I sense some confusion. :-)

well... :-)


The -release option specifies part of the base naming for your library so that it becomes part of the base library name. For example, libfoo-1.0.so and libfoo-2.0.so. To the operating system these libraries are completely different and might have well been named libfoo.so and libbar.so. The libraries might otherwise be entirely the same and could be "binary compatible" but the operating system won't know it. Very few packages use the -release option.


OK, so they would be different because they'd have a different name; but if I used the same release number (e.g., only the major number for example 1, instead of 1.1) they'd still be compatible, wouldn't they? I mean "not binary compatible" in the documentation refers only to different names

The -version-info option specifies library versioning information that the operating system will use when deciding which similarly named library to use. On most Unix systems, this forms the numeric part in the library file name after ".so". Different systems use different rules when deciding how to treat this version information. Assuming that libraries are from the same release, the correct library will be used as long as you follow the libtool rules when updating the -version-info argument.

There are many forms of "binary compatible". For example, a newer library might add a new function but otherwise be the same so an already existing application (using an older library) can safely use it. A newer application depending on the newer library could not safely use the older library since it might be using the new function the new function might not be present.

so would you suggest to use only version info and no release info, am I right? I was only concerned about the fact that the release number of the library is not visible anywhere and that it would force the use to specify a name together with the number...

thanks
        Lorenzo

--
Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino
ICQ# lbetto, 16080134     (GNU/Linux User # 158233)
HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com
http://www.myspace.com/supertrouperabba
BLOGS: http://tronprog.blogspot.com  http://longlivemusic.blogspot.com
http://www.gnu.org/software/src-highlite
http://www.gnu.org/software/gengetopt
http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net





reply via email to

[Prev in Thread] Current Thread [Next in Thread]