GNU bug report logs - #8765
Incorrect library versioning on *BSDs

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: libtool; Reported by: Lasse Collin <lasse.collin@HIDDEN>; dated Mon, 30 May 2011 17:54:02 UTC; Maintainer for libtool is bug-libtool@HIDDEN.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 30 May 2011 17:53:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon May 30 13:53:08 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1QR6eJ-00062X-0q
	for submit <at> debbugs.gnu.org; Mon, 30 May 2011 13:53:08 -0400
Received: from eggs.gnu.org ([140.186.70.92])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8S-0001tp-Nb
	for submit <at> debbugs.gnu.org; Mon, 30 May 2011 04:47:42 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8M-00070T-En
	for submit <at> debbugs.gnu.org; Mon, 30 May 2011 04:47:35 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00
	autolearn=unavailable version=3.3.1
Received: from lists.gnu.org ([140.186.70.17]:55735)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8M-00070O-D9
	for submit <at> debbugs.gnu.org; Mon, 30 May 2011 04:47:34 -0400
Received: from eggs.gnu.org ([140.186.70.92]:44927)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8L-00060O-9s
	for bug-libtool@HIDDEN; Mon, 30 May 2011 04:47:34 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8J-0006zo-QO
	for bug-libtool@HIDDEN; Mon, 30 May 2011 04:47:33 -0400
Received: from mailfw02.zoner.fi ([84.34.147.249]:9576)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8J-0006zd-Ji
	for bug-libtool@HIDDEN; Mon, 30 May 2011 04:47:31 -0400
Received: from www25.zoner.fi ([84.34.147.45])
	by wwwsmtp02.zoner.fi with ESMTP; 30 May 2011 11:47:27 +0300
Received: from 86-60-156-244-dyn-dsl.ssp.fi ([86.60.156.244]
	helo=kaneli.localnet)
	by www25.zoner.fi with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72)
	(envelope-from <lasse.collin@HIDDEN>) id 1QQy8E-0004Aw-T2
	for bug-libtool@HIDDEN; Mon, 30 May 2011 11:47:26 +0300
From: Lasse Collin <lasse.collin@HIDDEN>
Subject: Incorrect library versioning on *BSDs
Date: Mon, 30 May 2011 11:46:56 +0300
User-Agent: KMail/1.13.7 (Linux/2.6.38-ARCH; KDE/4.6.3; x86_64; ; )
MIME-Version: 1.0
X-Length: 2692
X-UID: 51
To: bug-libtool@HIDDEN
Content-Type: Text/Plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Message-Id: <201105301146.56637.lasse.collin@HIDDEN>
X-Antivirus-Scanner: Clean mail though you should still use an Antivirus
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
	recognized.
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3)
X-Received-From: 140.186.70.17
X-Spam-Score: -6.6 (------)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Mon, 30 May 2011 13:53:05 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.6 (------)

(Please CC replies to me, I'm not subscribed to the list.)

It seems that libtool does library versioning wrong on FreeBSD, NetBSD, 
OpenBSD, MirOS BSD (based on OpenBSD), and probably also DragonFly BSD 
(based on FreeBSD). I'm not an expert with *BSDs, but I have understood 
that the versioning should be similar to version_type=linux:

    GNU/Linux:  libfoo.so.$major.$age.$revision
    FreeBSD:    libfoo.so.$major  (It's ELF. a.out is dead.)
    NetBSD:     libfoo.so.$major.$age
    OpenBSD:    libfoo.so.$major.$age

That is, it shouldn't be libfoo.so.$current or 
libfoo.so.$current.$revision. Should this be fixed? The hard part is 
dealing with the (temporary) breakage that the fix would cause. It is 
problematic especially because the version numbers will get smaller 
(current vs. current-age) and thus may conflict with older versions of 
the library that have been built with older libtool versions.

There are some operating system specific hacks that fix the incorrect 
versioning used by unpatched GNU libtool. At least some packages in the 
FreeBSD ports use FreeBSD-specific "ltverhack". I don't know if it is 
used with all ports that use libtool.

On OpenBSD it's packager's job to handle library versioning, so upstream 
versioning is overriden. Also, most packages needing libtool get built 
using OpenBSD's own libtool (a Perl script) instead of GNU libtool.

MirOS BSD has a patched libtool which does the versioning correctly.

GNU libtool in NetBSD's pkgsrc has patches that change library 
versioning for multiple operating systems, including the *BSDs mentioned 
above.

If GNU libtool is fixed to use correct versioning on *BSDs, the 
existence of the OS-specific hacks might mean that many libraries won't 
be affected at all because the old libraries have already been built 
with corrected versioning. On the other hand, some libs might not have 
used those hacks so some breakage may still happen. Fixing the 
versioning in GNU libtool might also break the hacks that have been in 
use for many years.

Below are some references I happened to find.

FreeBSD:

  From FreeBSD Developer's Handbook:
    http://www.freebsd.org/doc/en/books/developers-handbook/policies-shlib.html

  Look for "ltverhack" on this page:
    http://www.freebsd.org/gnome/docs/gnome_porting.html

  Something more about ltverhack:
    http://freebsd.monkey.org/freebsd-multimedia/200702/msg00146.html
    http://people.freebsd.org/~mezz/libtool.txt

NetBSD:

  Patches in pkgsrc, see especially manual-libtool.m4:
    http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/libtool/patches/

OpenBSD:

  Library versioning:
    http://www.openbsd.org/faq/ports/specialtopics.html

  OpenBSD libtool:
    http://www.openbsd.org/cgi-bin/cvsweb/ports/infrastructure/bin/libtool

MirOS BSD:

  A recent request to get MirOS BSD support into GNU libtool:
    http://lists.gnu.org/archive/html/libtool-patches/2011-02/msg00008.html

-- 
Lasse Collin  |  IRC: Larhzu @ IRCnet & Freenode




Acknowledgement sent to Lasse Collin <lasse.collin@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-libtool@HIDDEN. Full text available.
Report forwarded to owner <at> debbugs.gnu.org, bug-libtool@HIDDEN:
bug#8765; Package libtool. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.