From owner-freebsd-threads@FreeBSD.ORG Wed Apr 30 19:16:59 2003 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 003A137B401 for ; Wed, 30 Apr 2003 19:16:58 -0700 (PDT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4AB5E43F85 for ; Wed, 30 Apr 2003 19:16:56 -0700 (PDT) (envelope-from eischen@pcnet1.pcnet.com) Received: from pcnet1.pcnet.com (localhost [127.0.0.1]) by mail.pcnet.com (8.12.8/8.12.1) with ESMTP id h412GtBg020341; Wed, 30 Apr 2003 22:16:55 -0400 (EDT) Received: from localhost (eischen@localhost)h412GtIX020336; Wed, 30 Apr 2003 22:16:55 -0400 (EDT) Date: Wed, 30 Apr 2003 22:16:54 -0400 (EDT) From: Daniel Eischen To: Peter Wemm In-Reply-To: <20030501011103.6E20D2A7EA@canning.wemm.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: threads@freebsd.org Subject: Re: Question about rtld-elf. Anyone?.. Anyone? 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: Thu, 01 May 2003 02:16:59 -0000 On Wed, 30 Apr 2003, Peter Wemm wrote: > Daniel Eischen wrote: > > As an experiment, I made the dlfoo calls in rtld-elf weak > > (__dlfoo -> dlfoo) and then overrode them in libpthread > > and protected them with mutexes. > > > > I can get mozilla to work about 1/2 of the time now, but > > it still gets stuck in the same state the other 1/2 of > > the time. This is a bit of an improvement, and seems to > > indicate (at least to me) that rtld-elf is the culprit. > > As John said, the problem is twofold. One is the symbol resolution itself, > eg: when you access a function for the first time, a lazy binding call > happens. He had ideas about how to make that fully reentrant. The second > problem was preventing dlopen() and friends being called in parallel. It > sounds like you've dealt with only the second problem... Yep, I know. I just want to provide more evidence that it is rtld, and not something we're doing in libpthread. -- Dan Eischen