On win32, a model thats similar to that is used, i.e.: From your description it sounds like win32 TLS model is something close to the Local-Exec model, in that there is no function call involved in the TLS access and the address is stored in the instruction directly So, I need to tell GCC to always use this model.