[uclibc-ng-devel] [PATCH] xtensa: fix _dl_tlsdesc_dynamic

Waldemar Brodkorb wbx at uclibc-ng.org
Sun Jan 21 13:37:01 CET 2018

Hi Max,
Max Filippov wrote,

> There are multiple errors in _dl_tlsdesc_dynamic:
> - the reference C implementation should return pointer to the
>   thread-local variable, not offset from the thread pointer, because the
>   xtensa ABI expects TLSDESC_FN to return pointer to the TLS variable;
> - addx8 used for indexing into dtv has its second and third registers in
>   wrong order, the index must be multiplied by 8, not the base;
> - the same addx8 uses wrong base: instead of dtv it adds the offset to
>   the threadptr;
> - the return value in the fast path is calculated as
>   td->tlsinfo.ti_offset - __builtin_thread_pointer, not what was
>   intended;
> - both fast and slow paths should not subtract __builtin_thread_pointer
>   from the result.
> Signed-off-by: Max Filippov <jcmvbkbc at gmail.com>

Applied and pushed,

More information about the devel mailing list