strerror_r.m4 (bison-3.8.1.tar.xz) | : | strerror_r.m4 (bison-3.8.2.tar.xz) | ||
---|---|---|---|---|
# strerror_r.m4 serial 21 | # strerror_r.m4 serial 23 | |||
dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc. | dnl Copyright (C) 2002, 2007-2021 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_R], | AC_DEFUN([gl_FUNC_STRERROR_R], | |||
[ | [ | |||
AC_REQUIRE([gl_STRING_H_DEFAULTS]) | AC_REQUIRE([gl_STRING_H_DEFAULTS]) | |||
AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) | AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) | |||
dnl Persuade Solaris <string.h> to declare strerror_r(). | ||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | ||||
dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT | dnl Some systems don't declare strerror_r() if _THREAD_SAFE and _REENTRANT | |||
dnl are not defined. | dnl are not defined. | |||
AC_CHECK_DECLS_ONCE([strerror_r]) | AC_CHECK_DECLS_ONCE([strerror_r]) | |||
if test $ac_cv_have_decl_strerror_r = no; then | if test $ac_cv_have_decl_strerror_r = no; then | |||
HAVE_DECL_STRERROR_R=0 | HAVE_DECL_STRERROR_R=0 | |||
fi | fi | |||
if test $ac_cv_func_strerror_r = yes; then | if test $ac_cv_func_strerror_r = yes; then | |||
if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then | if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then | |||
if test $gl_cv_func_strerror_r_posix_signature = yes; then | if test $gl_cv_func_strerror_r_posix_signature = yes; then | |||
skipping to change at line 43 | skipping to change at line 40 | |||
else | else | |||
dnl The system's strerror_r() cannot know about the new errno values we | dnl The system's strerror_r() cannot know about the new errno values we | |||
dnl add to <errno.h>, or any fix for strerror(0). Replace it. | dnl add to <errno.h>, or any fix for strerror(0). Replace it. | |||
REPLACE_STRERROR_R=1 | REPLACE_STRERROR_R=1 | |||
fi | fi | |||
fi | fi | |||
]) | ]) | |||
# Prerequisites of lib/strerror_r.c. | # Prerequisites of lib/strerror_r.c. | |||
AC_DEFUN([gl_PREREQ_STRERROR_R], [ | AC_DEFUN([gl_PREREQ_STRERROR_R], [ | |||
AC_REQUIRE([AC_FUNC_STRERROR_R]) | ||||
dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r. | dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r. | |||
AC_CHECK_FUNCS_ONCE([__xpg_strerror_r]) | AC_CHECK_FUNCS_ONCE([__xpg_strerror_r]) | |||
AC_CHECK_FUNCS_ONCE([catgets]) | AC_CHECK_FUNCS_ONCE([catgets]) | |||
AC_CHECK_FUNCS_ONCE([snprintf]) | AC_CHECK_FUNCS_ONCE([snprintf]) | |||
]) | ]) | |||
# Detect if strerror_r works, but without affecting whether a replacement | # Detect if strerror_r works, but without affecting whether a replacement | |||
# strerror_r will be used. | # strerror_r will be used. | |||
AC_DEFUN([gl_FUNC_STRERROR_R_WORKS], | AC_DEFUN([gl_FUNC_STRERROR_R_WORKS], | |||
[ | [ | |||
AC_REQUIRE([gl_HEADER_ERRNO_H]) | AC_REQUIRE([gl_HEADER_ERRNO_H]) | |||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | |||
dnl Persuade Android <string.h> to use the GNU strerror_r API, | ||||
dnl and Solaris <string.h> to declare strerror_r. | ||||
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | ||||
AC_REQUIRE([gl_FUNC_STRERROR_0]) | AC_REQUIRE([gl_FUNC_STRERROR_0]) | |||
AC_CHECK_FUNCS_ONCE([strerror_r]) | AC_CHECK_FUNCS_ONCE([strerror_r]) | |||
if test $ac_cv_func_strerror_r = yes; then | if test $ac_cv_func_strerror_r = yes; then | |||
if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then | if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then | |||
dnl The POSIX prototype is: int strerror_r (int, char *, size_t); | dnl The POSIX prototype is: int strerror_r (int, char *, size_t); | |||
dnl glibc, Cygwin: char *strerror_r (int, char *, size_t); | dnl glibc, Cygwin: char *strerror_r (int, char *, size_t); | |||
dnl AIX 5.1, OSF/1 5.1: int strerror_r (int, char *, int); | dnl AIX 5.1, OSF/1 5.1: int strerror_r (int, char *, int); | |||
AC_CACHE_CHECK([for strerror_r with POSIX signature], | AC_CACHE_CHECK([for strerror_r with POSIX signature], | |||
[gl_cv_func_strerror_r_posix_signature], | [gl_cv_func_strerror_r_posix_signature], | |||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 7 lines changed or added |