Commit | Line | Data |
---|---|---|
18848e28 | 1 | # errno_h.m4 serial 12 |
49e4877c | 2 | dnl Copyright (C) 2004, 2006, 2008-2016 Free Software Foundation, Inc. |
18848e28 GF |
3 | dnl This file is free software; the Free Software Foundation |
4 | dnl gives unlimited permission to copy and/or distribute it, | |
5 | dnl with or without modifications, as long as this notice is preserved. | |
6 | ||
7 | AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], | |
8 | [ | |
9 | AC_REQUIRE([AC_PROG_CC]) | |
10 | AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ | |
11 | AC_EGREP_CPP([booboo],[ | |
12 | #include <errno.h> | |
13 | #if !defined ETXTBSY | |
14 | booboo | |
15 | #endif | |
16 | #if !defined ENOMSG | |
17 | booboo | |
18 | #endif | |
19 | #if !defined EIDRM | |
20 | booboo | |
21 | #endif | |
22 | #if !defined ENOLINK | |
23 | booboo | |
24 | #endif | |
25 | #if !defined EPROTO | |
26 | booboo | |
27 | #endif | |
28 | #if !defined EMULTIHOP | |
29 | booboo | |
30 | #endif | |
31 | #if !defined EBADMSG | |
32 | booboo | |
33 | #endif | |
34 | #if !defined EOVERFLOW | |
35 | booboo | |
36 | #endif | |
37 | #if !defined ENOTSUP | |
38 | booboo | |
39 | #endif | |
40 | #if !defined ENETRESET | |
41 | booboo | |
42 | #endif | |
43 | #if !defined ECONNABORTED | |
44 | booboo | |
45 | #endif | |
46 | #if !defined ESTALE | |
47 | booboo | |
48 | #endif | |
49 | #if !defined EDQUOT | |
50 | booboo | |
51 | #endif | |
52 | #if !defined ECANCELED | |
53 | booboo | |
54 | #endif | |
55 | #if !defined EOWNERDEAD | |
56 | booboo | |
57 | #endif | |
58 | #if !defined ENOTRECOVERABLE | |
59 | booboo | |
60 | #endif | |
61 | #if !defined EILSEQ | |
62 | booboo | |
63 | #endif | |
64 | ], | |
65 | [gl_cv_header_errno_h_complete=no], | |
66 | [gl_cv_header_errno_h_complete=yes]) | |
67 | ]) | |
68 | if test $gl_cv_header_errno_h_complete = yes; then | |
69 | ERRNO_H='' | |
70 | else | |
71 | gl_NEXT_HEADERS([errno.h]) | |
72 | ERRNO_H='errno.h' | |
73 | fi | |
74 | AC_SUBST([ERRNO_H]) | |
75 | AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) | |
76 | gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) | |
77 | gl_REPLACE_ERRNO_VALUE([ENOLINK]) | |
78 | gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) | |
79 | ]) | |
80 | ||
81 | # Assuming $1 = EOVERFLOW. | |
82 | # The EOVERFLOW errno value ought to be defined in <errno.h>, according to | |
83 | # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and | |
84 | # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. | |
85 | # Check for the value of EOVERFLOW. | |
86 | # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. | |
87 | AC_DEFUN([gl_REPLACE_ERRNO_VALUE], | |
88 | [ | |
89 | if test -n "$ERRNO_H"; then | |
90 | AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ | |
91 | AC_EGREP_CPP([yes],[ | |
92 | #include <errno.h> | |
93 | #ifdef ]$1[ | |
94 | yes | |
95 | #endif | |
96 | ], | |
97 | [gl_cv_header_errno_h_]$1[=yes], | |
98 | [gl_cv_header_errno_h_]$1[=no]) | |
99 | if test $gl_cv_header_errno_h_]$1[ = no; then | |
100 | AC_EGREP_CPP([yes],[ | |
101 | #define _XOPEN_SOURCE_EXTENDED 1 | |
102 | #include <errno.h> | |
103 | #ifdef ]$1[ | |
104 | yes | |
105 | #endif | |
106 | ], [gl_cv_header_errno_h_]$1[=hidden]) | |
107 | if test $gl_cv_header_errno_h_]$1[ = hidden; then | |
108 | dnl The macro exists but is hidden. | |
109 | dnl Define it to the same value. | |
110 | AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ | |
111 | #define _XOPEN_SOURCE_EXTENDED 1 | |
112 | #include <errno.h> | |
113 | /* The following two lines are a workaround against an autoconf-2.52 bug. */ | |
114 | #include <stdio.h> | |
115 | #include <stdlib.h> | |
116 | ]) | |
117 | fi | |
118 | fi | |
119 | ]) | |
120 | case $gl_cv_header_errno_h_]$1[ in | |
121 | yes | no) | |
122 | ]$1[_HIDDEN=0; ]$1[_VALUE= | |
123 | ;; | |
124 | *) | |
125 | ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" | |
126 | ;; | |
127 | esac | |
128 | AC_SUBST($1[_HIDDEN]) | |
129 | AC_SUBST($1[_VALUE]) | |
130 | fi | |
131 | ]) | |
132 | ||
133 | dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. | |
134 | dnl Remove this when we can assume autoconf >= 2.61. | |
135 | m4_ifdef([AC_COMPUTE_INT], [], [ | |
136 | AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) | |
137 | ]) |