diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2011-03-03 15:06:47 +0100 |
---|---|---|
committer | Peter S. Mazinger <ps.m@gmx.net> | 2011-03-03 18:22:53 +0100 |
commit | 96c9a8f7d00cdf6bb7968a2390b9d87da8a45e2d (patch) | |
tree | 597fcd4c444038554af4b410c9fb2db82102d4ac | |
parent | 1f19ef8f9316e52f4940c34be3e056a8a41540e6 (diff) |
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>
-rw-r--r-- | Makefile.in | 1 | ||||
-rw-r--r-- | include/errno.h | 12 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/bits/uClibc_errno.h | 43 |
3 files changed, 7 insertions, 49 deletions
diff --git a/Makefile.in b/Makefile.in index bff501681..3f1879539 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 85268f053..7e1f583a8 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 9c1561841..000000000 --- a/libc/sysdeps/linux/common/bits/uClibc_errno.h +++ /dev/null @@ -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 |