summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-07-28 22:39:54 +0100
committerBram Moolenaar <Bram@vim.org>2022-07-28 22:39:54 +0100
commitefffa5360ebb2b6919c5eb1998c5df4c8849a407 (patch)
tree37f292fbd4b5edf02bc1d65e5ca4ade5f02cb5ac
parenta6f9e300161f4cb54713da22f65b261595e8e614 (diff)
downloadvim-git-efffa5360ebb2b6919c5eb1998c5df4c8849a407.tar.gz
patch 9.0.0103: if running configure with cached results -lrt may be missingv9.0.0103
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.
-rwxr-xr-xsrc/auto/configure85
-rw-r--r--src/configure.ac68
-rw-r--r--src/version.c2
3 files changed, 92 insertions, 63 deletions
diff --git a/src/auto/configure b/src/auto/configure
index dc9ee6e77..1fd75e284 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -13037,14 +13037,12 @@ $as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for timer_create" >&5
-$as_echo_n "checking for timer_create... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for timer_create without -lrt" >&5
+$as_echo_n "checking for timer_create without -lrt... " >&6; }
if ${vim_cv_timer_create+:} false; then :
$as_echo_n "(cached) " >&6
else
-save_LIBS="$LIBS"
-LIBS="$LIBS -lrt"
if test "$cross_compiling" = yes; then :
as_fn_error $? "cross-compiling: please set 'vim_cv_timer_create'" "$LINENO" 5
@@ -13078,68 +13076,85 @@ main ()
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: timer_create with -lrt" >&5
-$as_echo "$as_me: timer_create with -lrt" >&6;}; vim_cv_timer_create=yes
+ vim_cv_timer_create=yes
else
- LIBS="$save_LIBS"
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+ vim_cv_timer_create=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_timer_create" >&5
+$as_echo "$vim_cv_timer_create" >&6; }
+
+if test "x$vim_cv_timer_create" = "xno" ; then
+ save_LIBS="$LIBS"
+ LIBS="$LIBS -lrt"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for timer_create with -lrt" >&5
+$as_echo_n "checking for timer_create with -lrt... " >&6; }
+if ${vim_cv_timer_create_with_lrt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ as_fn_error $? "cross-compiling: please set 'vim_cv_timer_create_with_lrt'" "$LINENO" 5
+
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#endif
-#include<signal.h>
-#include<time.h>
-static void set_flag(union sigval sv) {}
+ #if STDC_HEADERS
+ # include <stdlib.h>
+ # include <stddef.h>
+ #endif
+ #include <signal.h>
+ #include <time.h>
+ static void set_flag(union sigval sv) {}
int
main ()
{
- struct timespec ts;
- struct sigevent action = {0};
- timer_t timer_id;
+ 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
+ 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
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- vim_cv_timer_create=yes
+ vim_cv_timer_create_with_lrt=yes
else
- vim_cv_timer_create=no
+ vim_cv_timer_create_with_lrt=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_timer_create_with_lrt" >&5
+$as_echo "$vim_cv_timer_create_with_lrt" >&6; }
+ LIBS="$save_LIBS"
+else
+ vim_cv_timer_create_with_lrt=no
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vim_cv_timer_create" >&5
-$as_echo "$vim_cv_timer_create" >&6; }
if test "x$vim_cv_timer_create" = "xyes" ; then
$as_echo "#define HAVE_TIMER_CREATE 1" >>confdefs.h
fi
+if test "x$vim_cv_timer_create_with_lrt" = "xyes" ; then
+ $as_echo "#define HAVE_TIMER_CREATE 1" >>confdefs.h
+ LIBS="$LIBS -lrt"
+fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat() ignores a trailing slash" >&5
$as_echo_n "checking whether stat() ignores a trailing slash... " >&6; }
diff --git a/src/configure.ac b/src/configure.ac
index b52aabcf9..d777b052f 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -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) {}
+ 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=yes,
- vim_cv_timer_create=no),
- AC_MSG_ERROR(cross-compiling: please set 'vim_cv_timer_create')
- )]
-)
+ 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],
[
diff --git a/src/version.c b/src/version.c
index ce6caa509..9f6b19499 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 103,
+/**/
102,
/**/
101,