configure: Cache result of pthread_condattr_setclock() check
Even if not using caching when running the configure script (-C) this allows pre-defining the result by setting the environment variable ss_cv_func_pthread_condattr_setclock_monotonic=yes|no|unknown before/while running the script. As the check requires running a test program this might be helpful when cross-compiling to disable using monotonic time if pthread_condattr_setclock() is defined but not actually usable with CLOCK_MONOTONIC. References #1502.
This commit is contained in:
parent
e827e78483
commit
8d79bfa831
40
configure.ac
40
configure.ac
|
@ -512,24 +512,28 @@ AC_COMPILE_IFELSE(
|
|||
# check if pthread_condattr_setclock(CLOCK_MONOTONIC) is supported
|
||||
saved_LIBS=$LIBS
|
||||
LIBS=$PTHREADLIB
|
||||
AC_MSG_CHECKING([for pthread_condattr_setclock(CLOCK_MONOTONIC)])
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#include <pthread.h>
|
||||
int main() { pthread_condattr_t attr;
|
||||
pthread_condattr_init(&attr);
|
||||
return pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);}]])],
|
||||
[AC_MSG_RESULT([yes]);
|
||||
AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
|
||||
[pthread_condattr_setclock supports CLOCK_MONOTONIC])],
|
||||
[AC_MSG_RESULT([no])],
|
||||
# Check existence of pthread_condattr_setclock if cross-compiling
|
||||
[AC_MSG_RESULT([unknown]);
|
||||
AC_CHECK_FUNCS(pthread_condattr_setclock,
|
||||
[AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
|
||||
[have pthread_condattr_setclock()])]
|
||||
)]
|
||||
)
|
||||
AC_CACHE_CHECK([for pthread_condattr_setclock(CLOCK_MONOTONIC)],
|
||||
[ss_cv_func_pthread_condattr_setclock_monotonic],
|
||||
[AC_RUN_IFELSE(
|
||||
[AC_LANG_SOURCE(
|
||||
[[#include <pthread.h>
|
||||
int main() { pthread_condattr_t attr;
|
||||
pthread_condattr_init(&attr);
|
||||
return pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);}]])],
|
||||
[ss_cv_func_pthread_condattr_setclock_monotonic=yes],
|
||||
[ss_cv_func_pthread_condattr_setclock_monotonic=no],
|
||||
# Check existence of pthread_condattr_setclock if cross-compiling
|
||||
[AC_CHECK_FUNCS(pthread_condattr_setclock,
|
||||
ss_cv_func_pthread_condattr_setclock_monotonic=unknown)]
|
||||
)])
|
||||
if test x$ss_cv_func_pthread_condattr_setclock_monotonic = xyes; then
|
||||
AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
|
||||
[pthread_condattr_setclock supports CLOCK_MONOTONIC])
|
||||
elif test x$ss_cv_func_pthread_condattr_setclock_monotonic = xunknown; then
|
||||
AC_DEFINE([HAVE_CONDATTR_CLOCK_MONOTONIC], [],
|
||||
[have pthread_condattr_setclock()])
|
||||
fi
|
||||
|
||||
# check if we actually are able to configure attributes on cond vars
|
||||
AC_CHECK_FUNCS(pthread_condattr_init)
|
||||
# instead of pthread_condattr_setclock Android has this function
|
||||
|
|
Loading…
Reference in New Issue