-#include <errno.h>
-#include "libc.h"
-
-#undef errno
-int errno;
+#include "pthread_impl.h"
int *__errno_location(void)
{
- if (libc.errno_location) return libc.errno_location();
- return &errno;
+ static int e;
+ if (libc.main_thread) return __pthread_self()->errno_ptr;
+ return &e;
}