Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 5 Oct 2012 13:27:29 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: TLS (thread-local storage) support

On Thu, Oct 04, 2012 at 11:04:14PM -0400, Rich Felker wrote:
> On Thu, Oct 04, 2012 at 05:13:32PM -0400, Rich Felker wrote:
> > Hi,
> > 
> > I've committed the initial version of thread-local storage
> > (__thread/_Thread_local keyword). So far, it only works in
> > static-linked applications,
> 
> Scratch that. It's now supported everywhere except dynamically loaded
> (dlopen'd) shared libraries. And I'm working on adding support for

And they're working now too.

I've also made some general fixes and improvements to the dynamic
linker -- minor corrections in how library files are located, and
support for recursive calls to dlopen (happens when a library has
constructors and one of those constructors calls dlopen). This same
change was also necessary to avoid blocking pthread_create calls for
the entire duration of constructor execution.

Some further dynamic linker development directions:

- Unifying the relocation code in arch/$(ARCH)/reloc.h to minimize
  duplication.

- Adding dlsym() support for TLS vars (obtaining current thread's
  copy).

- Cleanup and reduction of code duplication - phdr parsing and symbol
  lookup logic is duplicated in several places.

And of course testing TLS on other archs and fixing anything that's
broken...


Rich

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.