https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81142
--- Comment #11 from Harald Welte <laforge at gnumonks dot org> --- more than two years later, we can reproduce and observe this bug in a variety of ARM32 platforms, including raspbian 9 (with any gcc version shipped there, up to 6.3.x) and rapsbian 10 (up to gcc 6.5, but not with gcc-7.3 or gcc-8.3) You can find the lengthy journey of investing several person-days of work at https://osmocom.org/issues/4062 At Osmocom, we're not compiler experts, but it seems to relate to to what kind of ELF relocations gcc emits during code generation. IIRC, TLS was introduced in 2003, I'm surprised it still appears to be such an under-tested/under-used feature. What would be important is to fully understand this issue in order to desing a proper work-around. Dropping support for 32bit ARM systems or for platforms using gcc lower than 7.x is unfortunately not an option :/