From f418f52701de02954c90341e5c9ccdd3f07ccd33 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Fri, 25 Mar 2011 00:49:42 +0100 Subject: errno, h_errno: correct them for non-TLS Move h_errno related stuff to separate file. Do not hide errno and h_errno for non-TLS, else it keeps being 0. Make __[h_]errno_location weak for non-TLS. Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- libc/misc/internals/errno.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'libc/misc/internals/errno.c') diff --git a/libc/misc/internals/errno.c b/libc/misc/internals/errno.c index 11d19eeef..d9908853d 100644 --- a/libc/misc/internals/errno.c +++ b/libc/misc/internals/errno.c @@ -1,21 +1,14 @@ #include +#include +#undef errno #ifdef __UCLIBC_HAS_TLS__ __thread int errno; -__thread int h_errno; - extern __thread int __libc_errno __attribute__ ((alias ("errno"))) attribute_hidden; -extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden; -#define h_errno __libc_h_errno - #else -#include "internal_errno.h" +extern int errno; int errno = 0; -int h_errno = 0; -#ifdef __UCLIBC_HAS_THREADS__ -libc_hidden_def(errno) -weak_alias(errno, _errno) -libc_hidden_def(h_errno) -weak_alias(h_errno, _h_errno) -#endif +# ifdef __UCLIBC_HAS_THREADS__ +strong_alias(errno,_errno) +# endif #endif -- cgit v1.2.3