To: vim_dev@googlegroups.com Subject: Patch 9.0.0103 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 9.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. Files: src/configure.ac, src/auto/configure *** ../vim-9.0.0102/src/configure.ac 2022-07-28 12:09:00.601870813 +0100 --- src/configure.ac 2022-07-28 22:36:12.707783733 +0100 *************** *** 3807,3815 **** 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_RUN_IFELSE([AC_LANG_PROGRAM([ #if STDC_HEADERS # include --- 3807,3813 ---- 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 without -lrt], [vim_cv_timer_create], [ AC_RUN_IFELSE([AC_LANG_PROGRAM([ #if STDC_HEADERS # include *************** *** 3828,3863 **** 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 ! # include ! #endif ! #include ! #include ! 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') ! )] ! ) 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], [ --- 3826,3875 ---- 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 ! # include ! #endif ! #include ! #include ! 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], [ *** ../vim-9.0.0102/src/auto/configure 2022-07-28 12:09:00.601870813 +0100 --- src/auto/configure 2022-07-28 22:36:17.915781472 +0100 *************** *** 13037,13050 **** 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; } 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 --- 13037,13048 ---- fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! { $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 if test "$cross_compiling" = yes; then : as_fn_error $? "cross-compiling: please set 'vim_cv_timer_create'" "$LINENO" 5 *************** *** 13078,13145 **** } _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 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; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ ! #if STDC_HEADERS ! # include ! # include ! #endif ! #include ! #include ! static void set_flag(union sigval sv) {} int main () { ! 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 ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! vim_cv_timer_create=yes else ! 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 ! 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" = "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; } --- 13076,13160 ---- } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! vim_cv_timer_create=yes else ! 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 ! # include ! #endif ! #include ! #include ! static void set_flag(union sigval sv) {} int main () { ! 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 ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ! vim_cv_timer_create_with_lrt=yes else ! 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 ! { $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 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; } *** ../vim-9.0.0102/src/version.c 2022-07-28 21:51:34.336218153 +0100 --- src/version.c 2022-07-28 22:38:11.411728959 +0100 *************** *** 737,738 **** --- 737,740 ---- { /* Add new patch number below this line */ + /**/ + 103, /**/ -- hundred-and-one symptoms of being an internet addict: 180. You maintain more than six e-mail addresses. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///