From owner-freebsd-threads@FreeBSD.ORG Tue Jun 8 05:41:29 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 431D116A4CE; Tue, 8 Jun 2004 05:41:29 +0000 (GMT) Received: from freebsd3.cimlogic.com.au (adsl-20-121.swiftdsl.com.au [218.214.20.121]) by mx1.FreeBSD.org (Postfix) with ESMTP id C64F143D48; Tue, 8 Jun 2004 05:41:28 +0000 (GMT) (envelope-from jb@cimlogic.com.au) Received: by freebsd3.cimlogic.com.au (Postfix, from userid 102) id AB3A66AA57; Tue, 8 Jun 2004 15:41:27 +1000 (EST) Date: Tue, 8 Jun 2004 15:41:27 +1000 From: John Birrell To: Daniel Eischen Message-ID: <20040608054127.GB3604@freebsd3.cimlogic.com.au> References: <20040608051347.GA3604@freebsd3.cimlogic.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i cc: ports@freebsd.org cc: Dan Nelson cc: Sean McNeil cc: freebsd-threads@freebsd.org Subject: Re: weak implementation of threads has problems - kse fix attached 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: Tue, 08 Jun 2004 05:41:29 -0000 On Tue, Jun 08, 2004 at 01:34:33AM -0400, Daniel Eischen wrote: > On Tue, 8 Jun 2004, John Birrell wrote: > > > [ cross-post lists cut back, ports added 8-) ] > > > > On Mon, Jun 07, 2004 at 11:48:45PM -0500, Dan Nelson wrote: > > > A good addition to bsd.port.mk, right next to the "possible network > > > server" etc checks, might be to run ldd on all installed shared > > > libraries and print a warning if any threads libraries show up. There > > > are a huge number of ports that install shlibs linked to libpthreads. > > > > Good idea. > > Just picking a message at random to reply to... > > In case anyone wonders why we don't use strong references, I chose to > mimic what Solaris does: > > bash-2.05$ nm /lib/libpthread.so.1 | grep pthread_mutex_lock > 0000000000003c80 T _pthread_mutex_lock > 0000000000003c80 W pthread_mutex_lock > > bash-2.05$ nm /lib/libc.so.1 | grep pthread_mutex_lock > 0000000000096c38 W _pthread_mutex_lock > 0000000000096c38 W pthread_mutex_lock > > It is also easy to provide your own version of pthread_foo() without > having any strong references override it. Despite the heat-of-the-moment on amd64, FWIW, using linpthread on i386 on a clean machine with NOLIBC_R set in /etc/make.conf, nothing in libmap.conf and just normal ports builds, gnome, mplayer, mozilla, openoffice etc work fine for me on current (except for the ACPI kernel problems which should either be fixed or backed out IMNSHO). -- John Birrell