[git commit master 1/1] add _dl_errno support to errno.h, cleanup

Peter S. Mazinger ps.m at gmx.net
Thu Mar 3 17:22:53 UTC 2011


commit: http://git.uclibc.org/uClibc/commit/?id=96c9a8f7d00cdf6bb7968a2390b9d87da8a45e2d
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

Add support to use errno.h in ldso.
Move __set_errno into _LIBC guard.
Remove uClibc_errno.h, unused.

Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
---
 Makefile.in                                   |    1 -
 include/errno.h                               |   12 ++++---
 libc/sysdeps/linux/common/bits/uClibc_errno.h |   43 -------------------------
 3 files changed, 7 insertions(+), 49 deletions(-)
 delete mode 100644 libc/sysdeps/linux/common/bits/uClibc_errno.h

diff --git a/Makefile.in b/Makefile.in
index bff5016..3f18795 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -215,7 +215,6 @@ HEADERS_RM- := \
 	bits/kernel_types.h \
 	bits/syscalls.h \
 	bits/syscalls-common.h \
-	bits/uClibc_errno.h \
 	bits/uClibc_uintmaxtostr.h \
 	bits/sigcontextinfo.h \
 	bits/stackinfo.h \
diff --git a/include/errno.h b/include/errno.h
index 85268f0..7e1f583 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -58,7 +58,12 @@ extern const char *program_invocation_name, *program_invocation_short_name;
 
 __END_DECLS
 
-#if defined _LIBC && defined __UCLIBC_HAS_TLS__
+#ifdef _LIBC
+#ifdef IS_IN_rtld
+# undef errno
+# define errno _dl_errno
+extern int _dl_errno; /* attribute_hidden */
+#elif defined __UCLIBC_HAS_TLS__
 # if !defined NOT_IN_libc || defined IS_IN_libpthread
 #  undef errno
 #  ifndef NOT_IN_libc
@@ -73,10 +78,7 @@ extern __thread int errno attribute_tls_model_ie;
 #ifndef __set_errno
 #define __set_errno(val) (errno = (val))
 #endif
-
-#ifndef __ASSEMBLER__
-extern int *__errno_location (void) __THROW __attribute__ ((__const__));
-#endif
+#endif /* _LIBC */
 
 #endif /* _ERRNO_H */
 
diff --git a/libc/sysdeps/linux/common/bits/uClibc_errno.h b/libc/sysdeps/linux/common/bits/uClibc_errno.h
deleted file mode 100644
index 9c15618..0000000
--- a/libc/sysdeps/linux/common/bits/uClibc_errno.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2000-2006 Erik Andersen <andersen at uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
-#ifndef _BITS_UCLIBC_ERRNO_H
-#define _BITS_UCLIBC_ERRNO_H 1
-
-#ifdef IS_IN_rtld
-# undef errno
-# define errno _dl_errno
-extern int _dl_errno; /* attribute_hidden; */
-#elif defined __UCLIBC_HAS_THREADS__
-# include <tls.h>
-# if defined USE___THREAD && USE___THREAD
-#  undef errno
-#  ifndef NOT_IN_libc
-#   define errno __libc_errno
-#  else
-#   define errno errno
-#  endif
-extern __thread int errno attribute_tls_model_ie;
-# endif /* USE___THREAD */
-#endif /* IS_IN_rtld */
-
-#define __set_errno(val) (errno = (val))
-
-#ifndef __ASSEMBLER__
-extern int *__errno_location (void) __THROW __attribute__ ((__const__))
-# ifdef IS_IN_rtld
-	attribute_hidden
-# endif
-;
-# if defined __UCLIBC_HAS_THREADS__
-#  include <tls.h>
-#  if defined USE___THREAD && USE___THREAD
-libc_hidden_proto(__errno_location)
-#  endif
-# endif
-
-#endif /* !__ASSEMBLER__ */
-
-#endif
-- 
1.7.3.4



More information about the uClibc-cvs mailing list