> Thus, I would suggest to set this constant to ELAST. So, we will avoid > useless unknown error strings and a non-zero errno after tls_init().
ELAST isn't portable. It's under __BSD_VISIBLE in sys/errno.h. It would seem better to use the save_errno idiom to store the errno at the start of the loop and restore it at the end. And yes, we should fix this, after unluck.