Diff for /embedaddon/libiconv/srcm4/strerror.m4 between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 22:57:49 version 1.1.1.2, 2012/05/29 09:29:44
Line 1 Line 1
# strerror.m4 serial 9# strerror.m4 serial 16
dnl Copyright (C) 2002, 2007-2008 Free Software Foundation, Inc.dnl Copyright (C) 2002, 2007-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation  dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,  dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.  dnl with or without modifications, as long as this notice is preserved.
   
 AC_DEFUN([gl_FUNC_STRERROR],  AC_DEFUN([gl_FUNC_STRERROR],
 [  [
   AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE])  
   if test $REPLACE_STRERROR = 1; then  
     AC_LIBOBJ([strerror])  
     AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR],  
       [Define this to 1 if strerror is broken.])  
   fi  
 ])  
   
 # Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ).  
 AC_DEFUN([gl_FUNC_STRERROR_SEPARATE],  
 [  
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])    AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   AC_REQUIRE([gl_HEADER_ERRNO_H])    AC_REQUIRE([gl_HEADER_ERRNO_H])
  if test -z "$ERRNO_H"; then  AC_REQUIRE([gl_FUNC_STRERROR_0])
   m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
     AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
   ])
   if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
     AC_CACHE_CHECK([for working strerror function],      AC_CACHE_CHECK([for working strerror function],
      [gl_cv_func_working_strerror],       [gl_cv_func_working_strerror],
      [AC_RUN_IFELSE(       [AC_RUN_IFELSE(
         [AC_LANG_PROGRAM(          [AC_LANG_PROGRAM(
            [[#include <string.h>             [[#include <string.h>
            ]],             ]],
           [[return !*strerror (-2);]])],           [[if (!*strerror (-2)) return 1;]])],
         [gl_cv_func_working_strerror=yes],          [gl_cv_func_working_strerror=yes],
         [gl_cv_func_working_strerror=no],          [gl_cv_func_working_strerror=no],
        [dnl Assume crossbuild works if it compiles.        [dnl Be pessimistic on cross-compiles for now.
         AC_COMPILE_IFELSE(         gl_cv_func_working_strerror="guessing no"])
           [AC_LANG_PROGRAM( 
              [[#include <string.h> 
              ]], 
              [[return !*strerror (-2);]])], 
           [gl_cv_func_working_strerror=yes], 
           [gl_cv_func_working_strerror=no]) 
      ]) 
     ])      ])
    if test $gl_cv_func_working_strerror = no; then    if test "$gl_cv_func_working_strerror" != yes; then
       dnl The system's strerror() fails to return a string for out-of-range        dnl The system's strerror() fails to return a string for out-of-range
       dnl integers. Replace it.        dnl integers. Replace it.
       REPLACE_STRERROR=1        REPLACE_STRERROR=1
     fi      fi
       m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
         dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
         dnl buffer, we must replace strerror.
         case "$gl_cv_func_strerror_r_works" in
           *no) REPLACE_STRERROR=1 ;;
         esac
       ])
   else    else
     dnl The system's strerror() cannot know about the new errno values we add      dnl The system's strerror() cannot know about the new errno values we add
    dnl to <errno.h>. Replace it.    dnl to <errno.h>, or any fix for strerror(0). Replace it.
     REPLACE_STRERROR=1      REPLACE_STRERROR=1
   fi    fi
   if test $REPLACE_STRERROR = 1; then  
     gl_PREREQ_STRERROR  
   fi  
 ])  ])
   
# Prerequisites of lib/strerror.c.dnl Detect if strerror(0) passes (that is, does not set errno, and does not
AC_DEFUN([gl_PREREQ_STRERROR], [dnl return a string that matches strerror(-1)).
  AC_CHECK_DECLS([strerror])AC_DEFUN([gl_FUNC_STRERROR_0],
  AC_CHECK_HEADERS_ONCE([sys/socket.h])[
  if test $ac_cv_header_sys_socket_h != yes; then  REPLACE_STRERROR_0=0
    dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make  AC_CACHE_CHECK([whether strerror(0) succeeds],
    dnl the check for those headers unconditional; yet cygwin reports   [gl_cv_func_strerror_0_works],
    dnl that the headers are present but cannot be compiled (since on   [AC_RUN_IFELSE(
    dnl cygwin, all socket information should come from sys/socket.h).      [AC_LANG_PROGRAM(
    AC_CHECK_HEADERS([winsock2.h])         [[#include <string.h>
            #include <errno.h>
          ]],
          [[int result = 0;
            char *str;
            errno = 0;
            str = strerror (0);
            if (!*str) result |= 1;
            if (errno) result |= 2;
            if (strstr (str, "nknown") || strstr (str, "ndefined"))
              result |= 4;
            return result;]])],
       [gl_cv_func_strerror_0_works=yes],
       [gl_cv_func_strerror_0_works=no],
       [dnl Be pessimistic on cross-compiles for now.
        gl_cv_func_strerror_0_works="guessing no"])
   ])
   if test "$gl_cv_func_strerror_0_works" != yes; then
     REPLACE_STRERROR_0=1
     AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
       does not return a message implying success.])
   fi    fi
 ])  ])

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>