X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fttyname_r.m4;h=ce4737498d914c030bc6ca4c5447c64ed9e95952;hb=a731808a4ac512228e870d5f443b91557f418559;hp=54a86768888558a94ddaafdf3f87009aa5ff00d5;hpb=116440ae18064c1495285a42767547b3ffa418d4;p=gnulib.git diff --git a/m4/ttyname_r.m4 b/m4/ttyname_r.m4 index 54a867688..ce4737498 100644 --- a/m4/ttyname_r.m4 +++ b/m4/ttyname_r.m4 @@ -1,4 +1,4 @@ -# ttyname_r.m4 serial 1 +# ttyname_r.m4 serial 2 dnl Copyright (C) 2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -11,6 +11,24 @@ AC_DEFUN([gl_FUNC_TTYNAME_R], AC_CHECK_FUNCS([ttyname_r]) if test $ac_cv_func_ttyname_r = no; then HAVE_TTYNAME_R=0 + else + dnl On MacOS X 10.4 and Solaris 10 the return type is 'char *', not 'int'. + AC_CACHE_CHECK([whether ttyname_r is compatible with its POSIX signature], + [gl_cv_func_ttyname_r_posix], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include ]], + [[*ttyname_r (0, NULL, 0);]]) + ], + [gl_cv_func_ttyname_r_posix=no], + [gl_cv_func_ttyname_r_posix=yes]) + ]) + if test $gl_cv_func_ttyname_r_posix = no; then + REPLACE_TTYNAME_R=1 + fi + fi + if test $HAVE_TTYNAME_R = 0 || test $REPLACE_TTYNAME_R = 1; then AC_LIBOBJ([ttyname_r]) gl_PREREQ_TTYNAME_R fi