X-Loop: help-debbugs@HIDDEN Subject: bug#11537: Libtool 2.4.2 fails to handle library interdependencies Resent-From: Kristian Spangsege <kristian.spangsege@HIDDEN> Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org Resent-CC: bug-libtool@HIDDEN Resent-Date: Mon, 21 May 2012 23:46:02 +0000 Resent-Message-ID: <handler.11537.B.133764395418953 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 11537 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 11537 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-libtool@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.133764395418953 (code B ref -1); Mon, 21 May 2012 23:46:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 May 2012 23:45:54 +0000 Received: from localhost ([127.0.0.1]:37805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1SWcIT-0004vd-FM for submit <at> debbugs.gnu.org; Mon, 21 May 2012 19:45:54 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48191) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from <kristian.spangsege@HIDDEN>) id 1SWc7H-0004fd-0M for submit <at> debbugs.gnu.org; Mon, 21 May 2012 19:34:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <kristian.spangsege@HIDDEN>) id 1SWc6V-0000o0-MZ for submit <at> debbugs.gnu.org; Mon, 21 May 2012 19:33:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:49137) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <kristian.spangsege@HIDDEN>) id 1SWc6V-0000nr-HH for submit <at> debbugs.gnu.org; Mon, 21 May 2012 19:33:31 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60007) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <kristian.spangsege@HIDDEN>) id 1SWc6T-0005DJ-Hn for bug-libtool@HIDDEN; Mon, 21 May 2012 19:33:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <kristian.spangsege@HIDDEN>) id 1SWc6R-0000mx-6k for bug-libtool@HIDDEN; Mon, 21 May 2012 19:33:28 -0400 Received: from mail-yw0-f41.google.com ([209.85.213.41]:37232) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <kristian.spangsege@HIDDEN>) id 1SWc6R-0000mO-06 for bug-libtool@HIDDEN; Mon, 21 May 2012 19:33:27 -0400 Received: by yhr47 with SMTP id 47so6005618yhr.0 for <bug-libtool@HIDDEN>; Mon, 21 May 2012 16:33:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=kZF7/I+3qfWkXyVJ3e5PPnKzkxyieqPicF6pDJIEt50=; b=R2ZNZoaxM1EzfVM8z6CbsVOJqyyPm5V1rMHYRMaDfdjL4RFRthKynQDAGFguNjPBrK 3GfLQxuLdH3oit8LXyZU5ChqqKOYVbqYLMswgUuUW3OztvThxUfxL9Bs5pfU8R8a0Nff BE5U/Xv1v9JmwYnnsxT469oLU9TkPa2js+egZ2y8q/XBvlj51ad4S4W82EgGfmxsYwhv RCGMfwzw+bO5lilJ0Ny2bsJjS1vKAN6SG/e1wdyCT0y+sK2oAQwdcdp22FSImCpJyvA+ 7RGre8iDmDFvW8oc9DQTKGT6jTPizTR5mmt1EwQNT7pKo/Eog6cUIwGszn8M6OvwQ9S9 ugRA== MIME-Version: 1.0 Received: by 10.236.177.1 with SMTP id c1mr24531145yhm.41.1337643204520; Mon, 21 May 2012 16:33:24 -0700 (PDT) Received: by 10.147.114.14 with HTTP; Mon, 21 May 2012 16:33:24 -0700 (PDT) Date: Tue, 22 May 2012 01:33:24 +0200 Message-ID: <CANspNZkg3Uie7_4XfJA=gyEeMfYeC6NYTdnn57z0b-GjuA89qg@HIDDEN> From: Kristian Spangsege <kristian.spangsege@HIDDEN> Content-Type: text/plain; charset=ISO-8859-1 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: 208.118.235.17 X-Spam-Score: -6.1 (------) X-Mailman-Approved-At: Mon, 21 May 2012 19:45:52 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.13 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/cgi-bin/mailman/private/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.1 (------) Libtool 2.4.2 (Ubuntu 12.04) fails to handle library interdependencies - in particular C++ library interdependencies. The interdependency is specified on the command line, and is recorded correctly by libtool, however, since there is no dependency from the point of view of the binary library files, and since libtool no longer adds all dependency libraries on the command line, compiling of the final application fails. I suppose the problem is that libtool has been changed to set link_all_deplibs=no on my platform, but I'm not sure. Here is an example that illustrates the problem: ### create test files: cat >alpha.hpp <<EOI void alpha(); EOI cat >alpha.cpp <<EOI #include "alpha.hpp" void alpha() {} EOI cat >beta.hpp <<EOI #include "alpha.hpp" void beta1(); inline void beta2() { alpha(); } EOI cat >beta.cpp <<EOI #include "beta.hpp" void beta1() {} EOI cat >app.cpp <<EOI #include "beta.hpp" int main() { beta2(); return 0; } EOI ### build 'libalpha': libtool --tag=CXX --mode=compile g++ -c alpha.cpp libtool --tag=CXX --mode=link g++ alpha.lo -o libalpha.la -rpath /tmp ### build 'libbeta': libtool --tag=CXX --mode=compile g++ -c beta.cpp libtool --tag=CXX --mode=link g++ beta.lo libalpha.la -o libbeta.la -rpath /tmp # Depends on 'libalpha' ### build app: libtool --tag=CXX --mode=link g++ app.cpp libbeta.la -o app ### error: # In function `beta2()': # app.cpp: undefined reference to `alpha()' Of couse, if you forget about C++, then this change is probably ok, since all dependencies would be reflected in the binary library files. This is certainly not the case for C++. I belive that the Libtool manual says unambiguously that this is supposed to work: "In any event, libtool provides a simple mechanism for you to declare inter-library dependencies: for every library libname that your own library depends on, simply add a corresponding -lname option to the link line when you create your library." http://www.gnu.org/software/libtool/manual/libtool.html#Inter_002dlibrary-dependencies Note also that this actually worked in Libtool 2.2.6b (Ubuntu 10.04). Also see this diff excerpt on libtool.m4 between 2.2.6b and 2.4.2: @@ -4249,10 +4655,39 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac ProblemType: Bug DistroRelease: Ubuntu 12.04 Package: libtool 2.4.2-1ubuntu1 ProcVersionSignature: Ubuntu 3.2.0-24.38-generic 3.2.16 Uname: Linux 3.2.0-24-generic x86_64 NonfreeKernelModules: nvidia ApportVersion: 2.0.1-0ubuntu7 Architecture: amd64 Date: Tue May 22 00:37:22 2012 InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425) ProcEnviron: LANGUAGE=en_US:en TERM=xterm PATH=(custom, no user) LANG=en_US.UTF-8 SHELL=/bin/bash SourcePackage: libtool UpgradeStatus: No upgrade log present (probably fresh install)
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.428 (Entity 5.428) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Kristian Spangsege <kristian.spangsege@HIDDEN> Subject: bug#11537: Acknowledgement (Libtool 2.4.2 fails to handle library interdependencies) Message-ID: <handler.11537.B.133764395418953.ack <at> debbugs.gnu.org> References: <CANspNZkg3Uie7_4XfJA=gyEeMfYeC6NYTdnn57z0b-GjuA89qg@HIDDEN> X-Gnu-PR-Message: ack 11537 X-Gnu-PR-Package: libtool Reply-To: 11537 <at> debbugs.gnu.org Date: Mon, 21 May 2012 23:46:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-libtool@HIDDEN If you wish to submit further information on this problem, please send it to 11537 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 11537: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D11537 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.