summaryrefslogtreecommitdiffstats
path: root/libc/misc/internals/errno.c
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-07-22 06:49:31 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-07-22 06:49:31 +0000
commit7a4daea1ea52c84588630329db7e14cbc4d12c41 (patch)
tree6d7f69512147c98b63ad7934f2a3abe1c67e7065 /libc/misc/internals/errno.c
parent9a97faafbcd7bc23d5adf32f4ed135bdf623629a (diff)
downloaduClibc-alpine-7a4daea1ea52c84588630329db7e14cbc4d12c41.tar.bz2
uClibc-alpine-7a4daea1ea52c84588630329db7e14cbc4d12c41.tar.xz
Fixed up resolver and errno code such that both thread models can compile without stepping on each other. The original implementation pulled from glibc was done incorrectly and has been fixed.
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