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