Re: Setting shared lib version not functioning

2009-05-05 Thread Ralf Wildenhues
Hello,

I think most issues were already cleared up in this thread.

* John Calcote wrote on Sun, May 03, 2009 at 06:58:09PM CEST:
> current : revision : age
>
> You really have no reason to increment only the age value of a library  
> version. What you're implying by this new version of 2.0.1 is that this  
> particular instance of your library is identical in every way to the  
> previous version of 2.0.0, except that this one is now backward  
> compatible with a prior version (1.x.y).
>
> If you made changes to the library, but did not in any way modify the  
> interface, then you probably want to use version 2.1.0. If you modified  
> the interface in a manner that's 100% backward compatible with the  
> previous version, then you probably want 3.0.1. If you modified the  
> interface in a manner that is NOT backward compatible (i.e., you removed  
> an API function), then you probably want 3.0.0.
>
> It appears that Libtool is smart enough to detect ridiculous cases, but  
> it should probably throw an error of some sort, rather than simply  
> generate code with a different version number.

I agree with Jan that it is not safely possible for libtool to detect
such errors.  It detects bogus triplets such as 3:0:5, but even if it
were to look at the prior uninstalled or installed version of the
library it is about to (re)create, there is nothing that reveals whether
the triplet in the prior version was wrong, rather than the one to be
used.  So, while we could output a warning such as
  libtool: warning: library version `...' not compatible with previous `...'

I'm not sure how much good it would do.

Cheers,
Ralf


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: Setting shared lib version not functioning

2009-05-05 Thread John Calcote

Hi Ralf,

On 5/5/2009 2:46 PM, Ralf Wildenhues wrote:

Hello,

I think most issues were already cleared up in this thread.

* John Calcote wrote on Sun, May 03, 2009 at 06:58:09PM CEST:
   

It appears that Libtool is smart enough to detect ridiculous cases, but
it should probably throw an error of some sort, rather than simply
generate code with a different version number.
 


I agree with Jan that it is not safely possible for libtool to detect
such errors.  It detects bogus triplets such as 3:0:5, but even if it
were to look at the prior uninstalled or installed version of the
library it is about to (re)create, there is nothing that reveals whether
the triplet in the prior version was wrong, rather than the one to be
used.  So, while we could output a warning such as
   libtool: warning: library version `...' not compatible with previous `...'

I'm not sure how much good it would do.
   
When I said "ridiculous cases" I really meant "bogus triplets". I didn't 
think there was much you could do about valid triplets that are simply 
incorrect. I should think that Libtool might fail a build if a bogus 
triplet is passed, however.


One thing that bothers me a little is that we never really did solve 
Gerald's original problem. He said his library was created just fine 
when he was passing 2:0:0, but when he switched to 2:0:1, it created a 
library with a version number of 1:1:0. Now, why would Libtool do this? 
Granted, he didn't really want 2:0:1, but 2:0:1 isn't a bogus triplet, 
either. So why did Libtool convert it to 1:1:0?


John
___
http://lists.gnu.org/mailman/listinfo/libtool