From owner-freebsd-current@FreeBSD.ORG Tue Jun 17 16:41:10 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4847437B401 for ; Tue, 17 Jun 2003 16:41:10 -0700 (PDT) Received: from sccrmhc12.attbi.com (sccrmhc12.comcast.net [204.127.202.56]) by mx1.FreeBSD.org (Postfix) with ESMTP id 97C0943F3F for ; Tue, 17 Jun 2003 16:41:09 -0700 (PDT) (envelope-from julian@elischer.org) Received: from interjet.elischer.org ([12.233.125.100]) by attbi.com (sccrmhc12) with ESMTP id <200306172341080120098ovfe>; Tue, 17 Jun 2003 23:41:08 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id QAA32014; Tue, 17 Jun 2003 16:41:08 -0700 (PDT) Date: Tue, 17 Jun 2003 16:41:08 -0700 (PDT) From: Julian Elischer To: Marcel Moolenaar In-Reply-To: <20030617224545.GC57040@ns1.xcllnt.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: FreeBSD current users Subject: Re: __thread support in -current.. X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2003 23:41:10 -0000 see my answer to you there.. On Tue, 17 Jun 2003, Marcel Moolenaar wrote: > On Tue, Jun 17, 2003 at 03:34:15PM -0700, Julian Elischer wrote: > > > > Ok, so having thrashed out what is required on the threads list > > (and severely strained (but hopefully not permanently) our relations > > with the OpenGL folks) we've figured out that we do need to support > > __thread (if we don't we'll miss out on alot). > > > > I have basicaly worked out what we need to do > > (Generarlly we do the same as solaris does) to support this.. > > The question is, what do we need to do for gcc and the loader > > to support this..? > > > > I guess the support is in gcc as Linux and solaris use it, but > > is our linker close enough to what they use to be able to benefit at all > > from them? > > >From my posting to threads@: > > \begin{quote} > ... To support the __thread > keyword, our thread library needs to create the TLS as defined in the > binary and its dependent shared libraries by virtue of the .tdata and > .tbss sections/segments, based on the image of the TLS as constructed > by the RTLD for the initial set of modules (created for the initial > thread) and amended by TLS space defined in the dynamicly loaded > libraries; and the TLS has to be created for every new thread at the > time the thread itself is created. This TLS allocation has to be made > accessable in accordance with runtime specifications for the supported > architectures (libthr: i386 & ia64; libkse: i386 currently -- more to > follow) and in line with the access sequences created by the compiler, > and using the static relocations known to the static linker and dynamic > relocations of which the support needs to be added to RTLD. > > The static TLS model requires the least amount of work: add support > to allocate the TLS image for every thread creation and point the > thread pointer to it in a way compatible with the runtime spec. > > The dynamic TLS model requires more substantial changes and involves > RTLD as well. This is the model that requires __tls_get_addr(). > \end{quote} > > HTH, > > -- > Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >