From 509695c1c3f5c94bf4b1de5dd0fc11202804f638 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Sun, 24 Jul 2022 20:48:00 +0100
Subject: [PATCH] patch 9.0.0065: cross-compiling doesn't work because of
 timer_create check

Problem:    Cross-compiling doesn't work because of timer_create check.
Solution:   Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777)
---
 src/auto/configure | 33 ++++++++++++++++++++-------------
 src/configure.ac   | 16 ++++++++++++----
 src/version.c      |  2 ++
 3 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/src/auto/configure b/src/auto/configure
index d958964ab..da57bd08a 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -13039,13 +13039,14 @@ 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; }
-save_LIBS="$LIBS"
+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_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; }
+  as_fn_error $? "cross-compiling: please set 'vim_cv_timer_create'" "$LINENO" 5
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -13072,9 +13073,8 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; with -lrt" >&5
-$as_echo "yes; with -lrt" >&6; }; $as_echo "#define HAVE_TIMER_CREATE 1" >>confdefs.h
-
+  { $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
 else
   LIBS="$save_LIBS"
   if test "$cross_compiling" = yes; then :
@@ -13108,12 +13108,9 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }; $as_echo "#define HAVE_TIMER_CREATE 1" >>confdefs.h
-
+  vim_cv_timer_create=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  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
@@ -13125,6 +13122,16 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 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" = "xyes" ; then
+  $as_echo "#define HAVE_TIMER_CREATE 1" >>confdefs.h
+
+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; }
 if ${vim_cv_stat_ignores_slash+:} false; then :
diff --git a/src/configure.ac b/src/configure.ac
index 58d5d8e18..c3935742f 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -3807,7 +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_MSG_CHECKING([for timer_create])
+AC_CACHE_CHECK([for timer_create], [vim_cv_timer_create],
 save_LIBS="$LIBS"
 LIBS="$LIBS -lrt"
 AC_RUN_IFELSE([AC_LANG_PROGRAM([
@@ -3824,7 +3824,7 @@ 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_RESULT(yes; with -lrt); AC_DEFINE(HAVE_TIMER_CREATE),
+  AC_MSG_NOTICE(timer_create with -lrt); vim_cv_timer_create=yes,
   LIBS="$save_LIBS"
   AC_RUN_IFELSE([AC_LANG_PROGRAM([
 #include<signal.h>
@@ -3840,8 +3840,16 @@ 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_RESULT(yes); AC_DEFINE(HAVE_TIMER_CREATE),
-    AC_MSG_RESULT(no)))
+    vim_cv_timer_create=yes,
+    vim_cv_timer_create=no),
+    AC_MSG_ERROR(cross-compiling: please set 'vim_cv_timer_create')
+    )
+)
+
+if test "x$vim_cv_timer_create" = "xyes" ; then
+  AC_DEFINE(HAVE_TIMER_CREATE)
+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 7534c2371..364a07143 100644
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    65,
 /**/
     64,
 /**/
-- 
2.40.0