diff options
author | Björn Jacke <bj@sernet.de> | 2010-08-19 18:39:45 +0200 |
---|---|---|
committer | Björn Jacke <bj@sernet.de> | 2010-08-31 09:07:13 +0200 |
commit | 4e104f185e1aa12c0923e82d3991a658eb2b9474 (patch) | |
tree | 283b8f209c73d1253d9a4ce7adb0ff11162163ff | |
parent | e8662248c8bf7dfc830ce34f301f30f59e600cd8 (diff) | |
download | samba-4e104f185e1aa12c0923e82d3991a658eb2b9474.tar.gz samba-4e104f185e1aa12c0923e82d3991a658eb2b9474.tar.bz2 samba-4e104f185e1aa12c0923e82d3991a658eb2b9474.zip |
libreplace: move detection of clock_gettime to libreplace
-rw-r--r-- | lib/replace/libreplace.m4 | 43 | ||||
-rw-r--r-- | source3/configure.in | 19 | ||||
-rw-r--r-- | source3/m4/aclocal.m4 | 31 |
3 files changed, 45 insertions, 48 deletions
diff --git a/lib/replace/libreplace.m4 b/lib/replace/libreplace.m4 index 2303641d94..0d716e0abe 100644 --- a/lib/replace/libreplace.m4 +++ b/lib/replace/libreplace.m4 @@ -115,6 +115,12 @@ AC_CHECK_FUNCS(fdatasync,,[ [libreplace_cv_HAVE_FDATASYNC_IN_LIBRT=yes AC_DEFINE(HAVE_FDATASYNC, 1, Define to 1 if there is support for fdatasync)]) ]) +AC_CHECK_FUNCS(clock_gettime,libreplace_cv_have_clock_gettime=yes,[ + AC_CHECK_LIB(rt, clock_gettime, + [libreplace_cv_HAVE_CLOCK_GETTIME_IN_LIBRT=yes + libreplace_cv_have_clock_gettime=yes + AC_DEFINE(HAVE_CLOCK_GETTIME, 1, Define to 1 if there is support for clock_gettime)]) +]) AC_CHECK_FUNCS(get_current_dir_name) AC_HAVE_DECL(setresuid, [#include <unistd.h>]) AC_HAVE_DECL(setresgid, [#include <unistd.h>]) @@ -288,6 +294,12 @@ m4_include(timegm.m4) m4_include(repdir.m4) m4_include(crypt.m4) +if test x$libreplace_cv_have_clock_gettime = xyes ; then + SMB_CHECK_CLOCK_ID(CLOCK_MONOTONIC) + SMB_CHECK_CLOCK_ID(CLOCK_PROCESS_CPUTIME_ID) + SMB_CHECK_CLOCK_ID(CLOCK_REALTIME) +fi + AC_CHECK_FUNCS([printf memset memcpy],,[AC_MSG_ERROR([Required function not found])]) echo "LIBREPLACE_BROKEN_CHECKS: END" @@ -316,4 +328,35 @@ m4_include(libreplace_ld.m4) m4_include(libreplace_network.m4) m4_include(libreplace_macros.m4) + +dnl SMB_CHECK_CLOCK_ID(clockid) +dnl Test whether the specified clock_gettime clock ID is available. If it +dnl is, we define HAVE_clockid +AC_DEFUN([SMB_CHECK_CLOCK_ID], +[ + AC_MSG_CHECKING(for $1) + AC_TRY_LINK([ +#if TIME_WITH_SYS_TIME +# include <sys/time.h> +# include <time.h> +#else +# if HAVE_SYS_TIME_H +# include <sys/time.h> +# else +# include <time.h> +# endif +#endif + ], + [ +clockid_t clk = $1; + ], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_$1, 1, + [Whether the clock_gettime clock ID $1 is available]) + ], + [ + AC_MSG_RESULT(no) + ]) +]) m4_ifndef([AC_USE_SYSTEM_EXTENSIONS],[m4_include(autoconf-2.60.m4)]) diff --git a/source3/configure.in b/source3/configure.in index e0dedb3d07..1f4da24027 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -2368,23 +2368,8 @@ if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro]) fi - -if test x"$samba_cv_WITH_PROFILE" = x"yes"; then - - # On some systems (eg. Linux) librt can pull in libpthread. We - # don't want this to happen because libpthreads changes signal delivery - # semantics in ways we are not prepared for. This breaks Linux oplocks - # which rely on signals. - - AC_LIBTESTFUNC(rt, clock_gettime, - [ - AC_DEFINE(HAVE_CLOCK_GETTIME, 1, - [Whether clock_gettime is available]) - SMB_CHECK_CLOCK_ID(CLOCK_MONOTONIC) - SMB_CHECK_CLOCK_ID(CLOCK_PROCESS_CPUTIME_ID) - SMB_CHECK_CLOCK_ID(CLOCK_REALTIME) - ]) - +if test x"$libreplace_cv_HAVE_CLOCK_GETTIME_IN_LIBRT" = xyes ; then + LIBS="$LIBS -lrt" fi AC_CACHE_CHECK([for broken readdir name],samba_cv_HAVE_BROKEN_READDIR_NAME,[ diff --git a/source3/m4/aclocal.m4 b/source3/m4/aclocal.m4 index 3ca44bd496..b33658f354 100644 --- a/source3/m4/aclocal.m4 +++ b/source3/m4/aclocal.m4 @@ -799,37 +799,6 @@ AC_DEFUN([SMB_CHECK_DMAPI], ]) -dnl SMB_CHECK_CLOCK_ID(clockid) -dnl Test whether the specified clock_gettime clock ID is available. If it -dnl is, we define HAVE_clockid -AC_DEFUN([SMB_CHECK_CLOCK_ID], -[ - AC_MSG_CHECKING(for $1) - AC_TRY_LINK([ -#if TIME_WITH_SYS_TIME -# include <sys/time.h> -# include <time.h> -#else -# if HAVE_SYS_TIME_H -# include <sys/time.h> -# else -# include <time.h> -# endif -#endif - ], - [ -clockid_t clk = $1; - ], - [ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_$1, 1, - [Whether the clock_gettime clock ID $1 is available]) - ], - [ - AC_MSG_RESULT(no) - ]) -]) - dnl SMB_IF_RTSIGNAL_BUG([actions if true], dnl [actions if false], dnl [actions if cross compiling]) |