Subject: Re: Fwd: pkg/26633: package ABI is often broken on NetBSD due to libtool porting problem
To: Ben Collver <ben@NetBSD.org>
From: John R. Shannon <email@example.com>
Date: 08/13/2004 08:01:51
=2D----BEGIN PGP SIGNED MESSAGE-----
I'm willing to take it on.
On Friday 13 August 2004 07:19 am, Ben Collver wrote:
> I am looking for a volunteer to take responsibility for this PR about
> devel/libtool from Noriyuki Soda. Nick Hudson agrees that the numbering
> is wrong and needs a flag day.
> Any takers?
> Ben Collver
> ----- Forwarded message from Noriyuki Soda <firstname.lastname@example.org> -----
> >Number: 26633
> >Category: pkg
> >Synopsis: package ABI is often broken on NetBSD due to libtool
> > porting problem Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: pkg-manager
> >State: open
> >Class: sw-bug
> >Submitter-Id: net
> >Arrival-Date: Thu Aug 12 23:51:00 UTC 2004
> >Originator: Noriyuki Soda
> >Release: NetBSD 1.6.2
> Software Research Associates, Inc.
> System: NetBSD boaz 1.6.2 NetBSD 1.6.2 (GENERIC_LAPTOP) #0: Tue Feb 10
> 22:02:37 UTC 2004
> Architecture: i386
> Machine: i386
> NetBSD port of libtool doesn't properly implement libtool versioning
> Every time a function is added to a third party library,
> major version of the library is needlessly incremented on NetBSD,
> thus, the library ABI is unnecessarily broken on NetBSD.
> In contrast, this problem doesn't happen on Linux, IRIX, OSF
> and Windows, because libtool is properly ported to those
> platforms, thus adding a new function doesn't change major version
> unless there is real ABI change.
> See "6.2 Libtool's versioning system"
> or "Versioning" section of libtool info page for the detail
> of the libtool versioning concept.
> As you see, library major version must be calculated as
> $CURRENT - $AGE with this concept, but actually major version
> is just equal to $CURRENT on NetBSD.
> Change the following (current) way to calculate shared object
> name in libtool from:
> to either this way:
> major=3D".`expr $curent - $age`"
> versuffix=3D"`expr $age '*' 1000 + $revision`"
> or the following way:
> major=3D.`expr $current - $age`
> Unfortunately, simply doing so breaks nearly all existing
> binary packages, so, changing LOCALBASE from /usr/pkg to
> something else is needed too. ;-/
> Or, is there any other way to solve this problem?
> ----- End forwarded message -----
John R. Shannon
=2D----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (NetBSD)
=2D----END PGP SIGNATURE-----