From owner-freebsd-threads@FreeBSD.ORG Mon Jun 7 04:06:30 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5BFD416A4CE; Mon, 7 Jun 2004 04:06:30 +0000 (GMT) Received: from mail.mcneil.com (rrcs-west-24-199-45-54.biz.rr.com [24.199.45.54]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1DA0043D4C; Sun, 6 Jun 2004 21:06:28 -0700 (PDT) (envelope-from sean@mcneil.com) Received: from localhost (localhost.mcneil.com [127.0.0.1]) by mail.mcneil.com (Postfix) with ESMTP id 9A7C2FD01A; Sun, 6 Jun 2004 21:06:27 -0700 (PDT) Received: from mail.mcneil.com ([127.0.0.1]) by localhost (server.mcneil.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 59142-03; Sun, 6 Jun 2004 21:06:27 -0700 (PDT) Received: from [24.199.45.54] (mcneil.com [24.199.45.54]) by mail.mcneil.com (Postfix) with ESMTP id 1E534FD012; Sun, 6 Jun 2004 21:06:27 -0700 (PDT) From: Sean McNeil To: Daniel Eischen In-Reply-To: References: Content-Type: text/plain Message-Id: <1086581186.59212.12.camel@server.mcneil.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.6 Date: Sun, 06 Jun 2004 21:06:27 -0700 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at mcneil.com cc: freebsd-amd64@freebsd.org cc: freebsd-threads@freebsd.org Subject: Re: more symbol binding problems X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2004 04:06:30 -0000 On Sun, 2004-06-06 at 20:56, Daniel Eischen wrote: > On Sun, 6 Jun 2004, Sean McNeil wrote: > > > On Sun, 2004-06-06 at 17:25, Daniel Eischen wrote: > > > On Sun, 6 Jun 2004, Sean McNeil wrote: > > > > > > > I have another one that I can't explain. apache2 and libphp4. > > > > > > > > The php4 shared library that is pulled into apache2 has the following > > > > (with pthread mapped to libc_r): > > > > > > > > /usr/local/libexec/apache2/libphp4.so: > > > [ ... ] > > > > libssl.so.3 => /usr/lib/libssl.so.3 (0x202538000) > > > > libcrypto.so.3 => /lib/libcrypto.so.3 (0x202672000) > > > > libpthread.so.1 => /usr/lib/libc_r.so.5 (0x2027c5000) > > > > libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x2028f0000) > > > > libc.so.5 => /lib/libc.so.5 (0x20062a000) > > You really want to look at the executable (httpd?) too. What > does 'ldd' on it show? Hmmm... /usr/local/sbin/httpd: libz.so.2 => /lib/libz.so.2 (0x200675000) libssl.so.3 => /usr/local/lib/libssl.so.3 (0x200784000) libcrypto.so.3 => /usr/local/lib/libcrypto.so.3 (0x2008be000) libaprutil-0.so.9 => /usr/local/lib/apache2/libaprutil-0.so.9 (0x200b12000) libldap.so.2 => /usr/local/lib/libldap.so.2 (0x200c28000) liblber.so.2 => /usr/local/lib/liblber.so.2 (0x200d60000) libdb41.so.1 => /usr/local/lib/libdb41.so.1 (0x200e6e000) libexpat.so.5 => /usr/local/lib/libexpat.so.5 (0x20102b000) libapr-0.so.9 => /usr/local/lib/apache2/libapr-0.so.9 (0x20114e000) libm.so.2 => /lib/libm.so.2 (0x201270000) libcrypt.so.2 => /lib/libcrypt.so.2 (0x201391000) libc.so.5 => /lib/libc.so.5 (0x2014ab000) libsasl2.so.2 => /usr/local/lib/libsasl2.so.2 (0x2016a9000) So it looks like it is pulling in the ldap library without pthreads/libc_r first. So I think what is happening is that the symbols resolved with ldap aren't updated when it is part of the DAG of php4. Not sure why these would get resolved so early. I should think they are lazy and happen a lot later. But perhaps that is the bug? Are lazy resolutions failing to take into account the threading library needs from dlopen'ing php4?