Browse Source

add _dl_errno support to errno.h, cleanup

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@gmx.net>
Peter S. Mazinger 13 years ago
parent
commit
96c9a8f7d0
3 changed files with 7 additions and 49 deletions
  1. 0 1
      Makefile.in
  2. 7 5
      include/errno.h
  3. 0 43
      libc/sysdeps/linux/common/bits/uClibc_errno.h

+ 0 - 1
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 \

+ 7 - 5
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 */
 

+ 0 - 43
libc/sysdeps/linux/common/bits/uClibc_errno.h

@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2000-2006 Erik Andersen <andersen@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