11.10.1 Declaring thread objects
The GCC method to declare thread objects is through the storage class specifier
__thread. The use of this specifier may be combined with
static or extern (but not auto).
When an object is declared with this specifier, the language tool will arrange to locate
these objects into an area of memory that is separate from other data with a view to
allowing multiple copies of this data to exist.
