https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93119
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So looking further, my patch is incorrect. The glibc sources for __tls_get_addr says it returns void* which is a 32bit value which might or might not be zero extended. So I need to fix this slightly different from what I did. >These are supposed to be machine addresses, not C pointers. Yes and no but see above, even my attached patch is wrong. I am rewriting this again.