1# eoverflow.m4 serial 2 2dnl Copyright (C) 2004, 2006 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7dnl 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 18AC_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 26yes 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 37yes 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 66dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. 67dnl Remove this when we can assume autoconf >= 2.61. 68m4_ifdef([AC_COMPUTE_INT], [], [ 69 AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) 70]) 71