forked from aniani/vim
patch 9.0.0103: if running configure with cached results -lrt may be missing
Problem: If running configure with cached results -lrt may be missing.
Solution: Use two cache variables, one without and one with -lrt.
(closes #10799) Swap checks to avoid adding -lrt unnecessarily.
This commit is contained in:
@@ -3807,9 +3807,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
||||
dnl Check for timer_create. It probably requires the 'rt' library.
|
||||
dnl Run the program to find out if timer_create(CLOCK_MONOTONIC) actually
|
||||
dnl works, on Solaris timer_create() exists but fails at runtime.
|
||||
AC_CACHE_CHECK([for timer_create], [vim_cv_timer_create], [
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lrt"
|
||||
AC_CACHE_CHECK([for timer_create without -lrt], [vim_cv_timer_create], [
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
@@ -3828,36 +3826,50 @@ static void set_flag(union sigval sv) {}
|
||||
if (timer_create(CLOCK_MONOTONIC, &action, &timer_id) < 0)
|
||||
exit(1); // cannot create a monotonic timer
|
||||
])],
|
||||
AC_MSG_NOTICE(timer_create with -lrt); vim_cv_timer_create=yes,
|
||||
LIBS="$save_LIBS"
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
#include<signal.h>
|
||||
#include<time.h>
|
||||
static void set_flag(union sigval sv) {}
|
||||
], [
|
||||
struct timespec ts;
|
||||
struct sigevent action = {0};
|
||||
timer_t timer_id;
|
||||
vim_cv_timer_create=yes,
|
||||
vim_cv_timer_create=no,
|
||||
AC_MSG_ERROR(cross-compiling: please set 'vim_cv_timer_create')
|
||||
)])
|
||||
|
||||
action.sigev_notify = SIGEV_THREAD;
|
||||
action.sigev_notify_function = set_flag;
|
||||
if (timer_create(CLOCK_MONOTONIC, &action, &timer_id) < 0)
|
||||
exit(1); // cannot create a monotonic timer
|
||||
])],
|
||||
vim_cv_timer_create=yes,
|
||||
vim_cv_timer_create=no),
|
||||
AC_MSG_ERROR(cross-compiling: please set 'vim_cv_timer_create')
|
||||
)]
|
||||
)
|
||||
dnl If the previous failed, check for timer_create() and linking with -lrt.
|
||||
if test "x$vim_cv_timer_create" = "xno" ; then
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lrt"
|
||||
AC_CACHE_CHECK([for timer_create with -lrt], [vim_cv_timer_create_with_lrt], [
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
static void set_flag(union sigval sv) {}
|
||||
], [
|
||||
struct timespec ts;
|
||||
struct sigevent action = {0};
|
||||
timer_t timer_id;
|
||||
|
||||
action.sigev_notify = SIGEV_THREAD;
|
||||
action.sigev_notify_function = set_flag;
|
||||
if (timer_create(CLOCK_MONOTONIC, &action, &timer_id) < 0)
|
||||
exit(1); // cannot create a monotonic timer
|
||||
])],
|
||||
vim_cv_timer_create_with_lrt=yes,
|
||||
vim_cv_timer_create_with_lrt=no,
|
||||
AC_MSG_ERROR(cross-compiling: please set 'vim_cv_timer_create_with_lrt')
|
||||
)])
|
||||
LIBS="$save_LIBS"
|
||||
else
|
||||
vim_cv_timer_create_with_lrt=no
|
||||
fi
|
||||
|
||||
if test "x$vim_cv_timer_create" = "xyes" ; then
|
||||
AC_DEFINE(HAVE_TIMER_CREATE)
|
||||
fi
|
||||
|
||||
if test "x$vim_cv_timer_create_with_lrt" = "xyes" ; then
|
||||
AC_DEFINE(HAVE_TIMER_CREATE)
|
||||
LIBS="$LIBS -lrt"
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user