Received: (at submit) by debbugs.gnu.org; 24 Apr 2019 21:41:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 24 17:41:46 2019 Received: from localhost ([127.0.0.1]:56642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1hJPe9-0001VS-5A for submit <at> debbugs.gnu.org; Wed, 24 Apr 2019 17:41:46 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39080) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <bfriesen@HIDDEN>) id 1hJPe7-0001VC-Mu for submit <at> debbugs.gnu.org; Wed, 24 Apr 2019 17:41:39 -0400 Received: from lists.gnu.org ([209.51.188.17]:46836) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <bfriesen@HIDDEN>) id 1hJPe2-0000fD-IN for submit <at> debbugs.gnu.org; Wed, 24 Apr 2019 17:41:34 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53346) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <bfriesen@HIDDEN>) id 1hJPe1-00055v-Ec for bug-libtool@HIDDEN; Wed, 24 Apr 2019 17:41:34 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <bfriesen@HIDDEN>) id 1hJPcA-0007gN-EY for bug-libtool@HIDDEN; Wed, 24 Apr 2019 17:39:39 -0400 Received: from smtp.simplesystems.org ([65.66.246.90]:59072) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <bfriesen@HIDDEN>) id 1hJPcA-0007fU-7E for bug-libtool@HIDDEN; Wed, 24 Apr 2019 17:39:38 -0400 Received: from scrappy.simplesystems.org (scrappy.simplesystems.org [65.66.246.73]) by smtp.simplesystems.org (8.14.4+Sun/8.14.4) with ESMTP id x3OLdUZc007806; Wed, 24 Apr 2019 16:39:30 -0500 (CDT) Date: Wed, 24 Apr 2019 16:39:30 -0500 (CDT) From: Bob Friesenhahn <bfriesen@HIDDEN> X-X-Sender: bfriesen@HIDDEN To: Vita Batrla <vitezslav.batrla@HIDDEN> Subject: Re: bug#35245: libltdl.so uses 32-bit search path in 64-bit mode in Solaris 11.4 In-Reply-To: <20190412090443.GB1659@ultra> Message-ID: <alpine.GSO.2.20.1904241631280.29259@HIDDEN> References: <20190412090443.GB1659@ultra> User-Agent: Alpine 2.20 (GSO 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (smtp.simplesystems.org [65.66.246.90]); Wed, 24 Apr 2019 16:39:30 -0500 (CDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux (Android) X-Received-From: 65.66.246.90 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: 35245 <at> debbugs.gnu.org, bug-libtool@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.4 (--) On Fri, 12 Apr 2019, Vita Batrla wrote: > Hi all, > > I noticed that 64-bit version of libtool's libltdl.so shipped in Solaris 11.4 > is compiled with 32-bit search path. This mismatch leads causes a failure to > dynamically load a module using lt_dlopen() interface. > > Here's an example of a 64-bit executable trying to dynamically load > "libcrypt.so": I agree with your problem statement and your patch, but would like to point out that loading a bare module name without a specified path is somewhat insecure and not a recommended use case. I do not recall similar problems with failing to find 64-bit modules on my Solaris (and Solaris-derived) systems, but my software stores modules in a directory with a well defined path (a wise thing to do) and opens the ".la" module wrapper file via that path. The libraries listed in the ".la" module are then loaded as expected. In the mean time, Oracle could fix the libltdl.so shipped in Solaris 11.4. Bob -- Bob Friesenhahn bfriesen@HIDDEN, http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer, http://www.GraphicsMagick.org/ Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt
bug-libtool@HIDDEN
:bug#35245
; Package libtool
.
Full text available.Received: (at 35245) by debbugs.gnu.org; 24 Apr 2019 21:39:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 24 17:39:39 2019 Received: from localhost ([127.0.0.1]:56637 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1hJPcA-0001SC-LX for submit <at> debbugs.gnu.org; Wed, 24 Apr 2019 17:39:38 -0400 Received: from smtp.simplesystems.org ([65.66.246.90]:57725) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <bfriesen@HIDDEN>) id 1hJPc8-0001Rz-Jh for 35245 <at> debbugs.gnu.org; Wed, 24 Apr 2019 17:39:37 -0400 Received: from scrappy.simplesystems.org (scrappy.simplesystems.org [65.66.246.73]) by smtp.simplesystems.org (8.14.4+Sun/8.14.4) with ESMTP id x3OLdUZc007806; Wed, 24 Apr 2019 16:39:30 -0500 (CDT) Date: Wed, 24 Apr 2019 16:39:30 -0500 (CDT) From: Bob Friesenhahn <bfriesen@HIDDEN> X-X-Sender: bfriesen@HIDDEN To: Vita Batrla <vitezslav.batrla@HIDDEN> Subject: Re: bug#35245: libltdl.so uses 32-bit search path in 64-bit mode in Solaris 11.4 In-Reply-To: <20190412090443.GB1659@ultra> Message-ID: <alpine.GSO.2.20.1904241631280.29259@HIDDEN> References: <20190412090443.GB1659@ultra> User-Agent: Alpine 2.20 (GSO 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (smtp.simplesystems.org [65.66.246.90]); Wed, 24 Apr 2019 16:39:30 -0500 (CDT) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 35245 Cc: 35245 <at> debbugs.gnu.org, bug-libtool@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) On Fri, 12 Apr 2019, Vita Batrla wrote: > Hi all, > > I noticed that 64-bit version of libtool's libltdl.so shipped in Solaris 11.4 > is compiled with 32-bit search path. This mismatch leads causes a failure to > dynamically load a module using lt_dlopen() interface. > > Here's an example of a 64-bit executable trying to dynamically load > "libcrypt.so": I agree with your problem statement and your patch, but would like to point out that loading a bare module name without a specified path is somewhat insecure and not a recommended use case. I do not recall similar problems with failing to find 64-bit modules on my Solaris (and Solaris-derived) systems, but my software stores modules in a directory with a well defined path (a wise thing to do) and opens the ".la" module wrapper file via that path. The libraries listed in the ".la" module are then loaded as expected. In the mean time, Oracle could fix the libltdl.so shipped in Solaris 11.4. Bob -- Bob Friesenhahn bfriesen@HIDDEN, http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer, http://www.GraphicsMagick.org/ Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt
bug-libtool@HIDDEN
:bug#35245
; Package libtool
.
Full text available.Received: (at submit) by debbugs.gnu.org; 12 Apr 2019 14:28:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 12 10:28:41 2019 Received: from localhost ([127.0.0.1]:56603 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1hExAW-0005Lr-Ap for submit <at> debbugs.gnu.org; Fri, 12 Apr 2019 10:28:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38719) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <vitezslav.batrla@HIDDEN>) id 1hEs7T-0001VM-Rh for submit <at> debbugs.gnu.org; Fri, 12 Apr 2019 05:05:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:47637) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <vitezslav.batrla@HIDDEN>) id 1hEs7N-0008UE-6U for submit <at> debbugs.gnu.org; Fri, 12 Apr 2019 05:05:05 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53064) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <vitezslav.batrla@HIDDEN>) id 1hEs7L-0000wN-Uj for bug-libtool@HIDDEN; Fri, 12 Apr 2019 05:05:05 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_40,RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <vitezslav.batrla@HIDDEN>) id 1hEs7K-0008RS-OF for bug-libtool@HIDDEN; Fri, 12 Apr 2019 05:05:03 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:60472) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <vitezslav.batrla@HIDDEN>) id 1hEs7K-0008DP-Ay for bug-libtool@HIDDEN; Fri, 12 Apr 2019 05:05:02 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3C8xjQD140281 for <bug-libtool@HIDDEN>; Fri, 12 Apr 2019 09:04:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : subject : message-id : mime-version : content-type; s=corp-2018-07-02; bh=ajFhy4Qd+ohtduPRakAYlru8rdJ6fU37nESZVww//Yo=; b=H+MDzKvEwTZPTIpsqCADpVxor1/kJyRn7LlLDOiSFOtwlsEtG7vfGMQ20mV60+AGRldJ p1byiWEL4ngv9hoSYaXPJ/tktftKcWEKb07tKxcFBIZXYUCrhSYnW0JOFUreO3NVYpes ij7gfcu0Zafy76JcO7Ki3jXoFbj0ySyZvL9Qd7DnirY/HBLsSsFX9SV7/n7oMKhC6rz/ 0eAUWo11uUn8zkEAF2W6pd0kR7Jmie9LoAq17Hng21ZiOz4if8X6Ka9T+mCMcUz6a4W1 DztVciFGxV+B+QGTZPJ+gfeR25ppLhBRRzfOFxQvT5MpqiHrJRGE2GlEp/4mXmxDGoWc yQ== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2130.oracle.com with ESMTP id 2rphmewjn3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <bug-libtool@HIDDEN>; Fri, 12 Apr 2019 09:04:47 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3C93h1e080636 for <bug-libtool@HIDDEN>; Fri, 12 Apr 2019 09:04:47 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 2rt9uq29mr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <bug-libtool@HIDDEN>; Fri, 12 Apr 2019 09:04:47 +0000 Received: from abhmp0001.oracle.com (abhmp0001.oracle.com [141.146.116.7]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x3C94k5H006865 for <bug-libtool@HIDDEN>; Fri, 12 Apr 2019 09:04:46 GMT Received: from ultra (/10.175.53.220) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 12 Apr 2019 02:04:46 -0700 Date: Fri, 12 Apr 2019 11:04:43 +0200 From: Vita Batrla <vitezslav.batrla@HIDDEN> To: bug-libtool@HIDDEN Subject: libltdl.so uses 32-bit search path in 64-bit mode in Solaris 11.4 Message-ID: <20190412090443.GB1659@ultra> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="7AUc2qLy4jB3hD7Z" Content-Disposition: inline User-Agent: Mutt/1.9.1 (2017-09-22) X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9224 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=978 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904120061 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9224 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904120061 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 141.146.126.79 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 12 Apr 2019 10:28:38 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi all, I noticed that 64-bit version of libtool's libltdl.so shipped in Solaris 11.4 is compiled with 32-bit search path. This mismatch leads causes a failure to dynamically load a module using lt_dlopen() interface. Here's an example of a 64-bit executable trying to dynamically load "libcrypt.so": $ truss -t open,mmapobj ./ltdldemo openat(AT_FDCWD, "/var/ld/64/ld.config", O_RDONLY) Err#2 ENOENT openat(AT_FDCWD, "/usr/lib/64/libltdl.so.7", O_RDONLY) = 3 openat(AT_FDCWD, "/lib/64/libc.so.1", O_RDONLY) = 3 calling lt_dlinit calling lt_dlopen openat(AT_FDCWD, "/usr/lib/libcrypt.so", O_RDONLY) = 3 ^ found "libcrypt.so" in 32-bit path mmapobj(3, MMOBJ_INTERPRET, 0x7FFFBF6ED210, 0x7FFFBFFFEA0C, 0x00000000) Err#48 ENOTSUP ^ failed to map it libcrypt.so: file not found I assume the failure is obvious. A 64-bit program doesn't like 32-bit library (/usr/lib/libcrypt.so) and so mmapobj(2) syscall returns ENOTSUP per its man page: ENOTSUP The current user data model does not match the fd to be interpreted. For example, a 32-bit process that tried to use mmapobj() to interpret a 64-bit object would return The fix is to use 64-bit default search path in 64-bit mode (/lib/64 /usr/lib/64). There are two workarounds: 1. LTDL_LIBRARY_PATH=/lib/64:/usr/lib/64 2. re-compile 64-bit libtool: ./configure lt_cv_sys_dlsearch_path="/lib/64 /usr/lib/64" Perhaps the best solution would be to auto-detect whether to use 32-bit or 64-bit library search paths [1][2][3] on Solaris OS in a configure script. Please see a suggested fix in an attached patch. Thanks, Vita [1] Search paths per ld(1) man page: LIBPATH For 32-bit libraries, the default search path is /lib, followed by /usr/lib. For 64-bit libraries, the default search path is /lib/64, followed by /usr/lib/64. [2] Search paths per ld.so.1(1) man page: The runtime linker uses a prescribed search path for locating the dynamic dependencies of an object. The default search paths are the runpath recorded in the object, followed by a series of defaults. For 32-bit objects, the defaults are /lib followed by /usr/lib. For 64-bit objects, the defaults are /lib/64 followed by /usr/lib/64. [3] Search paths per crle(1) man page: The default search paths for 32-bit ELF objects are /lib followed by /usr/lib. For 64-bit ELF objects, the default search paths are /lib/64 followed by /usr/lib/64. --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="000-64-bit-sys_dlsearch_path.patch" Prevent libltdl.so from using 32-bit search path in 64-bit mode in Solaris OS. --- libtool-2.4.6.orig/m4/libtool.m4 Tue Jan 20 17:15:19 2015 +++ libtool-2.4.6/m4/libtool.m4 Thu Apr 11 19:20:11 2019 @@ -1456,6 +1456,7 @@ if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) + SOLARIS_ISA_BITS=64 case $lt_cv_prog_gnu_ld in yes*) case $host in @@ -1478,6 +1479,9 @@ ;; esac ;; + *32-bit*) + SOLARIS_ISA_BITS=32 + ;; esac fi rm -rf conftest* @@ -2995,6 +2999,12 @@ hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' + if test 32 = "$SOLARIS_ISA_BITS"; then + sys_lib_search_path_spec="/lib /usr/lib" + else + sys_lib_search_path_spec="/lib/64 /usr/lib/64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; sunos4*) --7AUc2qLy4jB3hD7Z--
Vita Batrla <vitezslav.batrla@HIDDEN>
:bug-libtool@HIDDEN
.
Full text available.bug-libtool@HIDDEN
:bug#35245
; Package libtool
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.