https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91628
--- Comment #6 from Florian Weimer <fw at gcc dot gnu.org> --- __tls_get_offset looks like this: __tls_get_offset: la %r2,0(%r2,%r12) jg __tls_get_addr The caller should be able to prepare for the la instruction, by subtracting r12 from r2. (Not sure whose r12 this, and if it's modified by the PLT code. If it is, things could get tricky.)