From daceb50a3ec9cc2768b4849489cb33cf34fedcaa Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 8 Jan 2000 16:30:49 +0000 Subject: [PATCH] (jm_FUNC_STRERROR_R): New file/macro. --- m4/strerror_r.m4 | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 m4/strerror_r.m4 diff --git a/m4/strerror_r.m4 b/m4/strerror_r.m4 new file mode 100644 index 0000000000..e886b5cc5b --- /dev/null +++ b/m4/strerror_r.m4 @@ -0,0 +1,39 @@ +#serial 1 + +dnl From Jim Meyering. +dnl Determine whether the strerror_r implementation is one of +dnl the broken ones that returns `int' rather than `char*'. +dnl Actually, this tests only whether it returns an array, +dnl but that should be enough. +dnl This is used by lib/error.c. + +AC_DEFUN(jm_FUNC_STRERROR_R, +[ + # Check strerror_r + AC_CHECK_FUNCS([strerror_r]) + if test $ac_cv_func_strerror_r = yes; then + AC_CHECK_HEADERS(string.h) + AC_CACHE_CHECK([for working strerror_r], + jm_cv_func_working_strerror_r, + [ + AC_TRY_COMPILE( + [ +# include +# if HAVE_STRING_H +# include +# endif + ], + [ + int buf; /* avoiding square brackets makes this easier */ + char x = *strerror_r (0, buf, sizeof buf); + ], + jm_cv_func_working_strerror_r=yes, + jm_cv_func_working_strerror_r=no + ) + if test $jm_cv_func_working_strerror_r = yes; then + AC_DEFINE_UNQUOTED(HAVE_WORKING_STRERROR_R, 1, + [Define to 1 if strerror_r returns a string.]) + fi + ]) + fi +]) -- 2.30.2