We're overdue for a new release, so here's a snapshot in preparation for that, which I want to call 2.73 (skipping 2.72). There has never been an autoconf-2.72 release, yet `git describe` now prints 2.72c and has been printing strings like v2.72a-92-g8db00aa8 for years. If you maintain a package that uses autoconf and can make a release soon, please install this and use it to bootstrap its configs. We'd love to expose any issues before we make the release. I've already done that with grep-3.10, so far without incident. Thanks to the many people who have contributed over the years, especially to Paul Eggert and Zack Weinberg, who have done a disproportionate amount of the work. autoconf snapshot: https://meyering.net/ac/autoconf-ss.tar.xz 1.4 MB https://meyering.net/ac/autoconf-ss.tar.xz.sig https://meyering.net/ac/autoconf-2.72c.tar.xz NEWS ===================================== ** Backward incompatibilities *** Autoconf now requires perl 5.10 (2007) or later. Generated 'configure' scripts continue to run without perl. *** Autoconf now requires GNU M4 1.4.8 (2006) or later. Generated 'configure' scripts continue to run without M4. Use of GNU M4 1.4.16 or later is recommended, as all earlier versions are known to have had serious bugs in the text-processing builtins on some, but not all, operating systems. Autoconf’s own configure script will attempt to find a version of M4 that is not affected by these bugs. Note: Autoconf 2.70 and 2.71 include code that malfunctions with M4 1.4.6 or 1.4.7. However, the only effect of the malfunction is that you will get a confusing error message if you run autoconf on a configure.ac that neglects to use AC_INIT or AC_OUTPUT. *** m4sh diversions like BINSH have been renumbered. This matters only for uses that, contrary to the documentation and despite warnings, use m4_divert with numbered diversions. ** New features *** New macro AC_SYS_YEAR2038. This causes 'configure' to widen time_t if possible on systems where time_t by default cannot represent file and other timestamps after January 2038. Widening is possible only on 32-bit GNU/Linux x86 and ARM systems with glibc 2.34 or later. To prevent widening, configure with --disable-year2038. This macro also has the effects as AC_SYS_LARGEFILE, because in practice time_t cannot be widened without large-file sypport. Application and library builders should take care that packages configured with --enable-year2038 and --disable-year2038 options are configured consistently, to avoid breaking binary compatibility. This is similar to longstanding consistency requirements with --enable-largefile and --disable-largefile. *** AC_SYS_LARGEFILE now optionally arranges to widen time_t. It now acts like AC_SYS_YEAR2038, except 'configure' defaults to --disable-year2038 unless AC_SYS_YEAR2038 is also present. As with AC_SYS_YEAR2038, application and library builders should configure consistently. *** New macros AC_SYS_LARGEFILE_REQUIRED and AC_SYS_YEAR2038_REQUIRED. These act like AC_SYS_LARGEFILE and AC_SYS_YEAR2038 respectively, except that 'configure' fails if the target lacks support for large files and for post-2038 timestamps, respectively. As with AC_SYS_YEAR2038, application and library builders should configure consistently. *** AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F extensions by defining __STDC_WANT_IEC_60559_EXT__. ** Obsolete features and new warnings *** Autoconf now quotes 'like this' instead of `like this'. Autoconf’s diagnostics now follow current GNU coding standards, which say that diagnostics in the C locale should quote 'like this' with plain apostrophes instead of the older GNU style `like this' with grave accent and apostrophe. ** Notable bug fixes *** Autoconf caches now use finer-grained timestamps. Autoconf now uses floating-point numbers rather than integers to represent cache file timestamps, thus avoiding some problems where automake incorrectly decides not to regenerate stale caches. *** AC_HEADER_STDBOOL, AC_CHECK_HEADER_STDBOOL are obsolescent and less picky. These macros are now obsolescent, as programs can simply include stdbool.h unconditionally. If you use these macros, they now accept a stdbool.h that exists but does nothing, so long as ‘bool’, ‘true’, and ‘false’ work anyway. This is for compatibility with C23 and with C++. *** AC_PROG_MKDIR_P now falls back on plain 'mkdir -p'. When AC_PROG_MKDIR_P cannot find a mkdir implementation that is known to lack race condition bugs, it now falls back on 'mkdir -p' instead of falling back on a relative path to install-sh, as the relative paths now seem to be a more important problem than the problems of ancient mkdir implementations with race condition bugs. See <https://savannah.gnu.org/support/?110740>. The only ancient mkdir still supported is Solaris 10 /usr/bin/mkdir, and for that platform AC_PROG_MKDIR_P falls back on /opt/sfw/bin/mkdir which should work if it is installed; if not, you should avoid parallel 'make' on that platform. ===================================== Changes in autoconf since v2.72b: Andreas K. Hüttel (1): Fix bug when autom4te updates too quickly Ben Elliston (1): update HACKING file Bruno Haible (3): doc: Document another portability problem of 'od'. doc: Document how to deal with missing 'join'. Fix misspelled NEWS entry Emanuele Giaquinta (2): _AC_PROG_CXX_STDCXX_EDITION_TRY: fix typo in variable name doc: fix typo in variable name Eric Blake (4): maint: Add names to THANKS maint: ensure autoconf-latest.* links stay up-to-date maint: advertise GNU in README tests: typo fix Jim Meyering (5): fix a typo tests: avoid test failures due to new EGREP_TRADITIONAL AC_FUNC_ALLOCA: fix a misplaced (now fatal) closing "fi" build: run "make fetch", which updated these: tests: avoid an unwarranted test failure Keno Fischer (1): fortran.m4: Filter mingw intrinsic libraries Marshall Ward (1): Fortran Cray pointer macro support Mike Frysinger (1): add new AC_PROG_AR helper Paul Eggert (57): doc: modernize grep discussion Document unquoted here-documents better Autoconf now quotes 'like this' instead of `like this' Port test to next m4 version Modernize discussion of integer overflow Port AC_LANG_CALL(C) to C++ Add commentary for Time::HiRes patches fortran: *mingw* → mingw* in previous patch doc: update ‘find’ info doc: document BusyBox sed w bug Clarify documentation of number format Fix unwanted globbing of sed script doc: update Manthey name+email Fix bug with AS_IF and ‘set -e’ Work around memory-leak false alarms Document AC_RUN_IFELSE([], ...) etc. Work around AT&T 3b1 bug make update-copyright Fix bug: AC_EGREP_CPP with leading '-' in pattern Improve regex documentation Refactor recent AC_FUNC_ALLOCA fix Avoid \] in BREs and EREs Port _AC_COMPILER_EXEEXT to IBM z/OS Unix Handle z/OS Unix ‘set’ output basename and dirname are portable now Port AC_C_BIGENDIAN to cross gcc -std=c11 -flto Fix compilation errors in 32-bit C++ mode on HP-UX 11/ia64 AC_SYS_LARGEFILE now widens time_t if possible Port AC_CHECK_HEADER_STDBOOL to C23 Improve doc for AC_SYS_LARGEFILE etc. Remove obsolete Solaris info from manual Port to compilers that moan about K&R func decls Port to GNU make 4.4 Allow users to clear BINSH Improve comment in previous change Mention latest change in NEWS Update M4 version numbers in documentation MKDIR_P now falls back on mkdir -p Warn about TMPDIR Modernize and regularize doc for C89 etc. Cater better to underquoted callers AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F Use UTF-8 and spell "François" correctly Document C23 <stdckdint.h> Move NEWS entry to better location Omit just-added *_REQUIRED macros Restore *_REQUIRED macros Improve OS version commentary make fetch make update-copyright spelling fixes Restore lib/Autom4te/FileUtils.pm local fixes Improve year-2038 documentation make fetch Clarify NEWS Update doc slightly for C23. doc: improve AS_IF doc Sergei Trofimovich (1): autoconf: store autom4te request keys in sorted order Todd C. Miller (1): fix AC_CHECK_HEADER_STDBOOL regression Xi Ruoyao (1): Fix testsuite failures with bash 5.2. Zack Weinberg (27): maint: add outline for future NEWS _AC_PROG_CC_C99: fix typo (#110396) autom4te: correct error message when we can’t create autom4te.cache. Use -fno-builtin, not -Werror, in AC_CHECK_DECLS (#110400) Restore compatibility with older std-gnu11.m4. autom4te: always update the output file, even if it hasn’t changed autoreconf: don’t error out when AM_GNU_GETTEXT is used alone. make update-copyright make fetch trunk post-release administrivia Generate version.m4 from config.status, in lib/ not lib/m4sugar/. Rewrite bin/autoconf in Perl. Add a bootstrap script like Automake has. Update .gitignore for move of version.m4. testsuite: Handle `balanced ASCII quotes' correctly in m4 errors. Require GNU M4 1.4.8 or later. Require Perl 5.10.0 or later. make fetch Remove ancient backward compatibility code from m4/m4.m4. Make help-extract.pl work with Perl 5.10.x. Fix testsuite failures on Darwin (aka macOS). More fixes for compilers that reject K&R function definitions. AC_SYS_LARGEFILE: Don’t enlarge time_t by default Fix ‘make syntax-check’ complaints. Skip all Autotest parallelism tests if using Guix’s bash. bootstrap: Use an absolute path for ACBOOTDIR. Add experimental manifest.scm for testing Autoconf under guix shell.