summaryrefslogtreecommitdiffstats
path: root/libc/misc/internals/errno.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/misc/internals/errno.c')
-rw-r--r--libc/misc/internals/errno.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/libc/misc/internals/errno.c b/libc/misc/internals/errno.c
index f2424eae0..5197e0aec 100644
--- a/libc/misc/internals/errno.c
+++ b/libc/misc/internals/errno.c
@@ -1,14 +1,15 @@
#include <features.h>
#undef errno
+#if __PTHREADS_NATIVE__
+#include <tls.h>
extern int errno;
-extern int h_errno;
-
-#if 0
-/* Unfortunately, this doesn't work... */
-int h_errno __attribute__ ((section (".bss"))) = 0;
-int errno __attribute__ ((section (".bss"))) = 0;
+extern __thread int _h_errno;
+int _errno = 0;
+__thread int _h_errno;
#else
+extern int errno;
+extern int h_errno;
int _errno = 0;
int _h_errno = 0;
#endif