summaryrefslogtreecommitdiff
path: root/stdlib/errno.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-12-27 19:01:57 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-12-27 19:01:57 +0000
commitcab56836b146bc129f1ad43f0393d95a9deca63a (patch)
tree4f4e655319bbac78fca170da05275c127429b460 /stdlib/errno.h
parent04ac1241a4cd004872282c2c82ec37fa33925292 (diff)
parent82dd75a7f436a19047325d62182590c9f9e23a78 (diff)
Merge branch 't/tls' into refs/top-bases/t/tls-threadvar
Diffstat (limited to 'stdlib/errno.h')
-rw-r--r--stdlib/errno.h61
1 files changed, 22 insertions, 39 deletions
diff --git a/stdlib/errno.h b/stdlib/errno.h
index 3357cbc2df..fc8b496fae 100644
--- a/stdlib/errno.h
+++ b/stdlib/errno.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2018 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
@@ -20,53 +20,36 @@
*/
#ifndef _ERRNO_H
+#define _ERRNO_H 1
-/* The includer defined __need_Emath if he wants only the definitions
- of EDOM and ERANGE, and not everything else. */
-#ifndef __need_Emath
-# define _ERRNO_H 1
-# include <features.h>
-#endif
+#include <features.h>
-__BEGIN_DECLS
-
-/* Get the error number constants from the system-specific file.
- This file will test __need_Emath and _ERRNO_H. */
+/* The system-specific definitions of the E* constants, as macros. */
#include <bits/errno.h>
-#undef __need_Emath
-#ifdef _ERRNO_H
+/* When included from assembly language, this header only provides the
+ E* constants. */
+#ifndef __ASSEMBLER__
+
+__BEGIN_DECLS
-/* Declare the `errno' variable, unless it's defined as a macro by
- bits/errno.h. This is the case in GNU, where it is a per-thread
- variable. This redeclaration using the macro still works, but it
- will be a function declaration without a prototype and may trigger
- a -Wstrict-prototypes warning. */
-#ifndef errno
-extern int errno;
-#endif
+/* The error code set by various library functions. */
+extern int *__errno_location (void) __THROW __attribute_const__;
+# define errno (*__errno_location ())
-#ifdef __USE_GNU
+# ifdef __USE_GNU
/* The full and simple forms of the name with which the program was
invoked. These variables are set up automatically at startup based on
- the value of ARGV[0] (this works only if you use GNU ld). */
-extern char *program_invocation_name, *program_invocation_short_name;
-#endif /* __USE_GNU */
-#endif /* _ERRNO_H */
+ the value of argv[0]. */
+extern char *program_invocation_name;
+extern char *program_invocation_short_name;
+
+#include <bits/types/error_t.h>
+
+# endif /* __USE_GNU */
__END_DECLS
-#endif /* _ERRNO_H */
-
-/* The Hurd <bits/errno.h> defines `error_t' as an enumerated type so
- that printing `error_t' values in the debugger shows the names. We
- might need this definition sometimes even if this file was included
- before. */
-#if defined __USE_GNU || defined __need_error_t
-# ifndef __error_t_defined
-typedef int error_t;
-# define __error_t_defined 1
-# endif
-# undef __need_error_t
-#endif
+#endif /* !__ASSEMBLER__ */
+#endif /* errno.h */