I'm trying (for reason too complex to go into) to locate the TLS offset of the tcache_shutting_down variable from malloc in the ubuntu provided glibc on aarch64 ubuntu 18.04.
Various "normal" TLS variables appear to operate much like x86_64 with a GOT table entry where the TLS offset of the variable gets stashed. But in the ubuntu glibc there is no GOT entry for that variable, and disassembly of the code shows that it seems to "just know" the offset to use. Is there some kind of magic TLS optimization that can happen for certain variables on aarch64? I'm trying to understand how it could know the offset like it appears to do in the code.