]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - include/errno.h
Add per-thread cache to malloc
[thirdparty/glibc.git] / include / errno.h
index 80c7b6ec132ce0470d054d4036670c7fb5ad394e..3c3d2288c8bb2a8dab9f1b49e36b7e06463a3ff1 100644 (file)
@@ -1,11 +1,14 @@
 #ifndef _ERRNO_H
-
 #include <stdlib/errno.h>
+#if !defined _ISOMAC && !defined __ASSEMBLER__
 
-#if defined _ERRNO_H && !defined _ISOMAC && !defined __cplusplus
-
-# ifdef IS_IN_rtld
+# if IS_IN (rtld)
 #  include <dl-sysdep.h>
+#  ifndef RTLD_PRIVATE_ERRNO
+#   error "dl-sysdep.h must define RTLD_PRIVATE_ERRNO!"
+#  endif
+# else
+#  define RTLD_PRIVATE_ERRNO   0
 # endif
 
 # if RTLD_PRIVATE_ERRNO
 #  define errno rtld_errno
 extern int rtld_errno attribute_hidden;
 
-# else
+# elif IS_IN_LIB
 
 #  include <tls.h>
 
-#  if USE___THREAD
-#   undef  errno
-#   ifndef NOT_IN_libc
-#    define errno __libc_errno
-#   else
-#    define errno errno                /* For #ifndef errno tests.  */
-#   endif
-extern __thread int errno attribute_tls_model_ie;
+#  undef  errno
+#  if IS_IN (libc)
+#   define errno __libc_errno
+#  else
+#   define errno errno         /* For #ifndef errno tests.  */
 #  endif
+extern __thread int errno attribute_tls_model_ie;
 
-# endif        /* RTLD_PRIVATE_ERRNO */
+# endif        /* IS_IN_LIB */
 
 # define __set_errno(val) (errno = (val))
 
-# ifndef __ASSEMBLER__
-extern int *__errno_location (void) __THROW __attribute__ ((__const__))
+extern int *__errno_location (void) __THROW __attribute_const__
 #  if RTLD_PRIVATE_ERRNO
      attribute_hidden
 #  endif
 ;
 libc_hidden_proto (__errno_location)
-# endif
-
-#endif /* _ERRNO_H */
 
-#endif /* ! _ERRNO_H */
+#endif /* !_ISOMAC && !__ASSEMBLER__ */
+#endif /* !_ERRNO_H */