autoconf: Remove/update obsolete autoconf macros 38/14838/4
authorCheyenne Wills <cwills@sinenomine.net>
Tue, 2 Nov 2021 15:18:51 +0000 (09:18 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Thu, 2 Dec 2021 16:57:47 +0000 (11:57 -0500)
Autoconf 2.70 (released in 2020-12) produces warning messages about
obsolete constructs by default.

Running regen.sh with autoconf 2.70 installed produces the following
warnings:

..
 configure.ac:7: warning: The macro `AC_CONFIG_HEADER' is obsolete.
 configure.ac:21: warning: AC_PROG_LEX without either yywrap or noyywrap
   is obsolete
 configure.ac:21: warning: The macro `AC_HEADER_STDC' is obsolete.
 configure.ac:21: warning: The macro `AC_HEADER_TIME' is obsolete.
..

Replace AC_CONFIG_HEADER with AC_CONFIG_HEADERS

Add the noyywrap parameter to AC_PROG_LEX.  Use the noyywrap option
since we already provide a yywrap function in the .l sources.

Remove AC_HEADER_STDC.  There are no references to the the autoconf
variable set by this macro.  This macro was marked as obsolete prior to
autoconf 2.64 with the following note:
 "This macro is obsolescent, as current systems have conforming header
 files. New programs need not use this macro."

AC_HEADER_TIME was marked as obsolete prior to autoconf 2.64 with the
following note:
 "This macro is obsolescent, as current systems can include both files
  when they exist. New programs need not use this macro."

The only reference that requires AC_HEADER_TIME is within the external
roken code pulled from heimdal. Compiles that use the external upstream
heimdal packages result in a build error if TIME_WITH_SYS_TIME is not
defined:
  building src/crypto/hcrypto
    src/external/heimdal/hcrypto/camellia.c
      include/roken.h:803:58: error: ‘struct tm’ declared inside

Update autoheader.m4 so a define for TIME_WITH_SYS_TIME is created. This
avoids modifying the external heimdal/roken code.

Change-Id: If4d6c0650aac617f535b35f81994b54a3b8ac021
Reviewed-on: https://gerrit.openafs.org/14838
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

acinclude.m4
configure-libafs.ac
configure.ac
src/cf/autoheader.m4
src/cf/headers.m4
src/cf/lex.m4

index 676532e..209fa34 100644 (file)
@@ -58,7 +58,6 @@ OPENAFS_C_ATTRIBUTE
 OPENAFS_C_PRAGMA
 OPENAFS_MORE_ROKEN_CHECKS
 OPENAFS_NETDB_CHECKS
-AC_HEADER_TIME
 OPENAFS_ROKEN_HEADERS
 OPENAFS_BSWAP_CHECKS
 OPENAFS_PIO_CHECKS
index af6fba7..37601a6 100644 (file)
@@ -3,7 +3,7 @@ AC_INIT([OpenAFS],[m4_esyscmd(build-tools/git-version .)],[openafs-bugs@openafs.
 AC_CONFIG_AUX_DIR([build-tools])
 AC_CONFIG_SRCDIR([src/libafs/Makefile.common.in])
 
-AC_CONFIG_HEADER([src/config/afsconfig.h])
+AC_CONFIG_HEADERS([src/config/afsconfig.h])
 MACOS_VERSION=1.9.1
 
 AC_SUBST([MACOS_VERSION])
index 139ed52..937c6a9 100644 (file)
@@ -4,7 +4,7 @@ AC_CONFIG_AUX_DIR([build-tools])
 AC_CONFIG_MACRO_DIR([src/cf])
 AC_CONFIG_SRCDIR([src/config/stds.h])
 
-AC_CONFIG_HEADER([src/config/afsconfig.h])
+AC_CONFIG_HEADERS([src/config/afsconfig.h])
 MACOS_VERSION=1.9.1
 
 AC_SUBST([MACOS_VERSION])
index 6d9d54a..681817f 100644 (file)
@@ -63,5 +63,13 @@ AC_DEFUN([OPENAFS_AUTOHEADER_BOTTOM],[
 #if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
 # include "redhat-fix.h"
 #endif
+
+/*
+ * AC_HEADER_TIME, which set TIME_WITH_SYS_TIME, has been marked as obsolete
+ * prior to autoconf 2.64 and autoconf 2.70 flags its use with a warning.
+ * However the external roken code still relies on the definition.
+ */
+#define TIME_WITH_SYS_TIME 1
+
 #endif /* __AFSCONFIG_H */])
 ])
index af4a4dd..889373a 100644 (file)
@@ -1,6 +1,5 @@
 AC_DEFUN([OPENAFS_HEADER_CHECKS],[
 dnl checks for header files.
-AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
 AC_HEADER_DIRENT
 AC_CHECK_HEADERS([ \
index 938b108..fd49089 100644 (file)
@@ -1,5 +1,5 @@
 AC_DEFUN([OPENAFS_LEX],[
-AC_PROG_LEX
+AC_PROG_LEX([noyywrap])
 dnl if we are flex, be lex-compatible
 OPENAFS_LEX_IS_FLEX([AC_SUBST([LEX], ["$LEX -l"])])
 ])