Hi John, * John Bowler wrote on Wed, May 17, 2006 at 04:17:21AM CEST: > From: Ralf Wildenhues > >What I still don't understand is the following additional change you > >also suggest: > > > >> $ diff libpng-1.2.9beta7/ltmain.sh libpng-1.2.9beta11 3248c3248 > >> < current=`expr $number_major + $number_minor - 1` > >> --- > >> > current=`expr $number_major + $number_minor` > >> 3323c3323 > >> < major=`expr $current - $age + 1` > >> --- > >> > major=`expr $current - $age` > > > >There is a comment above this code that explains why this should be >> necessary, no? > > This is the irix/nonstopux case, I don't think there is any comment; I > wasn't able to find any explanation of why the irix case adds 1 to get > the major version number. I did notice the comment for the first case > which says: > > 'then there is irix which has an extra 1 added just for fun'
AFAIK IRIX doesn't or at one point in time didn't allow for a major version number of 0. That's why Libtool always added 1: because version numbers of 0 are commonly used elsewhere, so it wouldn't be nice to force everyone else to adjust. > That's clearly a reference to the second case adding of 1, not a > reference to whatever irix behaviour the second piece of code is trying > to accommodate. > > The issue here is that libpng on irix has (currently) a major version > number of '0', as it does on all other operating systems. Why should the version number be constant across operating systems? This is a requirement that is impossible to fulfill portably. I fully understand that the maintenance hassles incurred by this limitations: explaining to users that their libfoo 1.2.3 has different numbers 4.5.6 elsewhere; but fundamentally, it simply isn't possible to generate a uniform numbering scheme. > So we need to be able to set the major version number to 0 (currently > impossible because ltmain.sh objects to the value of '-1' for current) > and, ideally we don't want to do OS specific stuff in configure to fix > up the arguments to libtool for irix... That would defeat the point > of libtool. Well, the point of libtool is that you give it the same version information for all systems, and that it will map that to some version representation that keeps the semantics w.r.t. compatible and incompatible changes right. A library on IRIX need not be compatible with a library on GNU/Linux: they will never be linked together. > Well, there is obviously something weird going on on IRIX. libpng has > worked on IRIX for a long time, but maybe not with shared libraries. > Still it seems weird that libtool should make a major version number > of 0 impossible and not offer any explanation of what is going on. Good point. We should document this somewhere, after clarifying where exactly the constraint came from and whether it still applies. Cheers, Ralf _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool