https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80881
--- Comment #28 from LIU Hao <lh_mouse at 126 dot com> --- (In reply to Julian Waters from comment #27) > I think I remember clang using __tls_index instead of _tls_index for 32 bit > as well, but that's the only difference I remember. On another note, Cygwin Yes, you are right. Solely for i686, external symbols have to be prefixed by an underscore. > doesn't support TLS natively, right? Eric modified the stopgap patch above > and he put some definitions in cygming.h, since he expects it to support > Cygwin as well, but I vaguely remember you saying something about Cygwin not > having the support for this Correct, because the Cygwin CRT doesn't have a TLS directory. You can use `objdump -h` to print PE headers of a Cygwin executable, and there is no `.tls` section. An application may provide its own TLS directory, but it's not default.