http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53769
--- Comment #2 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> 2012-06-25 22:37:22 UTC --- But what if a recent glibc version isn't used? Would GCC still be able to compile the following code? int main (void) { #if __STDC_VERSION__ >= 201112L && ! __STDC_NO_THREADS__ _Thread_local int i = 17; #endif return 0; } Shouldn't GCC define __STDC_NO_THREADS__ to 1 by default and stdc-predef.h undefine it if _Thread_local is supported at the library level?