From: Ralf Wildenhues [mailto:[EMAIL PROTECTED] >John Bowler: >> 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? It isn't. The *major* version number is the same across all operating systems (all the ones libpng supports.) In so far as this issue is concerned I believe libpng is supported on a sufficient variety of platforms to exercise all the different cases in ltmain.sh - so I think we are testing all the different varieties of version number mangling in libtool. libpng has an existing (one-makefile-per-os) build system which produces shared libraries for each operating system with a particular version number. Across minor revisions (including API adds) the major number does not change and must not change (on any platform). Across a major revision the library and include file *names* change, and we keep the same major version number. When we tried to get a configure script to work in 1.2.9 (a minor revision from package version 1.2.8) we obviously wanted the configure stuff to generate the same shared library names+*major* versions as the makefiles. Indeed this is a requirement - we need to continue to support libpng12 without a major shared library revision. Since we wanted to swap to a configure script build by default we had to have it generate the required major versions across all platforms. When I tried to do this with --version-info I discovered that I couldn't get the correct result (even with a change to major version number) on freebsd. IIRC to set the minor part of the version number on *linux* I had to supply a non-zero 'age' but if I did that it would change the *major* version on freebsd. This is discussed at length in the png-implement archives. The conclusion was that the required value for --version-info had to be changed for different Oses. When I tried this with --version-number, however, I found it was portable; I could set a single version number for all Oses. libtool correctly removes the spurious parts - so the version number is 0:9:0 and we get libpng12.so.0.9.0 on linux and libpng12.so.0 on freebsd. Notice that we *did* change our version numbering scheme to get this to work - but only in the minor part (we had libpng12.so.0.1.2.8 before on linux). Of course we then found that the irix build fails. This is all documented on the png-implement archive. The important points are: 1) We want to use minor versioning on the platforms which support it. 2) The major version must not change on any platform between successive (minor revision) configure builds. 3) We could change the major version to be (say) '1' at the next major release, but we can't change it in libpng 1.2.x John Bowler <[EMAIL PROTECTED]> _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool