X-Loop: help-debbugs@HIDDEN Subject: bug#11752: libltdl (libtool 2.4.2) and FreeBSD 8.3 i386 (other versions and amd64 versions are also affected) Resent-From: Konstantin Morshnev <moko@HIDDEN> Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org Resent-CC: bug-libtool@HIDDEN Resent-Date: Wed, 20 Jun 2012 15:56:01 +0000 Resent-Message-ID: <handler.11752.B.134020770831952 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 11752 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 11752 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-libtool@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.134020770831952 (code B ref -1); Wed, 20 Jun 2012 15:56:01 +0000 Received: (at submit) by debbugs.gnu.org; 20 Jun 2012 15:55:08 +0000 Received: from localhost ([127.0.0.1]:50041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ShNFK-0008JH-VU for submit <at> debbugs.gnu.org; Wed, 20 Jun 2012 11:55:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46799) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from <moko@HIDDEN>) id 1ShMnf-00062W-Vm for submit <at> debbugs.gnu.org; Wed, 20 Jun 2012 11:26:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <moko@HIDDEN>) id 1ShMk8-0000v6-WE for submit <at> debbugs.gnu.org; Wed, 20 Jun 2012 11:23:03 -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,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:52751) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <moko@HIDDEN>) id 1ShMk8-0000v1-T2 for submit <at> debbugs.gnu.org; Wed, 20 Jun 2012 11:22:52 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33377) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <moko@HIDDEN>) id 1ShMk2-0002sU-G9 for bug-libtool@HIDDEN; Wed, 20 Jun 2012 11:22:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <moko@HIDDEN>) id 1ShMjx-0000rP-1C for bug-libtool@HIDDEN; Wed, 20 Jun 2012 11:22:45 -0400 Received: from mail.srv.design.ru ([91.197.114.3]:34824 helo=mail.design.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <moko@HIDDEN>) id 1ShMjw-0000qf-G4 for bug-libtool@HIDDEN; Wed, 20 Jun 2012 11:22:40 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.design.ru (Postfix) with ESMTP id DF6981BD45B for <bug-libtool@HIDDEN>; Wed, 20 Jun 2012 19:22:36 +0400 (MSK) X-Virus-Scanned: Debian amavisd-new at mail.design.ru Received: from mail.design.ru ([127.0.0.1]) by localhost (mail01.srv.design.ru [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N8xEIb6UaMU3 for <bug-libtool@HIDDEN>; Wed, 20 Jun 2012 19:22:35 +0400 (MSK) Received: from [91.197.114.123] (moko.at.design.ru [91.197.114.123]) (Authenticated sender: moko) by mail.design.ru (Postfix) with ESMTPSA id D94D01BC7D9 for <bug-libtool@HIDDEN>; Wed, 20 Jun 2012 19:22:35 +0400 (MSK) Message-ID: <4FE1EABC.2090803@HIDDEN> Date: Wed, 20 Jun 2012 19:22:36 +0400 From: Konstantin Morshnev <moko@HIDDEN> User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Thunderbird/3.1.15 MIME-Version: 1.0 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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.9 (------) X-Mailman-Approved-At: Wed, 20 Jun 2012 11:55:04 -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.9 (------) Dear developers! We are using libtool in our Parser project (http://www.parser.ru/en/) for about 10 years. After update to version 2.4.2 (before it was version 1.4.3 :) we've found that libltdl functionality is broken under FreeBSD in some situations (and it works fine under Linux). For different SQL drivers Parser uses the following scheme: Parser3 binary loads libparser3mysql.so dll which in turn loads libmysqlclient.so Both parser3 and libparser3mysql.so use libltdl. With new libltdl version we've found that parser3 successfully loads libparser3mysql.so, but when libparser3mysql.so calls lt_dlinit it fails. It was not that easy to debug, as initialization from simple #if HAVE_LIBDL && !defined(CYGWIN) errors += lt_dlloader_add (lt_dlloader_next (0), &sys_dl, "dlopen"); #endif came now to sofisticated call sequence ltdl.c -> preopen.c -> ltdl.c -> preopen.c. But we've found the problem. On second libltdl load variable 'preloaded_symlists' address is different in different contexts. We believe it's FreeBSD issue (as same code works fine under Linux with both included and share libltdl), but libtool is supposed to support existing OS versions as well, so it would be nice if you'll somehow fix this issue. Sorry, because it should be binary which calls .so which calls .so, we can't create a test case for you, but Parser sources can be taken from CVS http://www.parser.ru/en/download/src/ or we can create a sources.tgz for you. Additional information can be provided on your request. Below is bebugger output: This is broken case (when libparser3mysql.so calls lt_dlinit()). You can see preloaded_symlists address change. lt_dlpreload (preloaded=0x8229be0) at loaders/preopen.c:307 ... 275 preloaded_symlists = tmp; (gdb) p preloaded_symlists $7 = (symlist_chain *) 0x0 (gdb) p &preloaded_symlists $8 = (symlist_chain **) 0x28642524 (gdb) s 322 } (gdb) p preloaded_symlists $9 = (symlist_chain *) 0x28505098 (gdb) p &preloaded_symlists $10 = (symlist_chain **) 0x28642524 (gdb) s lt_dlinit () at ltdl.c:250 250 if (!errors) (gdb) p preloaded_symlists $11 = (symlist_chain *) 0x0 (gdb) p &preloaded_symlists $12 = (symlist_chain **) 0x8259128 And thus next call to vm_open fails: Breakpoint 3, vm_open (loader_data=0x0, filename=0x28506130 "dlopen.a", advise=0x0) at loaders/preopen.c:151 151 if (!preloaded_symlists) (gdb) p preloaded_symlists $13 = (symlist_chain *) 0x0 (gdb) p &preloaded_symlists $14 = (symlist_chain **) 0x8259128 This is working case (when parser3 calls lt_dlinit() before loading libparser3mysql.so): lt_dlpreload (preloaded=0x8229be0) at loaders/preopen.c:307 ... 275 preloaded_symlists = tmp; (gdb) p preloaded_symlists $13 = (symlist_chain *) 0x0 (gdb) p &preloaded_symlists $14 = (symlist_chain **) 0x8259128 (gdb) s 322 } (gdb) p preloaded_symlists $15 = (symlist_chain *) 0x28505078 (gdb) p &preloaded_symlists $16 = (symlist_chain **) 0x8259128 And the next call to vm_open works fine: Breakpoint 6, vm_open (loader_data=0x0, filename=0x28506110 "dlopen.a", advise=0x0) at loaders/preopen.c:151 151 if (!preloaded_symlists) (gdb) p preloaded_symlists $17 = (symlist_chain *) 0x28505078 (gdb) p &preloaded_symlists $18 = (symlist_chain **) 0x8259128 P.S. It would be nice it you'll also simplify Microsoft Visual Studio integration and instead of copying argz_.h into argz.h do something like #ifdef HAVE_WORKING_ARGZ #include <argz.h> #else #include <argz_.h> #endif WBR, MoKo
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: Konstantin Morshnev <moko@HIDDEN> Subject: bug#11752: Acknowledgement (libltdl (libtool 2.4.2) and FreeBSD 8.3 i386 (other versions and amd64 versions are also affected)) Message-ID: <handler.11752.B.134020770831952.ack <at> debbugs.gnu.org> References: <4FE1EABC.2090803@HIDDEN> X-Gnu-PR-Message: ack 11752 X-Gnu-PR-Package: libtool Reply-To: 11752 <at> debbugs.gnu.org Date: Wed, 20 Jun 2012 15:56:01 +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 11752 <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 11752: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D11752 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.