Ok, here is the thing...

Here are 2 versions of linux libc tls and notls. (Current linux distries just
ship with the tls version i think, but here may be exceptions)

TLS is a libpthread thing that is heavily wired together with libc
on linux. (just do an ldd on something like ls)

TLS uses the two free segment registers %FS and %GS as a way for a thread
to access its thread local storage area. (the parent allocates some memory
and sets up an segment descriptor that points/translates to this memory
(it makes set_thread_area() syscall todo this)

to implement this syscall, i needed a way to change entries in the
global descriptor table in the kernel. here is some experimental
driver (/dev/tls) but i'm not sure if its correct. also it buys you not very 
mutch
to have it yet, because the new pthread library also needs a futex 
implementation
to be usefull. the old notls libc works without that syscall and doesnt need
any modification to the plan9 kernel.

but... i think in the near future TLS support is important and for that i
need some kernel support to change segment descriptors on a process
basis.

If i understand vx correctly, it also needs a way to change segment 
descriptors and even needs to be able to change its %DS, %CS, %SS registers
to it.

cinap
--- Begin Message ---
On Thu, Jul 10, 2008 at 9:33 AM, Charles Forsyth <[EMAIL PROTECTED]> wrote:
>> speaking of which, did Cinap's  fixes for the gs segment make it in so
>> we have thread local storage a la linux now?
>
>
> or did you mean in linuxemu?

yes. linuxemu needed a kernel change IIRC and I was wondering if that was in.
ron

--- End Message ---

Reply via email to