Тъй като всеки компилатор има своя собствена версия на локално хранилище на нишки, в крайна сметка създадох макрос за него. Единственият проблем сега е GCC (с изключени pthreads), което ми дава:
"локалното хранилище на нишка не се поддържа за тази цел"
Справедливо, като се има предвид, че pthreads всъщност са изключени в този случай. Въпросът е има ли общ начин за откриване на това с помощта на някакъв макрос, напр. #ifdef __GCC_XXX_NO_THREADS_XXX ?
РЕДАКТИРАНЕ: Вижте приетия отговор по-долу. Също така, ето моето мързеливо решение:
$ touch test.c
$ gcc -E -dM test.c > out.1
$ gcc -pthread -E -dM test.c > out.2
$ diff out.*
28a29
> #define _REENTRANT 1
Това е на Mac OS X. Не съм сигурен дали е преносим или нещо подобно...