GNU autoconf-2.70 released
([Development] Dec 8, 2020 23:01 UTC (Tue) (ris))
- Reference: 0000839395
- News link: https://lwn.net/Articles/839395
- Source link:
GNU Autoconf 2.70 is out. " Noteworthy changes include support for the 2011 revisions of the C and C++ standards, support for reproducible builds, improved support for cross-compilation, improved compatibility with current compilers and shell utilities, more efficient generated shell code, and many bug fixes. " See [1]this article for more information on what has been happening with Autoconf.
From :
zackw-AT-panix.com
To :
info-gnu-AT-gnu.org, autoconf-AT-gnu.org
Subject :
autoconf-2.70 released [stable]
Date :
Tue, 08 Dec 2020 14:14:30 -0500
Message-ID :
<4Cr8xf5THLzcbc@panix1.panix.com>
Cc :
bug-autoconf-AT-gnu.org, autotools-announce-AT-gnu.org
Archive-link :
[2]Article
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
We are pleased to announce stable release 2.70 of GNU Autoconf.
This release includes eight years of development work since the
previous release, 2.69. Noteworthy changes include support for the
2011 revisions of the C and C++ standards, support for reproducible
builds, improved support for cross-compilation, improved compatibility
with current compilers and shell utilities, more efficient generated
shell code, and many bug fixes. See below for a detailed list of
changes since the previous version, 2.69, as summarized by the NEWS
file.
Unfortunately, we were not able to maintain perfect backward
compatibility with existing Autoconf scripts. Caution is advised when
upgrading. The list of changes, below, includes detailed explanations
and advice for all of the compatibility problems we know about.
Please report bugs and problems with this release to the Savannah bug
tracker:
https://savannah.gnu.org/support/?func=additem&group=...
Please also send general comments and feedback to .
We would like to thank everyone who has contributed patches, reported
problems, and helped testing Autoconf in the past decade.
- -*-*-*-
Here are the compressed sources:
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.gz (2.0MB)
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.xz (1.3MB)
Here are the GPG detached signatures[*]:
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.gz.sig
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify autoconf-2.70.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 91FCC32B6769AA64
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Automake 1.16.3
- -*-*-*-
* Noteworthy changes in release 2.70 (2020-12-08) [stable]
** Backward incompatibilities:
*** Warnings about obsolete constructs are now on by default.
These warnings can be turned off with ‘-Wno-obsolete’.
Many of these warnings advise maintainers to run autoupdate.
Be aware that autoupdate cannot solve all backward compatibility
problems, and cannot completely solve all of the problems it does
address. A configure script edited by autoupdate is likely to
need further manual fix-ups.
*** Many macros have become pickier about argument quotation.
If you get a shell syntax error from your generated configure
script, or seemingly impossible misbehavior (e.g. entire blocks of
the configure script not getting executed), check first that all
macro arguments are properly quoted. The “M4 Quotation” section of
the manual explains how to quote macro arguments properly.
It is unfortunately not possible for autoupdate to correct
quotation errors.
*** Many macros no longer AC_REQUIRE as many other macros as they used to.
This can expose several classes of latent bugs. These are the ones
we know about:
- Make sure to explicitly invoke all of the macros that set result
variables used later in the configure script, or in generated
Makefiles.
- Autoconf macros that use AC_REQUIRE are not safe to use in shell
control-flow constructs that appear outside of macros defined by
AC_DEFUN. Use AS_IF, AS_CASE, etc. instead. (See the
“Prerequisite Macros” section of the manual for details.)
The set of macros that use AC_REQUIRE internally may change from
release to release. The only macros that are guaranteed *not* to
use AC_REQUIRE are the macros for acting on the results of a
test: AC_DEFINE, AC_SUBST, AC_MSG_*, AC_CACHE_CHECK, etc.
- AC_REQUIRE cannot be applied to macros that need to be used with
arguments. Instead, invoke the macro normally, with its arguments.
*** More macros use config.sub and config.guess internally.
As a consequence of improved support for cross compilation (see below),
more macros now use the auxiliary scripts ‘config.sub’ and ‘config.guess’.
If you use any of the affected macros, these scripts must be available
when your configure script is run, even if you have no intention of
ever cross-compiling your program.
autoreconf will issue an error if any auxiliary scripts are needed but
cannot be found. (It is not currently possible to make autoconf
itself issue this error.)
‘autoreconf --install’ will add ‘config.sub’, ‘config.guess’, and
‘install-sh’ to your source tree if they are needed. If you are
using Automake, scripts added to your tree by ‘autoreconf --install’
will automatically be included in the tarball produced by ‘make dist’;
otherwise, you will need to arrange for them to be distributed
yourself.
See the “Input” section of the manual for more detail, including
where to get the auxiliary scripts that may be needed by autoconf macros.
*** Setting CC to a C++ compiler is no longer supported.
The C and C++ languages have diverged enough that we can no longer
guarantee that test C programs will be processed as intended by a
C++ compiler. In this release, configure will proceed anyway, but
many test results will be incorrect. In a future release, we may
make AC_PROG_CC error out if it detects that CC is a C++ compiler.
See the “Language Choice” section of the manual for instructions on
how to write configure scripts for C++ programs, and for programs
with code in more than one language.
*** Running configure tests with warnings promoted to errors is not supported.
For instance, setting ‘CC="gcc -Werror"’ on the configure command
line, or adding -Werror to CFLAGS early in the configure script when
the compiler recognizes this option, is very likely to cause
subsequent tests to fail.
This has never been guaranteed to work; the code generated by
AC_CHECK_FUNC, for instance, is incorrect by a strict reading of the
original 1989 C standard, and has been ever since that macro was
introduced. Problems are more likely with newer, pickier compilers.
To enable compiler warnings and/or warnings-as-errors mode for your
own code, we currently recommend a dedicated Makefile variable
(e.g. ‘WARN_CFLAGS’) that is set by AC_SUBST when appropriate.
The Gnulib ‘warnings’ and ‘manywarnings’ modules can help with this.
We plan to add core support for probing for useful sets of compiler
warnings in a future release.
*** Including confdefs.h manually may cause test failures.
This has never been necessary; confdefs.h is automatically included
at the beginning of all test programs (by AC_LANG_SOURCE). Because
of the way confdefs.h is generated and used, it is not practical to
give it a multiple inclusion guard. Therefore, if you include it
yourself, all of its definitions will be scanned twice.
Historically this has not been a problem, because confdefs.h only
makes macro definitions, and the C standard allows redefinitions
of macros as long as they’re exactly the same, but newer, pickier
compilers may complain anyway (see for instance GCC bug 97998).
*** Older versions of automake and aclocal (
[1] https://lwn.net/Articles/834682/
[2] https://www.mail-archive.com/bug-autoconf@gnu.org/msg04730.html
From :
zackw-AT-panix.com
To :
info-gnu-AT-gnu.org, autoconf-AT-gnu.org
Subject :
autoconf-2.70 released [stable]
Date :
Tue, 08 Dec 2020 14:14:30 -0500
Message-ID :
<4Cr8xf5THLzcbc@panix1.panix.com>
Cc :
bug-autoconf-AT-gnu.org, autotools-announce-AT-gnu.org
Archive-link :
[2]Article
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
We are pleased to announce stable release 2.70 of GNU Autoconf.
This release includes eight years of development work since the
previous release, 2.69. Noteworthy changes include support for the
2011 revisions of the C and C++ standards, support for reproducible
builds, improved support for cross-compilation, improved compatibility
with current compilers and shell utilities, more efficient generated
shell code, and many bug fixes. See below for a detailed list of
changes since the previous version, 2.69, as summarized by the NEWS
file.
Unfortunately, we were not able to maintain perfect backward
compatibility with existing Autoconf scripts. Caution is advised when
upgrading. The list of changes, below, includes detailed explanations
and advice for all of the compatibility problems we know about.
Please report bugs and problems with this release to the Savannah bug
tracker:
https://savannah.gnu.org/support/?func=additem&group=...
Please also send general comments and feedback to .
We would like to thank everyone who has contributed patches, reported
problems, and helped testing Autoconf in the past decade.
- -*-*-*-
Here are the compressed sources:
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.gz (2.0MB)
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.xz (1.3MB)
Here are the GPG detached signatures[*]:
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.gz.sig
https://ftpmirror.gnu.org/autoconf/autoconf-2.70.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify autoconf-2.70.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 91FCC32B6769AA64
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Automake 1.16.3
- -*-*-*-
* Noteworthy changes in release 2.70 (2020-12-08) [stable]
** Backward incompatibilities:
*** Warnings about obsolete constructs are now on by default.
These warnings can be turned off with ‘-Wno-obsolete’.
Many of these warnings advise maintainers to run autoupdate.
Be aware that autoupdate cannot solve all backward compatibility
problems, and cannot completely solve all of the problems it does
address. A configure script edited by autoupdate is likely to
need further manual fix-ups.
*** Many macros have become pickier about argument quotation.
If you get a shell syntax error from your generated configure
script, or seemingly impossible misbehavior (e.g. entire blocks of
the configure script not getting executed), check first that all
macro arguments are properly quoted. The “M4 Quotation” section of
the manual explains how to quote macro arguments properly.
It is unfortunately not possible for autoupdate to correct
quotation errors.
*** Many macros no longer AC_REQUIRE as many other macros as they used to.
This can expose several classes of latent bugs. These are the ones
we know about:
- Make sure to explicitly invoke all of the macros that set result
variables used later in the configure script, or in generated
Makefiles.
- Autoconf macros that use AC_REQUIRE are not safe to use in shell
control-flow constructs that appear outside of macros defined by
AC_DEFUN. Use AS_IF, AS_CASE, etc. instead. (See the
“Prerequisite Macros” section of the manual for details.)
The set of macros that use AC_REQUIRE internally may change from
release to release. The only macros that are guaranteed *not* to
use AC_REQUIRE are the macros for acting on the results of a
test: AC_DEFINE, AC_SUBST, AC_MSG_*, AC_CACHE_CHECK, etc.
- AC_REQUIRE cannot be applied to macros that need to be used with
arguments. Instead, invoke the macro normally, with its arguments.
*** More macros use config.sub and config.guess internally.
As a consequence of improved support for cross compilation (see below),
more macros now use the auxiliary scripts ‘config.sub’ and ‘config.guess’.
If you use any of the affected macros, these scripts must be available
when your configure script is run, even if you have no intention of
ever cross-compiling your program.
autoreconf will issue an error if any auxiliary scripts are needed but
cannot be found. (It is not currently possible to make autoconf
itself issue this error.)
‘autoreconf --install’ will add ‘config.sub’, ‘config.guess’, and
‘install-sh’ to your source tree if they are needed. If you are
using Automake, scripts added to your tree by ‘autoreconf --install’
will automatically be included in the tarball produced by ‘make dist’;
otherwise, you will need to arrange for them to be distributed
yourself.
See the “Input” section of the manual for more detail, including
where to get the auxiliary scripts that may be needed by autoconf macros.
*** Setting CC to a C++ compiler is no longer supported.
The C and C++ languages have diverged enough that we can no longer
guarantee that test C programs will be processed as intended by a
C++ compiler. In this release, configure will proceed anyway, but
many test results will be incorrect. In a future release, we may
make AC_PROG_CC error out if it detects that CC is a C++ compiler.
See the “Language Choice” section of the manual for instructions on
how to write configure scripts for C++ programs, and for programs
with code in more than one language.
*** Running configure tests with warnings promoted to errors is not supported.
For instance, setting ‘CC="gcc -Werror"’ on the configure command
line, or adding -Werror to CFLAGS early in the configure script when
the compiler recognizes this option, is very likely to cause
subsequent tests to fail.
This has never been guaranteed to work; the code generated by
AC_CHECK_FUNC, for instance, is incorrect by a strict reading of the
original 1989 C standard, and has been ever since that macro was
introduced. Problems are more likely with newer, pickier compilers.
To enable compiler warnings and/or warnings-as-errors mode for your
own code, we currently recommend a dedicated Makefile variable
(e.g. ‘WARN_CFLAGS’) that is set by AC_SUBST when appropriate.
The Gnulib ‘warnings’ and ‘manywarnings’ modules can help with this.
We plan to add core support for probing for useful sets of compiler
warnings in a future release.
*** Including confdefs.h manually may cause test failures.
This has never been necessary; confdefs.h is automatically included
at the beginning of all test programs (by AC_LANG_SOURCE). Because
of the way confdefs.h is generated and used, it is not practical to
give it a multiple inclusion guard. Therefore, if you include it
yourself, all of its definitions will be scanned twice.
Historically this has not been a problem, because confdefs.h only
makes macro definitions, and the C standard allows redefinitions
of macros as long as they’re exactly the same, but newer, pickier
compilers may complain anyway (see for instance GCC bug 97998).
*** Older versions of automake and aclocal (
[1] https://lwn.net/Articles/834682/
[2] https://www.mail-archive.com/bug-autoconf@gnu.org/msg04730.html