From owner-freebsd-threads@FreeBSD.ORG Mon Mar 29 13:21:12 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 A2CDA16A4CE for ; Mon, 29 Mar 2004 13:21:12 -0800 (PST) Received: from herring.rabson.org (mailgate.nlsystems.com [80.177.232.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id B282143D1D for ; Mon, 29 Mar 2004 13:21:11 -0800 (PST) (envelope-from dfr@nlsystems.com) Received: from herring.rabson.org (herring.rabson.org [10.0.0.2]) by herring.rabson.org (8.12.11/8.12.11) with ESMTP id i2TLL06G012003; Mon, 29 Mar 2004 22:21:00 +0100 (BST) (envelope-from dfr@nlsystems.com) From: Doug Rabson To: Daniel Eischen Date: Mon, 29 Mar 2004 22:21:00 +0100 User-Agent: KMail/1.6.1 References: In-Reply-To: MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200403292221.00286.dfr@nlsystems.com> X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on herring.rabson.org X-Virus-Scanned: ClamAV version 'clamd / ClamAV version 0.65', clamav-milter version '0.60p' cc: freebsd-threads@freebsd.org Subject: Re: Thread Local Storage 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, 29 Mar 2004 21:21:12 -0000 On Monday 29 March 2004 20:36, Daniel Eischen wrote: > On Mon, 29 Mar 2004, Doug Rabson wrote: > > I've been spending a bit of time recently familiarising myself with > > this TLS stuff and trying out a few things. I've been playing with > > rtld and I have a prototype patch which implements enough TLS > > support to let a non-threaded program which uses static TLS work. > > With a tiny bit more work I can have limited support for dynamic > > TLS as well (not for dlopen'ed modules yet though). Is there a p4 > > tree for this stuff yet? I'd like to check in what I have sometime. > > > > I've also been looking at libpthread and I can see some potential > > problems with it. Currently libpthread on i386 uses %gs to point at > > a struct kcb which seems to be a per-kse structure. This structure > > contains a pointer to a per-thread struct tcb and this pointer is > > managed by the userland context switch code. Other arches are > > similar, e.g. ia64 uses $tp to point at struct kcb. > > > > The problem with TLS is that the i386 ABI needs %gs to point at the > > TLS > > There are 2 different methods allowed for the i386 ABI. > We want to use the other method in which there is an > additional indirection. The current i386 libpthread > stuff adheres to this method. Surely the GNU TLS ABI is preferable? It generates much smaller code and needs many fewer relocations.