]> granicus.if.org Git - vim/commitdiff
patch 9.0.0103: if running configure with cached results -lrt may be missing v9.0.0103
authorBram Moolenaar <Bram@vim.org>
Thu, 28 Jul 2022 21:39:54 +0000 (22:39 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 28 Jul 2022 21:39:54 +0000 (22:39 +0100)
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.

src/auto/configure
src/configure.ac
src/version.c

index dc9ee6e7776519a9d191592f167bea8a7a4298aa..1fd75e284c65cee75e5c68b3083f68eea964b9b4 100755 (executable)
@@ -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; }
index b52aabcf95c4d46e095ea8356a01e6c023a242d1..d777b052fd5830ecf82747f121871f09f9a27b58 100644 (file)
@@ -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],
   [
index ce6caa5092ef3bc56e14b50cde83143da3fbe315..9f6b19499ea0ce90f4d2957401234bb8958bc07c 100644 (file)
@@ -735,6 +735,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    103,
 /**/
     102,
 /**/