LLVM and TLS
    Jacob Carlborg via digitalmars-d-ldc 
    digitalmars-d-ldc at puremagic.com
       
    Fri Feb 20 01:04:18 PST 2015
    
    
  
On 2015-02-19 23:27, deadalnix wrote:
> Hijacking this as I'm investigating how TLS plays with shared object.
I guess you can read the documentation at [1] and the source code in 
druntime for Linux and FreeBSD.
> So, my understanding is that the segment register is used as a base for
> TLS, and TLS globals are indexed using this register as a base.
>
> This sounds like it can work until you have to cross shared object
> boundaries. What is done in this case ?
I think that is when a runtime helper functions is used, i.e. 
__tls_get_addr. Multiple models of TLS exist and they very between 
platforms and depending of what features are needed, i.e. shared 
objects. There's some documentation [1].
[1] http://www.akkadia.org/drepper/tls.pdf
-- 
/Jacob Carlborg
    
    
More information about the digitalmars-d-ldc
mailing list