diff --git a/acinclude.m4 b/acinclude.m4 index 7af4741ea..66d74869b 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1814,6 +1814,82 @@ AC_DEFUN([TYPE_IN_ADDR_T], ]) dnl AC_CHECK_TYPE ]) dnl AC_DEFUN +dnl CURL_CHECK_LIBS_CLOCK_GETTIME +dnl ------------------------------------------------- +dnl Check for libraries needed for clock_gettime, +dnl and prepended to LIBS any needed libraries. + +AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME], [ + AC_REQUIRE([AC_HEADER_TIME])dnl + AC_CHECK_HEADERS(sys/types.h sys/time.h time.h) + # + AC_MSG_CHECKING([for clock_gettime in libraries]) + # + curl_cv_save_LIBS="$LIBS" + curl_cv_gclk_LIBS="unknown" + # + for x_xlibs in '' '-lrt' '-lposix4' ; do + if test -z "$x_xlibs"; then + LIBS="$curl_cv_save_LIBS" + else + LIBS="$x_xlibs $curl_cv_save_LIBS" + fi + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ +#undef inline +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + ],[ + (void)clock_gettime(0, 0); + ]) + ],[ + curl_cv_gclk_LIBS="$x_xlibs" + break + ]) + done + # + LIBS="$curl_cv_save_LIBS" + # + case X-"$curl_cv_gclk_LIBS" in + X-unknown) + AC_MSG_RESULT([cannot find clock_gettime]) + ac_cv_func_clock_gettime="no" + ;; + X-) + AC_MSG_RESULT([no additional lib required]) + ac_cv_func_clock_gettime="yes" + ;; + *) + if test -z "$curl_cv_save_LIBS"; then + LIBS="$curl_cv_gclk_LIBS" + else + LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" + fi + AC_MSG_RESULT([$curl_cv_gclk_LIBS]) + ac_cv_func_clock_gettime="yes" + ;; + esac + # + case "$ac_cv_func_clock_gettime" in + yes) + AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME, 1, + [Define to 1 if you have the clock_gettime function.]) + ;; + esac + # +]) dnl AC_DEFUN + dnl ************************************************************ dnl check for "localhost", if it doesn't exist, we can't do the dnl gethostbyname_r tests! diff --git a/ares/acinclude.m4 b/ares/acinclude.m4 index 544559294..2a7bc02f6 100644 --- a/ares/acinclude.m4 +++ b/ares/acinclude.m4 @@ -1283,6 +1283,81 @@ AC_DEFUN([TYPE_IN_ADDR_T], ]) dnl AC_CHECK_TYPE ]) dnl AC_DEFUN +dnl CURL_CHECK_LIBS_CLOCK_GETTIME +dnl ------------------------------------------------- +dnl Check for libraries needed for clock_gettime, +dnl and prepended to LIBS any needed libraries. + +AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME], [ + AC_REQUIRE([AC_HEADER_TIME])dnl + AC_CHECK_HEADERS(sys/types.h sys/time.h time.h) + # + AC_MSG_CHECKING([for clock_gettime in libraries]) + # + curl_cv_save_LIBS="$LIBS" + curl_cv_gclk_LIBS="unknown" + # + for x_xlibs in '' '-lrt' '-lposix4' ; do + if test -z "$x_xlibs"; then + LIBS="$curl_cv_save_LIBS" + else + LIBS="$x_xlibs $curl_cv_save_LIBS" + fi + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ +#undef inline +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + ],[ + (void)clock_gettime(0, 0); + ]) + ],[ + curl_cv_gclk_LIBS="$x_xlibs" + break + ]) + done + # + LIBS="$curl_cv_save_LIBS" + # + case X-"$curl_cv_gclk_LIBS" in + X-unknown) + AC_MSG_RESULT([cannot find clock_gettime]) + ac_cv_func_clock_gettime="no" + ;; + X-) + AC_MSG_RESULT([no additional lib required]) + ac_cv_func_clock_gettime="yes" + ;; + *) + if test -z "$curl_cv_save_LIBS"; then + LIBS="$curl_cv_gclk_LIBS" + else + LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" + fi + AC_MSG_RESULT([$curl_cv_gclk_LIBS]) + ac_cv_func_clock_gettime="yes" + ;; + esac + # + case "$ac_cv_func_clock_gettime" in + yes) + AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME, 1, + [Define to 1 if you have the clock_gettime function.]) + ;; + esac + # +]) dnl AC_DEFUN dnl ********************************************************************** dnl CURL_DETECT_ICC ([ACTION-IF-YES]) diff --git a/ares/configure.ac b/ares/configure.ac index a7af5a183..28f90c8ab 100644 --- a/ares/configure.ac +++ b/ares/configure.ac @@ -260,6 +260,11 @@ fi dnl socket lib? AC_CHECK_FUNC(connect, , [ AC_CHECK_LIB(socket, connect) ]) +dnl ********************************************************************** +dnl Check for libraries needed for function clock_gettime +dnl ********************************************************************** +CURL_CHECK_LIBS_CLOCK_GETTIME + AC_MSG_CHECKING([whether to use libgcc]) AC_ARG_ENABLE(libgcc, AC_HELP_STRING([--enable-libgcc],[use libgcc when linking]), @@ -644,7 +649,6 @@ AC_CHECK_MEMBER(struct addrinfo.ai_flags, AC_CHECK_FUNCS( bitncmp \ gettimeofday \ - clock_gettime \ if_indextoname, dnl if found [], diff --git a/configure.ac b/configure.ac index 8a5988959..0ef6a3942 100644 --- a/configure.ac +++ b/configure.ac @@ -567,6 +567,11 @@ fi dnl socket lib? AC_CHECK_FUNC(connect, , [ AC_CHECK_LIB(socket, connect) ]) +dnl ********************************************************************** +dnl Check for libraries needed for function clock_gettime +dnl ********************************************************************** +CURL_CHECK_LIBS_CLOCK_GETTIME + dnl ********************************************************************** dnl The preceding library checks are all potentially useful for test dnl servers (for providing networking support). Save the list of required @@ -1976,7 +1981,6 @@ AC_CHECK_FUNCS( strtoll \ strcmpi \ gethostbyaddr \ gettimeofday \ - clock_gettime \ inet_addr \ inet_ntoa \ inet_pton \