On 05/19/09 11:29:57, Andrew Pinski wrote: > On Tue, May 19, 2009 at 11:25 AM, Gary Funck <g...@intrepid.com> wrote: > > > > For UPC code generation, we're building an alternate > > method of accessing thread-local data that does not depend upon > > operating system support of the __thread qualifier. > > GCC has already added generic support for the __thread qualifier which > does not depend on the OS needing builtin support at all.
Andrew, thanks. The only implementation that I'm aware of is described in Ulrich Drepper's 2005 paper, http://people.redhat.com/drepper/tls.pdf Is the __thread feature now more universally/portably supported? My impression is that this feature requires GNU/ELF linker and glibc support. Is that correct? We have been using builtin __thread support for quite a while. It generally has worked well on most modern Linux platforms, but we have encountered a few issues/glitches: * On SuSE 10/altix, we have seen overflows of the thread-local linker section, when compiling programs that declare many large TLS variables. * On CentOS 5/x86, we have seen programs that sometimes fail at 'exec' time, possibly because it can't muster the resources needed to start the program, or allocate the memory map. Those failures have been intermittent with no suspicious entries in the system logs. * On the older SGI/Irix systems, there has been no __thread support at all from what I can recall. Those limitations have motivated our need to provide a more portable implementation of TLS variables. thanks, - Gary