From owner-freebsd-hackers@FreeBSD.ORG Fri Sep 12 13:51:14 2008 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F1D31065680 for ; Fri, 12 Sep 2008 13:51:14 +0000 (UTC) (envelope-from jdc@koitsu.dyndns.org) Received: from QMTA07.emeryville.ca.mail.comcast.net (qmta07.emeryville.ca.mail.comcast.net [76.96.30.64]) by mx1.freebsd.org (Postfix) with ESMTP id EE5928FC08 for ; Fri, 12 Sep 2008 13:51:13 +0000 (UTC) (envelope-from jdc@koitsu.dyndns.org) Received: from OMTA04.emeryville.ca.mail.comcast.net ([76.96.30.35]) by QMTA07.emeryville.ca.mail.comcast.net with comcast id Dpeo1a00D0lTkoCA7prCVF; Fri, 12 Sep 2008 13:51:12 +0000 Received: from koitsu.dyndns.org ([67.180.253.227]) by OMTA04.emeryville.ca.mail.comcast.net with comcast id DprA1a00N4v8bD78QprAlV; Fri, 12 Sep 2008 13:51:11 +0000 X-Authority-Analysis: v=1.0 c=1 a=W33fUFesqP8A:10 a=p7sCquAJk-0A:10 a=8yVQ4dpiAAAA:8 a=m0bHr2FCAAAA:8 a=6I5d2MoRAAAA:8 a=QycZ5dHgAAAA:8 a=tX5ATVMkEZMbQahsdFAA:9 a=vNBzgvwBMZHdyTv62joA:7 a=E44FLyHzg7z6zEUILW2T7uDyDtwA:4 a=EoioJ0NPDVgA:10 a=SV7veod9ZcQA:10 a=LY0hPdMaydYA:10 Received: by icarus.home.lan (Postfix, from userid 1000) id 6A86D17B81A; Fri, 12 Sep 2008 06:51:10 -0700 (PDT) Date: Fri, 12 Sep 2008 06:51:10 -0700 From: Jeremy Chadwick To: Barry Andrews Message-ID: <20080912135110.GA57637@icarus.home.lan> References: <48CA555A.4050104@gmail.com> <20080912131045.GA56923@icarus.home.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Cc: Daniel Eischen , freebsd-hackers@freebsd.org Subject: Re: loading multi threaded library into executable enabled for single thread X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Sep 2008 13:51:14 -0000 On Fri, Sep 12, 2008 at 09:26:37AM -0400, Barry Andrews wrote: > I don't understand. If it was not broken, then why did it change in later > FreeBSD versions? I should be more explicit: the threading library and implementations have changed over time. There was libc_r, then there was libthr, then there was libkse. This is what we call "evolution". :-) http://www.unobvious.com/bsd/freebsd-threads.html http://kerneltrap.org/node/624 http://www.freebsd.org/kse/ The gcc -pthread flag is still there on present-day FreeBSD (6 through HEAD), and *should* be used. You can choose not to use it but you must ensure during linktime that you explicitly link to -lpthread. > On Fri, Sep 12, 2008 at 9:10 AM, Jeremy Chadwick wrote: > > > On Fri, Sep 12, 2008 at 07:41:14AM -0400, Barry Andrews wrote: > > > Do you know if this is documented in Release Notes or Known Issues or > > > somewhere? > > > > Why would it be an "issue"? gcc -pthread and libpthread linking is > > documented pretty much everywhere on the web. There isn't anything > > broken about it, it's how it's done on older FreeBSD. > > > > Note that all of this has significantly changed in later FreeBSD > > versions, and that the 5.x series was deprecated a very long time ago. > > > > >> On Thu, 11 Sep 2008, Barry Andrews wrote: > > >> > > >>> Hi All, > > >>> > > >>> I have a multi-threaded library that is linked against libpthread. > > >>> When I > > >>> load this lib into a tclsh process on FreeBSD, I get this error, > > >>> "Recurse on > > >>> private mutex". and crash. I understand that I can have this issue > > >>> when the > > >>> executable is not linked against libpthread but one of the loaded > > >>> libs is. > > >>> Basically, it thinks it's in single threaded mode. > > >> > > >> This must be an older version of FreeBSD. I think you must > > >> link your application (tclsh or whatever) against libpthread > > >> in order for this to work. The libc functions won't get properly > > >> overloaded by their equivalents in libpthread unless you do > > >> this. > > > > -- > > | Jeremy Chadwick jdc at parodius.com | > > | Parodius Networking http://www.parodius.com/ | > > | UNIX Systems Administrator Mountain View, CA, USA | > > | Making life hard for others since 1977. PGP: 4BD6C0CB | > > > > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB |