Is D right for me?

Walter Bright newshound2 at digitalmars.com
Thu Oct 14 14:11:01 PDT 2010


Jacob Carlborg wrote:
> As I said, the static TLS data is put in the object file like any other 
> data.

No, it isn't. It has to go into segregated sections so it can be distinguished 
from regular static data. Fixup records are different for them, and some special 
code sequences are used to access them.


> I can see that the linker could/would be a problem. Of course the 
> compiler needs to be updated but there should be any problems updating 
> dmd. I guess you're referring to gcc. I also have to say that I haven't 
> fully understood what the linker does in this case, with the TLS data.

On Linux, the linker understands the special TLS sections, and the special 
relocation fixups to reference them. It also patches the specific TLS access 
code sequences emitted by the compiler differently depending on whether the 
result is to go into an executable or a shared library.

On OSX, none of this happens.


More information about the Digitalmars-d mailing list