OSDN Git Service

weak symbols need to be "defined" weak but "declared" strong
[uclinux-h8/uClibc.git] / libc / sysdeps / linux / common / bits / errno.h
index 6157d69..7c0aeb1 100644 (file)
@@ -1,5 +1,5 @@
 /* Error constants.  Linux specific version.
-   Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -13,9 +13,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #ifdef _ERRNO_H
 
 # include <linux/errno.h>
 
 /* Linux has no ENOTSUP error code.  */
-# define ENOTSUP EOPNOTSUPP
+# ifndef ENOTSUP
+#  define ENOTSUP EOPNOTSUPP
+# endif
 
-/* Linux also has no ECANCELED error code.  Since it is not used here
-   we define it to an invalid value.  */
-# define ECANCELED     125
+/* Older Linux versions also had no ECANCELED error code.  */
+# ifndef ECANCELED
+#  define ECANCELED    125
+# endif
 
-# ifndef __ASSEMBLER__
-/* We now need a declaration of the `errno' variable.  */
-extern int errno;
+/* Support for error codes to support robust mutexes was added later, too.  */
+# ifndef EOWNERDEAD
+#  define EOWNERDEAD           130
+#  define ENOTRECOVERABLE      131
+# endif
 
+# ifndef __ASSEMBLER__
 /* Function to get address of global `errno' variable.  */
 extern int *__errno_location (void) __THROW __attribute__ ((__const__));
 
-#  if defined _LIBC
-/* We wouldn't need a special macro anymore but it is history.  */
-#   define __set_errno(val) ((errno) = (val))
-#  endif /* _LIBC */
-
-#  if defined __UCLIBC_HAS_THREADS__
+#  ifdef __UCLIBC_HAS_THREADS__
 /* When using threads, errno is a per-thread value.  */
 #   define errno (*__errno_location ())
 #  endif
-
 # endif /* !__ASSEMBLER__ */
 #endif /* _ERRNO_H */