dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.950 2021/01/26 23:45:12 tom Exp $
+dnl $Id: aclocal.m4,v 1.957 2021/04/03 20:43:02 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
AC_SUBST(BUILD_OBJEXT)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
+dnl ---------------
+AC_DEFUN([CF_C11_NORETURN],
+[
+AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
+CF_ARG_ENABLE(stdnoreturn,
+ [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
+ [enable_stdnoreturn=yes],
+ [enable_stdnoreturn=no])
+AC_MSG_RESULT($enable_stdnoreturn)
+
+if test $enable_stdnoreturn = yes; then
+AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
+ [AC_TRY_COMPILE([
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdnoreturn.h>
+static _Noreturn void giveup(void) { exit(0); }
+ ],
+ [if (feof(stdin)) giveup()],
+ cf_cv_c11_noreturn=yes,
+ cf_cv_c11_noreturn=no)
+ ])
+else
+ cf_cv_c11_noreturn=no,
+fi
+
+if test "$cf_cv_c11_noreturn" = yes; then
+ AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
+ AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
+ HAVE_STDNORETURN_H=1
+else
+ HAVE_STDNORETURN_H=0
+fi
+
+AC_SUBST(HAVE_STDNORETURN_H)
+AC_SUBST(STDC_NORETURN)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
dnl ---------------
dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
AC_MSG_RESULT($enable_gnat_projects)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_LEAKS version: 8 updated: 2021/01/05 20:05:09
+dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
dnl ----------------
dnl Combine no-leak checks with the libraries or tools that are used for the
dnl checks.
AC_MSG_CHECKING(if you want to perform memory-leak testing)
AC_ARG_ENABLE(leaks,
[ --disable-leaks test: free permanent memory, analyze leaks],
- [enable_leaks=no],
+ [enable_leaks=$enableval],
[enable_leaks=yes])
-dnl TODO - drop with_no_leaks
+dnl with_no_leaks is more readable...
if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
AC_MSG_RESULT($with_no_leaks)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 23 updated: 2021/01/03 18:30:50
+dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
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],
[AC_REQUIRE([AC_PROG_FGREP])dnl
+AC_REQUIRE([CF_C11_NORETURN])dnl
if test "$GCC" = yes || test "$GXX" = yes
then
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
+extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
+extern GCC_NORETURN void foo(void);
int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
EOF
cf_printf_attribute=no
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LD_SEARCHPATH version: 2 updated: 2019/09/26 20:34:14
+dnl CF_LD_SEARCHPATH version: 3 updated: 2021/03/05 19:13:35
dnl ----------------
dnl Try to obtain the linker's search-path, for use in scripts.
dnl
# The -NX options tell newer versions of Linux ldconfig to not attempt to
# update the cache, which makes it run faster.
test -z "$cf_pathlist" && \
- cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
+ cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
test -z "$cf_pathlist" &&
- cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
+ cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
# This works with OpenBSD 6.5, which lists only filenames
test -z "$cf_pathlist" &&
- cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
+ cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
if test -z "$cf_pathlist"
then
if test -z "$cf_pathlist"
then
- # Solaris is hardcoded
- if test -d /opt/SUNWspro/lib
+ # Solaris is "SunOS"
+ if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
then
- cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib"
- elif test -d /usr/ccs/lib
+ case x`(isainfo -b)` in
+ (x64)
+ cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
+ ;;
+ (x32)
+ test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
+ cf_pathlist="$cf_pathlist /lib /usr/lib"
+ ;;
+ (*)
+ AC_MSG_WARN(problem with Solaris architecture)
+ ;;
+ esac
+ fi
+fi
+
+if test -z "$cf_pathlist"
+then
+ # HP-UX
+ if test x"`uname -s`" = xHP-UX
then
- cf_pathlist="/usr/ccs/lib /usr/lib"
+ case x`getconf LONG_BIT` in
+ (x64)
+ cf_pathlist="/usr/lib/hpux64"
+ ;;
+ (x*)
+ cf_pathlist="/usr/lib/hpux32"
+ ;;
+ esac
fi
fi
AC_SUBST(LIB_PREFIX)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 94 updated: 2021/01/23 15:37:41
+dnl CF_LIB_RULES version: 95 updated: 2021/03/20 12:00:25
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
uninstall.includes \\
CF_EOF
fi
-if test "$cf_dir" != "c++" ; then
+
echo 'lint \' >> Makefile
-fi
+
cat >> Makefile <<CF_EOF
libs \\
lintlib \\
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LINK_FUNCS version: 9 updated: 2017/01/21 11:11:02
+dnl CF_LINK_FUNCS version: 10 updated: 2021/04/03 15:45:02
dnl -------------
dnl Most Unix systems have both link and symlink, a few don't have symlink.
dnl A few non-Unix systems implement symlink, but not link.
dnl A few non-systems implement neither (or have nonfunctional versions).
+dnl
+dnl This allows for a 2-second difference in modification times to allow for
+dnl some marginal NFS implementations.
AC_DEFUN([CF_LINK_FUNCS],
[
AC_CHECK_HEADERS( \
struct stat dst_sb;
stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
+ if ($cf_func("config.log", "conftest.chk") < 0) {
+ fail = 1;
+ } else if (stat(dst, &dst_sb) < 0) {
+ fail = 2;
+ } else {
+ long diff = (dst_sb.st_mtime - src_sb.st_mtime);
+ if (diff < 0)
+ diff = -diff;
+ if (diff > 2)
+ fail = 3;
+ }
#ifdef HAVE_UNLINK
unlink(dst);
#else