News: 0000839395

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

GNU autoconf-2.70 released

([Development] Dec 8, 2020 23:01 UTC (Tue) (ris))


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

improperly oriented keyboard