From 9167d70e77c2f4c8e6de64fbf06bd3bee23542d2 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Thu, 3 Mar 2011 16:26:48 +0100 Subject: libreplace: move "struct timespec" checks into libreplace (where timespec is already used). Bjoern, Metze, please check. Guenther --- lib/replace/libreplace.m4 | 23 +++++++++++++++++++++++ lib/replace/system/time.h | 7 +++++++ lib/replace/wscript | 1 + 3 files changed, 31 insertions(+) (limited to 'lib') diff --git a/lib/replace/libreplace.m4 b/lib/replace/libreplace.m4 index 24fc5cdafe..808d5d1c06 100644 --- a/lib/replace/libreplace.m4 +++ b/lib/replace/libreplace.m4 @@ -303,6 +303,29 @@ if test x$libreplace_cv_have_clock_gettime = xyes ; then SMB_CHECK_CLOCK_ID(CLOCK_REALTIME) fi +AC_CACHE_CHECK([for struct timespec type],libreplace_cv_struct_timespec, [ + AC_TRY_COMPILE([ +#include +#if STDC_HEADERS +#include +#include +#endif +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif +],[struct timespec ts;], + libreplace_cv_struct_timespec=yes,libreplace_cv_struct_timespec=no)]) +if test x"$libreplace_cv_struct_timespec" = x"yes"; then + AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec]) +fi + AC_CHECK_FUNCS([printf memset memcpy],,[AC_MSG_ERROR([Required function not found])]) echo "LIBREPLACE_BROKEN_CHECKS: END" diff --git a/lib/replace/system/time.h b/lib/replace/system/time.h index 5fce4dbc45..b6d2609289 100644 --- a/lib/replace/system/time.h +++ b/lib/replace/system/time.h @@ -46,6 +46,13 @@ struct utimbuf { }; #endif +#ifndef HAVE_STRUCT_TIMESPEC +struct timespec { + time_t tv_sec; /* Seconds. */ + long tv_nsec; /* Nanoseconds. */ +}; +#endif + #ifndef HAVE_MKTIME /* define is in "replace.h" */ time_t rep_mktime(struct tm *t); diff --git a/lib/replace/wscript b/lib/replace/wscript index d0bbe96159..c24d6e76b3 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -219,6 +219,7 @@ def configure(conf): 'HAVE_%s' % c, msg='Checking whether the clock_gettime clock ID %s is available' % c) + conf.CHECK_TYPE('struct timespec', headers='sys/time.h time.h') # these headers need to be tested as a group on freebsd conf.CHECK_HEADERS(headers='sys/socket.h net/if.h', together=True) -- cgit