]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 6.2 - patch 20201128
[ncurses.git] / aclocal.m4
index 6ae0617ef4f7fe146cf1e021a304383d9c972b1b..3b7d973a56915bbfb0f592a961019145660b577d 100644 (file)
@@ -29,7 +29,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.903 2020/03/08 01:05:14 tom Exp $
+dnl $Id: aclocal.m4,v 1.941 2020/11/26 22:37:55 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -42,7 +42,7 @@ dnl           https://invisible-island.net/autoconf/my-autoconf.html
 dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
-dnl AM_LANGINFO_CODESET version: 4 updated: 2015/04/18 08:56:57
+dnl AM_LANGINFO_CODESET version: 5 updated: 2020/03/10 18:53:47
 dnl -------------------
 dnl Inserted as requested by gettext 0.10.40
 dnl File from /usr/share/aclocal
@@ -55,7 +55,7 @@ AC_DEFUN([AM_LANGINFO_CODESET],
 [
 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
        [AC_TRY_LINK([#include <langinfo.h>],
-       [char* cs = nl_langinfo(CODESET);],
+       [char* cs = nl_langinfo(CODESET); (void)cs],
        am_cv_langinfo_codeset=yes,
        am_cv_langinfo_codeset=no)
        ])
@@ -158,10 +158,11 @@ AC_DEFUN([CF_ADD_ADAFLAGS],[
        AC_SUBST(ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
+dnl CF_ADD_CFLAGS version: 14 updated: 2020/04/04 16:16:13
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
-dnl The second parameter if given makes this macro verbose.
+dnl $1 = flags to add
+dnl $2 = if given makes this macro verbose.
 dnl
 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
@@ -244,6 +245,23 @@ fi
 
 AC_SUBST(EXTRA_CPPFLAGS)
 
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
+dnl ---------------
+dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
+dnl The second parameter if given makes this macro verbose.
+dnl
+dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
+dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
+dnl confused by the quotes (which require backslashes to keep them usable).
+AC_DEFUN([CF_ADD_CXXFLAGS],
+[
+cf_save_CXXFLAGS="$CFLAGS"
+CFLAGS="$CXXFLAGS"
+CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
+CXXFLAGS="$CFLAGS"
+CFLAGS="$cf_save_CXXFLAGS"
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_ADD_INCDIR version: 15 updated: 2018/06/20 20:23:13
@@ -442,7 +460,7 @@ ifelse([$3],,[    :]dnl
 ])dnl
 ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05
+dnl CF_AR_FLAGS version: 7 updated: 2020/04/04 11:37:29
 dnl -----------
 dnl Check for suitable "ar" (archiver) options for updating an archive.
 dnl
@@ -453,39 +471,55 @@ AC_DEFUN([CF_AR_FLAGS],[
 AC_REQUIRE([CF_PROG_AR])
 
 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
-       cf_cv_ar_flags=unknown
-       for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
-       do
+       case $cf_cv_system_name in
+       (*-msvc*)
+               cf_cv_ar_flags=''
+               cat >mk_static_lib.sh <<-EOF
+               #!$SHELL
+               MSVC_BIN="[$]AR"
+               out="\[$]1"
+               shift
+               exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
+               EOF
+               chmod +x mk_static_lib.sh
+               AR=`pwd`/mk_static_lib.sh
+               ;;
+       (*)
+               cf_cv_ar_flags=unknown
+               for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
+               do
 
-               # check if $ARFLAGS already contains this choice
-               if test "x$ARFLAGS" != "x" ; then
-                       cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
-                       if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
-                               cf_cv_ar_flags=
-                               break
+                       # check if $ARFLAGS already contains this choice
+                       if test "x$ARFLAGS" != "x" ; then
+                               cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
+                               if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
+                                       cf_cv_ar_flags=
+                                       break
+                               fi
                        fi
-               fi
 
-               rm -f conftest.$ac_cv_objext
-               rm -f conftest.a
+                       rm -f conftest.$ac_cv_objext
+                       rm -f conftest.a
 
-               cat >conftest.$ac_ext <<EOF
+                       cat >conftest.$ac_ext <<EOF
 #line __oline__ "configure"
 int    testdata[[3]] = { 123, 456, 789 };
 EOF
-               if AC_TRY_EVAL(ac_compile) ; then
-                       echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
-                       $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
-                       if test -f conftest.a ; then
-                               cf_cv_ar_flags=$cf_ar_flags
+                       if AC_TRY_EVAL(ac_compile) ; then
+                               echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
+                               $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
+                               if test -f conftest.a ; then
+                                       cf_cv_ar_flags=$cf_ar_flags
+                                       break
+                               fi
+                       else
+                               CF_VERBOSE(cannot compile test-program)
                                break
                        fi
-               else
-                       CF_VERBOSE(cannot compile test-program)
-                       break
-               fi
-       done
-       rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+               done
+               rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+               ;;
+       esac
 ])
 
 if test -n "$ARFLAGS" ; then
@@ -570,7 +604,7 @@ else        AC_MSG_RESULT(no)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_BOOL_SIZE version: 15 updated: 2017/01/21 11:06:25
+dnl CF_BOOL_SIZE version: 17 updated: 2020/10/24 19:48:55
 dnl ------------
 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
 dnl Don't bother looking for bool.h, since it's been deprecated.
@@ -579,8 +613,30 @@ dnl If the current compiler is C rather than C++, we get the bool definition
 dnl from <stdbool.h>.
 AC_DEFUN([CF_BOOL_SIZE],
 [
-AC_MSG_CHECKING([for size of bool])
-AC_CACHE_VAL(cf_cv_type_of_bool,[
+AC_CHECK_SIZEOF(bool,,[
+#include <stdlib.h>
+#include <stdio.h>
+
+#if defined(__cplusplus)
+
+#ifdef HAVE_GXX_BUILTIN_H
+#include <g++/builtin.h>
+#elif HAVE_GPP_BUILTIN_H
+#include <gpp/builtin.h>
+#elif HAVE_BUILTIN_H
+#include <builtin.h>
+#endif
+
+#else
+
+#if $cf_cv_header_stdbool_h
+#include <stdbool.h>
+#endif
+
+#endif
+])
+
+AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
        rm -f cf_test.out
        AC_TRY_RUN([
 #include <stdlib.h>
@@ -625,10 +681,18 @@ int main(void)
                   cf_cv_type_of_bool=unknown
                 fi],
                [cf_cv_type_of_bool=unknown],
-               [cf_cv_type_of_bool=unknown])
-       ])
+               [
+               case x$ac_cv_sizeof_bool in
+               (x1) cf_cv_type_of_bool="unsigned char";;
+               (x2) cf_cv_type_of_bool="unsigned short";;
+               (x4) cf_cv_type_of_bool="unsigned int";;
+               (x8) cf_cv_type_of_bool="unsigned long";;
+               (*)  cf_cv_type_of_bool=unknown;;
+               esac
+               ])
        rm -f cf_test.out
-AC_MSG_RESULT($cf_cv_type_of_bool)
+])
+
 if test "$cf_cv_type_of_bool" = unknown ; then
        case .$NCURSES_BOOL in
        (.auto|.) NCURSES_BOOL=unsigned;;
@@ -957,7 +1021,7 @@ fi
 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_ERRNO version: 12 updated: 2015/04/18 08:56:57
+dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
 dnl --------------
 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
@@ -975,7 +1039,7 @@ AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h> ],
-       ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
+       ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
        [cf_cv_dcl_$1=yes],
        [cf_cv_dcl_$1=no])
 ])
@@ -1012,6 +1076,28 @@ if test "$cf_cv_have_$1" = yes ; then
        AC_DEFINE_UNQUOTED($cf_result)
 fi
 
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
+dnl --------------------
+dnl Check whether the compiler understands -fvisibility=hidden
+dnl
+dnl $1 = compiler
+dnl $2 = compiler-flags variable name
+dnl $3 = cache variable to set
+AC_DEFUN([CF_CHECK_FVISIBILITY],[
+AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
+    cf_save_cflags="[$]$2"
+    $2="[$]$2 -fvisibility=hidden"
+    AC_TRY_LINK([
+__attribute__ ((visibility("default"))) int somefunc() {return 42;}
+       ],[
+       if (somefunc()) return 1;
+],
+    [$3=yes],
+    [$3=no])
+    $2=$cf_save_cflags
+])
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_CHECK_GETENV version: 1 updated: 2019/06/23 15:28:15
@@ -1140,13 +1226,13 @@ then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_GNAT_VERSION version: 2 updated: 2019/12/31 08:53:54
+dnl CF_CHECK_GNAT_VERSION version: 3 updated: 2020/05/23 19:39:36
 dnl ---------------------
 AC_DEFUN([CF_CHECK_GNAT_VERSION],
 [
 AC_REQUIRE([CF_GNAT_VERSION])
 case $cf_cv_gnat_version in
-(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
        cf_cv_prog_gnat_correct=yes
        ;;
 (*)
@@ -1394,7 +1480,7 @@ main(void)
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
+dnl CF_CLANG_COMPILER version: 6 updated: 2020/11/26 17:37:55
 dnl -----------------
 dnl Check if the given compiler is really clang.  clang's C driver defines
 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
@@ -1413,21 +1499,56 @@ ifelse([$2],,CLANG_COMPILER,[$2])=no
 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
        AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
        cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
-       ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
        AC_TRY_COMPILE([],[
 #ifdef __clang__
 #else
 make an error
 #endif
 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
 ],[])
        ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
        AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
 fi
+
+CLANG_VERSION=none
+
+if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
+       case "$CC" in
+       (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
+               AC_MSG_WARN(replacing broken compiler alias $CC)
+               CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
+               CC=clang
+               ;;
+       esac
+
+       AC_MSG_CHECKING(version of $CC)
+       CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+       test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
+       AC_MSG_RESULT($CLANG_VERSION)
+
+       for cf_clang_opt in \
+               -Qunused-arguments \
+               -Wno-error=implicit-function-declaration
+       do
+               AC_MSG_CHECKING(if option $cf_clang_opt works)
+               cf_save_CFLAGS="$CFLAGS"
+               CFLAGS="$CFLAGS $cf_clang_opt"
+               AC_TRY_LINK([
+                       #include <stdio.h>],[
+                       printf("hello!\n");],[
+                       cf_clang_optok=yes],[
+                       cf_clang_optok=no])
+               AC_MSG_RESULT($cf_clang_optok)
+               CFLAGS="$cf_save_CFLAGS"
+               if test $cf_clang_optok = yes; then
+                       CF_VERBOSE(adding option $cf_clang_opt)
+                       CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
+               fi
+       done
+fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 3 updated: 2020/01/11 18:39:22
+dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
 dnl -----------------
 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
 dnl character-strings.
@@ -1457,7 +1578,7 @@ AC_TRY_COMPILE(
 #include <stdlib.h>
 #include <X11/Intrinsic.h>
 ],
-[String foo = malloc(1)],[
+[String foo = malloc(1); (void)foo],[
 
 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
        AC_TRY_COMPILE(
@@ -1933,6 +2054,36 @@ if test "x$with_string_hacks" = "xyes"; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_ENABLE_WARNINGS version: 7 updated: 2020/08/29 09:05:21
+dnl ------------------
+dnl Configure-option to enable gcc warnings
+dnl
+dnl $1 = extra options to add, if supported
+dnl $2 = option for checking attributes.  By default, this is done when
+dnl      warnings are enabled.  For other values:
+dnl      yes: always do this, e.g., to use in generated library-headers
+dnl      no: never do this
+AC_DEFUN([CF_ENABLE_WARNINGS],[
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+CF_FIX_WARNINGS(CFLAGS)
+CF_FIX_WARNINGS(CPPFLAGS)
+CF_FIX_WARNINGS(LDFLAGS)
+AC_MSG_CHECKING(if you want to turn on gcc warnings)
+CF_ARG_ENABLE(warnings,
+       [  --enable-warnings       test: turn on gcc compiler warnings],
+       [with_warnings=yes],
+       [with_warnings=no])
+AC_MSG_RESULT($with_warnings)
+if test "$with_warnings" = "yes"
+then
+       ifelse($2,,[CF_GCC_ATTRIBUTES])
+       CF_GCC_WARNINGS($1)
+fi
+ifelse($2,yes,[CF_GCC_ATTRIBUTES])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
 dnl --------
 dnl Check if 'errno' is declared in <errno.h>
@@ -2161,6 +2312,40 @@ AC_DEFUN([CF_FIXUP_ADAFLAGS],[
        AC_MSG_RESULT($ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_FIX_WARNINGS version: 2 updated: 2020/08/28 15:08:28
+dnl ---------------
+dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
+dnl "-Werror" flags can interfere with configure-checks.  Those go into
+dnl EXTRA_CFLAGS.
+dnl
+dnl $1 = variable name to repair
+define([CF_FIX_WARNINGS],[
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+       case [$]$1 in
+       (*-Werror=*)
+               CF_VERBOSE(repairing $1: [$]$1)
+               cf_temp_flags=
+               for cf_temp_scan in [$]$1
+               do
+                       case "x$cf_temp_scan" in
+                       (x-Werror=*)
+                               CF_APPEND_TEXT(EXTRA_CFLAGS,"$cf_temp_scan")
+                               ;;
+                       (*)
+                               CF_APPEND_TEXT(cf_temp_flags,"$cf_temp_scan")
+                               ;;
+                       esac
+               done
+               $1="$cf_temp_flags"
+               CF_VERBOSE(... fixed [$]$1)
+               CF_VERBOSE(... extra $EXTRA_CFLAGS)
+               ;;
+       esac
+fi
+AC_SUBST(EXTRA_CFLAGS)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
 dnl --------------
 dnl Check if fopen works when the "b" (binary) flag is added to the mode
@@ -2476,14 +2661,14 @@ esac
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
+dnl CF_GCC_ATTRIBUTES version: 19 updated: 2020/08/29 09:05:21
 dnl -----------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
 dnl compiler warnings.  Though useful, not all are supported -- and contrary
 dnl to documentation, unrecognized directives cause older compilers to barf.
 AC_DEFUN([CF_GCC_ATTRIBUTES],
 [
-if test "$GCC" = yes
+if ( test "$GCC" = yes || test "$GXX" = yes )
 then
 cat > conftest.i <<EOF
 #ifndef GCC_PRINTF
@@ -2520,7 +2705,7 @@ cat > conftest.$ac_ext <<EOF
 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
+int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
 EOF
        cf_printf_attribute=no
        cf_scanf_attribute=no
@@ -2603,7 +2788,7 @@ CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 37 updated: 2020/01/05 20:04:12
+dnl CF_GCC_WARNINGS version: 38 updated: 2020/08/28 15:08:28
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -2646,7 +2831,7 @@ then
 
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
-       EXTRA_CFLAGS="-Wall"
+       EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
        for cf_opt in \
                wd1419 \
                wd1683 \
@@ -2669,7 +2854,6 @@ elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
 then
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
-       EXTRA_CFLAGS=
        cf_warn_CONST=""
        test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
        cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
@@ -2755,7 +2939,7 @@ test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
 AC_SUBST(GNATPREP_OPTS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_GENERICS version: 4 updated: 2019/12/31 08:53:54
+dnl CF_GNAT_GENERICS version: 6 updated: 2020/07/04 19:30:27
 dnl ----------------
 AC_DEFUN([CF_GNAT_GENERICS],
 [
@@ -2763,7 +2947,7 @@ AC_REQUIRE([CF_GNAT_VERSION])
 
 AC_MSG_CHECKING(if GNAT supports generics)
 case $cf_cv_gnat_version in
-(3.[[1-9]]*|[[4-9]].*)
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
        cf_gnat_generics=yes
        ;;
 (*)
@@ -3675,7 +3859,7 @@ AC_MSG_RESULT($cf_cv_have_isascii)
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 11 updated: 2018/06/20 20:23:13
+dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
 dnl ------------
 dnl Add checks for large file support.
 AC_DEFUN([CF_LARGEFILE],[
@@ -3715,6 +3899,7 @@ ifdef([AC_FUNC_FSEEKO],[
                struct dirent64 *x = readdir((DIR *)0);
                struct dirent *y = readdir((DIR *)0);
                int z = x - y;
+               (void)z;
                ],
                [cf_cv_struct_dirent64=yes],
                [cf_cv_struct_dirent64=no])
@@ -3994,7 +4179,7 @@ fi
 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33
+dnl CF_LIB_PREFIX version: 13 updated: 2020/04/04 10:11:47
 dnl -------------
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
@@ -4008,6 +4193,9 @@ define([CF_LIB_PREFIX],
                        LIB_PREFIX=''
                fi
                ;;
+       (*-msvc*)
+               LIB_PREFIX=''
+               ;;
        (*)     LIB_PREFIX='lib'
                ;;
        esac
@@ -4015,7 +4203,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 89 updated: 2020/03/07 20:05:14
+dnl CF_LIB_RULES version: 90 updated: 2020/04/04 10:11:47
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
@@ -4036,7 +4224,7 @@ cf_prefix=$LIB_PREFIX
 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
 
 case $cf_cv_shlib_version in
-(cygdll|msysdll|mingw)
+(cygdll|msysdll|mingw|msvcdll)
        TINFO_NAME=$TINFO_ARG_SUFFIX
        TINFO_SUFFIX=.dll
        ;;
@@ -4164,6 +4352,10 @@ CF_EOF
                                        cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
                                        cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
                                        ;;
+                               (msvcdll)
+                                       cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
+                                       cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
+                                       ;;
                                (*)
                                        cf_add_lib=
                                        ;;
@@ -4259,7 +4451,7 @@ CF_EOF
                        CXX_MODEL=$cf_ITEM
                        if test "$CXX_MODEL" = SHARED; then
                                case $cf_cv_shlib_version in
-                               (cygdll|msysdll|mingw)
+                               (cygdll|msysdll|mingw|msvcdll)
                                        test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
                                        with_shared_cxx=yes
                                        ;;
@@ -4641,7 +4833,7 @@ fi
 ])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04
+dnl CF_LIB_SUFFIX version: 26 updated: 2020/04/04 10:11:47
 dnl -------------
 dnl Compute the library file-suffix from the given model name
 dnl $1 = model name
@@ -4656,11 +4848,25 @@ AC_DEFUN([CF_LIB_SUFFIX],
                $3=[$]$2
                ;;
        (Xdebug)
-               $2='_g.a'
+               case $cf_cv_system_name in
+               (*-msvc*)
+                       $2='_g.lib'
+                       ;;
+               (*)
+                       $2='_g.a'
+                       ;;
+               esac
                $3=[$]$2
                ;;
        (Xprofile)
-               $2='_p.a'
+               case $cf_cv_system_name in
+               (*-msvc*)
+                       $2='_p.lib'
+                       ;;
+               (*)
+                       $2='_p.a'
+                       ;;
+               esac
                $3=[$]$2
                ;;
        (Xshared)
@@ -4669,6 +4875,10 @@ AC_DEFUN([CF_LIB_SUFFIX],
                        $2='.so'
                        $3=[$]$2
                        ;;
+               (*-msvc*)
+                       $2='.dll'
+                       $3='.dll.lib'
+                       ;;
                (cygwin*|msys*|mingw*)
                        $2='.dll'
                        $3='.dll.a'
@@ -4696,7 +4906,14 @@ AC_DEFUN([CF_LIB_SUFFIX],
                esac
                ;;
        (*)
-               $2='.a'
+               case $target in
+               (*-msvc*)
+                       $2='.lib'
+                       ;;
+               (*)
+                       $2='.a'
+                       ;;
+               esac
                $3=[$]$2
                ;;
        esac
@@ -5524,7 +5741,7 @@ ifelse($1,,[
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
+dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
 dnl ----------------------
 dnl Check if the file-system supports mixed-case filenames.  If we're able to
 dnl create a lowercase name and see it as uppercase, it doesn't support that.
@@ -5533,7 +5750,7 @@ AC_DEFUN([CF_MIXEDCASE_FILENAMES],
 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)
@@ -6288,7 +6505,7 @@ AC_MSG_RESULT($cf_prog_ln_sf)
 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_REGEX version: 12 updated: 2015/04/18 08:56:57
+dnl CF_REGEX version: 16 updated: 2020/09/26 19:56:36
 dnl --------
 dnl Attempt to determine if we've got one of the flavors of regular-expression
 dnl code that we can support.
@@ -6296,24 +6513,36 @@ AC_DEFUN([CF_REGEX],
 [
 
 cf_regex_func=no
-
-cf_regex_libs="regex re"
+cf_regex_libs=
 case $host_os in
 (mingw*)
-       cf_regex_libs="gnurx $cf_regex_libs"
+       # -lsystre -ltre -lintl -liconv
+       AC_CHECK_LIB(systre,regcomp,[
+               AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
+               AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
+               AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
+               CF_ADD_LIB(systre)
+               cf_regex_func=regcomp
+       ],[
+               AC_CHECK_LIB(gnurx,regcomp,[
+                       CF_ADD_LIB(gnurx)
+                       cf_regex_func=regcomp])
+       ])
+       ;;
+(*)
+       cf_regex_libs="regex re"
+       AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
+               for cf_regex_lib in $cf_regex_libs
+               do
+                       AC_CHECK_LIB($cf_regex_lib,regcomp,[
+                                       CF_ADD_LIB($cf_regex_lib)
+                                       cf_regex_func=regcomp
+                                       break])
+               done
+       ])
        ;;
 esac
 
-AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
-       for cf_regex_lib in $cf_regex_libs
-       do
-               AC_CHECK_LIB($cf_regex_lib,regcomp,[
-                               CF_ADD_LIB($cf_regex_lib)
-                               cf_regex_func=regcomp
-                               break])
-       done
-])
-
 if test "$cf_regex_func" = no ; then
        AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
                AC_CHECK_LIB(gen,compile,[
@@ -6335,6 +6564,8 @@ case $cf_regex_func in
                AC_TRY_LINK([#include <$cf_regex_hdr>],[
                        char *p = compile("", "", "", 0);
                        int x = step("", "");
+                       (void)p;
+                       (void)x;
                ],[
                        cf_cv_regex_hdrs=$cf_regex_hdr
                        break
@@ -6346,9 +6577,11 @@ case $cf_regex_func in
        do
                AC_TRY_LINK([#include <sys/types.h>
 #include <$cf_regex_hdr>],[
-                       regex_t *p;
+                       regex_t *p = 0;
                        int x = regcomp(p, "", 0);
                        int y = regexec(p, "", 0, 0, 0);
+                       (void)x;
+                       (void)y;
                        regfree(p);
                ],[
                        cf_cv_regex_hdrs=$cf_regex_hdr
@@ -6551,7 +6784,7 @@ do
 done
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 94 updated: 2020/02/29 16:09:19
+dnl CF_SHARED_OPTS version: 102 updated: 2020/08/22 18:17:19
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -6778,8 +7011,8 @@ CF_EOF
                MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
                ;;
        (mingw*msvc*)
-               cf_cv_shlib_version=mingw
-               cf_cv_shlib_version_infix=mingw
+               cf_cv_shlib_version=msvcdll
+               cf_cv_shlib_version_infix=msvcdll
                shlibdir=$bindir
                MAKE_DLLS=
                if test "$DFT_LWR_MODEL" = "shared" ; then
@@ -6788,25 +7021,100 @@ CF_EOF
                        EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
                fi
                CC_SHARED_OPTS=
-               MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${LD} ${CFLAGS}'
-               RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
+               MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
+               RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
                cat >mk_shared_lib.sh <<-CF_EOF
                #!$SHELL
-               SHARED_LIB=\$1
-               IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$\.dll.a/'\`
+               SHARED_LIB=\[$]1
+               IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
                shift
-               my_ld=\$1
+               my_ld=\[$]1
                shift
                cat <<-EOF
                Linking shared library
                ** SHARED LIB \$SHARED_LIB
                ** IMPORT_LIB \$IMPORT_LIB
 EOF
-               args=\$(echo \$* | sed -E "s#-l(\w*)#lib\1.a#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
+               args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
                exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
                mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
 CF_EOF
                chmod +x mk_shared_lib.sh
+               cat >mk_prog.sh <<-CF_EOF
+               #!$SHELL
+               shift
+               # Ignore first argument (compiler) and use LD (link.exe) unconditionally
+               LD="[$]LD"
+               clopts=()
+               ldopts=("/subsystem:console")
+               libs=()
+               isdll=0
+               while test \[$]# -gt 0; do
+                       case "\[$]1" in
+                               -link)
+                                       # ignore -link argument
+                                       ;;
+                               -M[[TD]] | -M[[TD]]d)
+                                       # ignore runtime-library option
+                                       ;;
+                               -dll)
+                                       isdll=1
+                                       ;;
+                               -W* | -w*)
+                                       # ignore warnings
+                                       ;;
+                               -D*)
+                                       clopts+=("\[$]1")
+                                       ;;
+                               -I*)
+                                       clopts+=("\[$]1")
+                                       ;;
+                               -l*)
+                                       libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
+                                       ;;
+                               -L*)
+                                       ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
+                                       ;;
+                               *.obj | *.o)
+                                       ldopts+=("\[$]1")
+                                       ;;
+                               -Wl,*)
+                                       for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
+                                               ldopts+=("\[$]{linkarg}")
+                                       done
+                                       ;;
+                               *.lib)
+                                       ldopts+=("\[$]1")
+                                       ;;
+                               -o)
+                                       shift
+                                       ldopts+=("-out:\[$]1")
+                                       ;;
+                               *)
+                                       clopts+=("\[$]1")
+                                       ldopts+=("\[$]1")
+                                       ;;
+                       esac
+                       shift
+               done
+               if [[ "\$isdll" -ne 0 ]]; then
+                       for lib in \[$]{libs[[*]]}; do
+                               ldopts+=("\[$]lib.dll.lib")
+                       done
+               else
+                       for lib in \[$]{libs[[*]]}; do
+                               ldopts+=("\[$]lib.lib")
+                       done
+               fi
+               cat <<-EOF
+               Creating program
+               ** ld options:   "\[$]{ldopts[[@]]}"
+EOF
+               exec \[$]LD \[$]{ldopts[[@]]}
+CF_EOF
+               chmod +x mk_prog.sh
+               LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
+               LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
                ;;
        (mingw*)
                cf_cv_shlib_version=mingw
@@ -6847,6 +7155,14 @@ CF_EOF
                CF_SHARED_SONAME
                MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
                ;;
+       (nskJ*)
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
+               ;;
+       (nskL*)
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
+               ;;
        (nto-qnx*|openbsd*|freebsd[[12]].*)
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
                MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
@@ -6878,7 +7194,7 @@ CF_EOF
                        CF_SHARED_SONAME
                        MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
                else
-                       MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -Wl,-shared -Wl,-Bshareable -o $[@]'
+                       MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
                fi
                ;;
        (osf*|mls+*)
@@ -7043,7 +7359,7 @@ define([CF_SHARED_SONAME],
        fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_SIGWINCH version: 2 updated: 2019/03/23 19:54:44
+dnl CF_SIGWINCH version: 3 updated: 2020/03/10 18:53:47
 dnl -----------
 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
 dnl programs need this test).
@@ -7058,7 +7374,7 @@ AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
        AC_TRY_COMPILE([
 #include <sys/types.h>
 #include <sys/signal.h>
-],[int x = SIGWINCH],
+],[int x = SIGWINCH; (void)x],
        [cf_cv_define_sigwinch=yes],
        [AC_TRY_COMPILE([
 #undef _XOPEN_SOURCE
@@ -7066,7 +7382,7 @@ AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
 #undef _POSIX_C_SOURCE
 #include <sys/types.h>
 #include <sys/signal.h>
-],[int x = SIGWINCH],
+],[int x = SIGWINCH; (void)x],
        [cf_cv_define_sigwinch=maybe],
        [cf_cv_define_sigwinch=no])
 ])
@@ -7088,7 +7404,7 @@ do
 #if SIGWINCH != $cf_sigwinch
 make an error
 #endif
-int x = SIGWINCH],
+int x = SIGWINCH; (void)x],
        [cf_cv_fixup_sigwinch=$cf_sigwinch
         break])
 
@@ -7102,7 +7418,7 @@ done
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SIG_ATOMIC_T version: 4 updated: 2020/01/18 12:30:44
+dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
 dnl ---------------
 dnl signal handler, but there are some gcc dependencies in that recommendation.
 dnl Try anyway.
@@ -7124,6 +7440,7 @@ extern $cf_type x;
 $cf_type x;
 static void handler(int sig)
 {
+       (void)sig;
        x = 5;
 }],
                [signal(SIGINT, handler);
@@ -7137,7 +7454,7 @@ AC_MSG_RESULT($cf_cv_sig_atomic_t)
 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SIZECHANGE version: 14 updated: 2018/06/20 20:23:13
+dnl CF_SIZECHANGE version: 16 updated: 2020/03/19 20:46:13
 dnl -------------
 dnl Check for definitions & structures needed for window size-changing
 dnl
@@ -7180,13 +7497,17 @@ do
 ],[
 #ifdef TIOCGSIZE
        struct ttysize win;     /* SunOS 3.0... */
-       int y = win.ts_lines;
-       int x = win.ts_cols;
+       int y = win.ts_lines = 2;
+       int x = win.ts_cols = 1;
+       (void)y;
+       (void)x;
 #else
 #ifdef TIOCGWINSZ
        struct winsize win;     /* everything else */
-       int y = win.ws_row;
-       int x = win.ws_col;
+       int y = win.ws_row = 2;
+       int x = win.ws_col = 1;
+       (void)y;
+       (void)x;
 #else
        no TIOCGSIZE or TIOCGWINSZ
 #endif /* TIOCGWINSZ */
@@ -7425,7 +7746,7 @@ AC_MSG_RESULT($sigact_bad)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_STRUCT_TERMIOS version: 9 updated: 2018/06/08 21:57:23
+dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
 dnl -----------------
 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
 AC_DEFUN([CF_STRUCT_TERMIOS],[
@@ -7448,12 +7769,12 @@ if test "$ac_cv_header_termios_h" = yes ; then
        if test "$termios_bad" = maybe ; then
        AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
        AC_TRY_COMPILE([#include <termios.h>],
-               [struct termios foo; int x = foo.c_iflag],
+               [struct termios foo; int x = foo.c_iflag = 1; (void)x],
                termios_bad=no, [
                AC_TRY_COMPILE([
 #define _POSIX_SOURCE
 #include <termios.h>],
-                       [struct termios foo; int x = foo.c_iflag],
+                       [struct termios foo; int x = foo.c_iflag = 2; (void)x],
                        termios_bad=unknown,
                        termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
                        ])