libtool-patches
[Top][All Lists]
Advanced

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

RE: [png-mng-implement] -version-number and BeOS


From: John Bowler
Subject: RE: [png-mng-implement] -version-number and BeOS
Date: Wed, 17 May 2006 17:09:48 +0100

From: Ralf Wildenhues [mailto:address@hidden 
>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 <address@hidden>





reply via email to

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