]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - stdlib/errno.h
Regenerate charmap-kw.h, locfile-kw.h
[thirdparty/glibc.git] / stdlib / errno.h
index 93602216719128e69ef424abc19deb4524e00d84..e2f438f65f489393d1f2f5b75963981c77b39484 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2019 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
 
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  *     ISO C99 Standard: 7.5 Errors    <errno.h>
  */
 
 #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 */