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
Lasse Collin <lasse.collin@HIDDEN>
:bug-libtool@HIDDEN
.
Full text available.owner <at> debbugs.gnu.org, bug-libtool@HIDDEN
:bug#8765
; Package libtool
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.