diff options
Diffstat (limited to 'gl/m4/eoverflow.m4')
| -rw-r--r-- | gl/m4/eoverflow.m4 | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/gl/m4/eoverflow.m4 b/gl/m4/eoverflow.m4 new file mode 100644 index 00000000..3bffd10e --- /dev/null +++ b/gl/m4/eoverflow.m4 | |||
| @@ -0,0 +1,70 @@ | |||
| 1 | # eoverflow.m4 serial 2 | ||
| 2 | dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc. | ||
| 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 | dnl From Bruno Haible. | ||
| 8 | |||
| 9 | # The EOVERFLOW errno value ought to be defined in <errno.h>, according to | ||
| 10 | # POSIX. But some systems (like AIX 3) don't define it, and some systems | ||
| 11 | # (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. | ||
| 12 | |||
| 13 | # Define EOVERFLOW as a C macro and as a substituted macro in such a way that | ||
| 14 | # 1. on all systems, after inclusion of <errno.h>, EOVERFLOW is usable, | ||
| 15 | # 2. on systems where EOVERFLOW is defined elsewhere, we use the same numeric | ||
| 16 | # value. | ||
| 17 | |||
| 18 | AC_DEFUN([gl_EOVERFLOW], | ||
| 19 | [ | ||
| 20 | AC_REQUIRE([AC_PROG_CC])dnl | ||
| 21 | |||
| 22 | AC_CACHE_CHECK([for EOVERFLOW], ac_cv_decl_EOVERFLOW, [ | ||
| 23 | AC_EGREP_CPP(yes,[ | ||
| 24 | #include <errno.h> | ||
| 25 | #ifdef EOVERFLOW | ||
| 26 | yes | ||
| 27 | #endif | ||
| 28 | ], have_eoverflow=1) | ||
| 29 | if test -n "$have_eoverflow"; then | ||
| 30 | dnl EOVERFLOW exists in <errno.h>. Don't need to define EOVERFLOW ourselves. | ||
| 31 | ac_cv_decl_EOVERFLOW=yes | ||
| 32 | else | ||
| 33 | AC_EGREP_CPP(yes,[ | ||
| 34 | #define _XOPEN_SOURCE_EXTENDED 1 | ||
| 35 | #include <errno.h> | ||
| 36 | #ifdef EOVERFLOW | ||
| 37 | yes | ||
| 38 | #endif | ||
| 39 | ], have_eoverflow=1) | ||
| 40 | if test -n "$have_eoverflow"; then | ||
| 41 | dnl EOVERFLOW exists but is hidden. | ||
| 42 | dnl Define it to the same value. | ||
| 43 | AC_COMPUTE_INT([ac_cv_decl_EOVERFLOW], [EOVERFLOW], [ | ||
| 44 | #define _XOPEN_SOURCE_EXTENDED 1 | ||
| 45 | #include <errno.h> | ||
| 46 | /* The following two lines are a workaround against an autoconf-2.52 bug. */ | ||
| 47 | #include <stdio.h> | ||
| 48 | #include <stdlib.h> | ||
| 49 | ]) | ||
| 50 | else | ||
| 51 | dnl EOVERFLOW isn't defined by the system. Define EOVERFLOW ourselves, but | ||
| 52 | dnl don't define it as EINVAL, because snprintf() callers want to | ||
| 53 | dnl distinguish EINVAL and EOVERFLOW. | ||
| 54 | ac_cv_decl_EOVERFLOW=E2BIG | ||
| 55 | fi | ||
| 56 | fi | ||
| 57 | ]) | ||
| 58 | if test "$ac_cv_decl_EOVERFLOW" != yes; then | ||
| 59 | AC_DEFINE_UNQUOTED([EOVERFLOW], [$ac_cv_decl_EOVERFLOW], | ||
| 60 | [Define as good substitute value for EOVERFLOW.]) | ||
| 61 | EOVERFLOW="$ac_cv_decl_EOVERFLOW" | ||
| 62 | AC_SUBST(EOVERFLOW) | ||
| 63 | fi | ||
| 64 | ]) | ||
| 65 | |||
| 66 | dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. | ||
| 67 | dnl Remove this when we can assume autoconf >= 2.61. | ||
| 68 | m4_ifdef([AC_COMPUTE_INT], [], [ | ||
| 69 | AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) | ||
| 70 | ]) | ||
