SPRAB89A September 2011 – March 2014
A thread-local reference can only be resolved by a thread-local definition. The linker should enforce this requirement. Also, the presence of a thread-local definition and a normal global definition with the same name is an error.
Thread-local variables can be defined or declared weak. A weak thread-local definition implies that it can be overridden by a strong definition if available. If a strong definition is not found, the weak definition is used. No special care is needed to support thread-local weak definitions.
A weak thread-local symbol reference is resolved to zero address if a definition is not found. This requires special handling in each of the TLS addressing models.