X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fnanosleep.m4;h=2e0b971999aedcc273621acbc2bb7499c2acd370;hb=ee76465ad82c04707c78ff3ed723358217c9e34f;hp=e4b634181be795e199c5e64b1e8475799407739e;hpb=c3a36c262d8af12176ebd5f10dc6f7ff9a743f97;p=gnulib.git diff --git a/m4/nanosleep.m4 b/m4/nanosleep.m4 index e4b634181..2e0b97199 100644 --- a/m4/nanosleep.m4 +++ b/m4/nanosleep.m4 @@ -1,15 +1,34 @@ -#serial 1 +#serial 8 dnl From Jim Meyering. -dnl FIXME +dnl Check for the nanosleep function. +dnl If not found, use the supplied replacement. dnl -AC_DEFUN(jm_FUNC_NANOSLEEP, +AC_DEFUN([jm_FUNC_NANOSLEEP], [ + nanosleep_save_libs=$LIBS + + # Solaris 2.5.1 needs -lposix4 to get the nanosleep function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + AC_SEARCH_LIBS(nanosleep, [rt posix4], [LIB_NANOSLEEP=$ac_cv_search_nanosleep]) + AC_SUBST(LIB_NANOSLEEP) + AC_CACHE_CHECK([whether nanosleep works], jm_cv_func_nanosleep_works, - [AC_TRY_RUN([ -# include + [ + AC_REQUIRE([AC_HEADER_TIME]) + AC_TRY_RUN([ +# if TIME_WITH_SYS_TIME +# include +# include +# else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +# endif int main () @@ -17,18 +36,19 @@ AC_DEFUN(jm_FUNC_NANOSLEEP, struct timespec ts_sleep, ts_remaining; ts_sleep.tv_sec = 0; ts_sleep.tv_nsec = 1; - exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 1 : 0); + exit (nanosleep (&ts_sleep, &ts_remaining) == 0 ? 0 : 1); } ], jm_cv_func_nanosleep_works=yes, jm_cv_func_nanosleep_works=no, dnl When crosscompiling, assume the worst. - jm_cv_func_nanosleep_works=yes) + jm_cv_func_nanosleep_works=no) ]) if test $jm_cv_func_nanosleep_works = no; then - AC_SUBST(LIBOBJS) - LIBOBJS="$LIBOBJS nanosleep.$ac_objext" - AC_DEFINE_UNQUOTED(nanosleep, gnu_nanosleep, - [Define to gnu_nanosleep if the replacement function should be used.]) + AC_LIBOBJ(nanosleep) + AC_DEFINE_UNQUOTED(nanosleep, rpl_nanosleep, + [Define to rpl_nanosleep if the replacement function should be used.]) fi + + LIBS=$nanosleep_save_libs ])