[Top][All Lists]

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

Re: Shared library versions

From: Andrew Clausen
Subject: Re: Shared library versions
Date: Wed, 21 Feb 2001 13:51:24 -0300

Pixel wrote:
> explaination is in libtool:
>         linux)
>           major=.`expr $current - $age`
>           versuffix="$major.$age.$revision"
>           ;;
> with "current:revision:age" as the release-info.
> so:
> 2:0:0 gives version 2.0.0
> 3:0:0 gives version 3.0.0
> 3:0:1 gives version 2.1.0
> 3:0:2 gives version 1.2.0
> 3:0:3 gives version 0.3.0
> So now which version do you want to use? :pp

That is SURREAL.  I can't wait to see what 3:0:4 will look like...
So, I guess I should go and flame bug-libtool?

Reading the libtool info page again, I see I misunderstood it all.
But I still don't understand it.

Here's a copy of the interesting part:  (copyright fsf, blah blah blah)

  3. If the library source code has changed at all since the last
     update, then increment REVISION (`C:R:A' becomes `C:r+1:A').

  4. If any interfaces have been added, removed, or changed since the
     last update, increment CURRENT, and set REVISION to 0.

  5. If any interfaces have been added since the last public release,
     then increment AGE.

  6. If any interfaces have been removed since the last public release,
     then set AGE to 0.

OK.  This is all very confusing to understand, because rule 3
clashes with rule 4 (I assume 4 overrides 3), and the rules aren't
mutually exclusive.  Let's run through an example:

start: (rule 1)
        libtool=0:0:0,  linux=0.0.0

add an interface: (rule 4, 5)
        libtool=1:0:1,  linux=0.1.0

remove an interface: (rule 4, 6)
        libtool=2:0:0,  linux=2.0.0

If I understand all this correctly, it is weird, and it will confuse
packagers, maintainers and users.  So, who's going to defend libtool's
policy?  *grin*

Andrew Clausen

reply via email to

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