Obviously, I didn't fully test commit f35498d.
* doc/autoconf.texi (Limitations of Builtins): Add a comma.
Signed-off-by: Eric Blake <eblake@redhat.com>
At 2.68b, I asked whether anyone would miss .gz and .bz2 formats.
Consensus was overwhelming that .gz still holds a place in people's
hearts, in spite of .xz compressing to smaller files, but no one
was able to make a convincing argument for .bz2.
* configure.ac (AM_INIT_AUTOMAKE): Drop bzip2; xz wins hands down.
Signed-off-by: Eric Blake <eblake@redhat.com>
The files in lib/Autom4te/ are intentionally not synced at this
point, since this recent Automake patch:
https://lists.gnu.org/archive/html/automake-patches/2012-03/msg00111.html
was buggy regarding '-' as stdout, and also exposes some latent
bugs in autoconf where we use raw 'open' instead of XFile::open.
* build-aux/announce-gen: Resync via 'make fetch'.
* build-aux/config.sub: Likewise.
* build-aux/git-version-gen: Likewise.
* build-aux/gnupload: Likewise.
* build-aux/move-if-change: Likewise.
* build-aux/texinfo.tex: Likewise.
* doc/standards.texi: Likewise.
* maint.mk: Likewise.
Upstream gnulib maint.mk improvements caught a few issues we
should fix, as well as a few issues in files we copy from
other sources that we will just ignore here.
* doc/autoconf.texi (Generic Programs, Special Shell Variables)
(Limitations of Builtins): Use references correctly.
* cfg.mk
(exclude_file_name_regexp--sc_prohibit_undesirable_word_seq)
(exclude_file_name_regexp--sc_useless_cpp_parens): Add exemptions.
On bi-arch systems (such as x86 / x86_64) it is often necessary to pass
the --host option together with an appropriate value for CC. But this
triggers a warning:
$ ./configure --host=i686-pc-linux-gnu CC="gcc -m32 -march=i586"
configure: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used
..
This warning was introduced on 2000-06-30, in commit
<http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=cb2e761b8e1181f97e8e09d85526bd22078433db>
with the remark "Re-enable the old behavior of --host and --build."
This warning was meant to warn users about a changed semantics of
--build and --host. This change is now 12 years in the past; users
have had enough time to learn it. I therefore suggest to remove the
warning.
I've done lots of cross and bi-arch compilations in the last 10 years,
all with --host and without --build, and have never observed a problem
with it, except for the warning. Simply relying on config.guess is sufficient.
* lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Don't warn if --host
given without --build.
Signed-off-by: Eric Blake <eblake@redhat.com>
* doc/autoconf.texi (Runtime): Mention the effect of the cross-
compilation mode on AC_RUN_IFELSE.
(Specifying Target Triplets): Fix description of --host's effects.
(Hosts and Cross-Compilation): Remove incorrect statement about
--host's effects.
Signed-off-by: Eric Blake <eblake@redhat.com>
* lib/Autom4te/General.pm: This file is *not* used by Automake;
adjust comments accordingly.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* tests/local.at (AT_CHECK_ENV): Don't copy the buggy grep's
diagnostics to stderr, as that causes AT_CHECK to fail. They can
be found in the stderr-* files if this is needed for debugging.
This reduces the implicit requirement from 5.6.2 back to 5.6,
while raising the explicit requirement to match the actual code.
* configure.ac (PERL): Fail up front if perl is too old.
* NEWS: Document this.
* README: Likewise.
* README-hacking: Likewise.
* lib/Autom4te/ChannelDefs.pm: Bump requirement.
* lib/Autom4te/General.pm: Relax requirement.
Recent ksh is noisy:
$ ksh -nc '``'; echo $?
ksh: warning: line 1: `...` obsolete, use $(...)
0
* tests/local.at (AT_CHECK_SHELL_SYNTAX): Ignore noisy ksh on.
Reported by Martin Zaun.
Signed-off-by: Eric Blake <eblake@redhat.com>
Since the perl version required in Automake::Getopt has been
recently lowered from 5.6.2 to 5.6.0, this change has the nice
effect of making autoconf compatible again with all perls in
the 5.6.x release series.
* maint.mk: Resync via 'make fetch'.
* lib/Autom4te/Channels.pm: Likewise.
* lib/Autom4te/Configure_ac.pm: Likewise.
* lib/Autom4te/FileUtils.pm: Likewise.
* lib/Autom4te/Getopt.pm: Likewise.
* lib/Autom4te/XFile.pm: Likewise.
The module Automake::Struct has been removed in automake master
branch (with yesterday's commit v1.11-2055-g74a7f49 "maint: drop
'Automake::Struct' module"): since Automake now requires Perl 5.6,
that module has become obsolete, being basically just a backport
of Perl 5.6's 'Class::Struct' to Perl 5.5. With this change, we
follow suite in Autoconf, which syncs some of its internal modules
with Automake.
* lib/Autom4te/Struct.pm: Delete.
* lib/Autom4te/Makefile.am (dist_perllib_DATA): Don't list it
anymore.
* cfg.mk: Don't sync it with the Automake repository anymore.
* lib/Autom4te/Request.pm: Use 'Class::Struct' instead of
'Autom4te::Struct'.
On Solaris 10, the /usr/xpg4/bin/sh shell seems unable to execute
a shell script named 'script':
$ touch script
$ /bin/sh script; echo status: $? # As expected.
status: 0
$ /usr/xpg4/bin/sh script; echo status: $? # Weirdness follows.
/usr/xpg4/bin/sh: script: cannot execute
status: 1
This was causing a spurious testsuite failure for users which have
/usr/xpg4/bin in $PATH before /bin and /usr/bin. Fix that.
* tests/m4sh.at (Configure re-execs self with CONFIG_SHELL): Rename
the m4sh-produced script to 'script2', to avoid the just-described
issue.
* tests/m4sh.at (AS@&t@_TR_SH and AS@&t@_TR_CPP): Do not assume
that "wc -l" outputs only digits; on Solaris 8 it also outputs
blanks and POSIX allows this.
* tests/m4sh.at (AS@&t@_EXECUTABLE): Treat any nonzero exit
status as failure. This is needed for Solaris 8 /bin/sh,
where executing a nonexecutable file causes the shell
to say the file had exit status 1.
It turns out our guard against infinite recursion wasn't good
enough when shells without $LINENO support were involved, since
the creation-and-sourcing of configure.lineno broke the guard's
expectations. Reports by Tim Rice and Paul Eggert.
* lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Export '_as_can_reexec'
to "no" before sourcing the just-created configure.lineno.
It's been more than a year since 2.68; time for a beta release
to shake out any last minute bugs, before a release of 2.69
in the near future.
* NEWS: Mention the release.
* HACKING: Update some instructions.
Signed-off-by: Eric Blake <eblake@redhat.com>
In the process of making it public, factor it into a reusable
function. This makes constructs like AC_CHECK_PROGRAM smaller,
as well as making libtool's naughty use of $as_executable_p safer.
* lib/m4sugar/m4sh.m4 (_AS_TEST_PREPARE): Add a shell function.
(AS_EXECUTABLE_P): Forward to shell function.
* doc/autoconf.texi (Common Shell Constructs): Document it.
* NEWS: Mention this.
Signed-off-by: Eric Blake <eblake@redhat.com>
4.3BSD is no longer a reasonable portability target; and we are
pretty sure that these days we can find at least one shell on any
platform that supports 'test -x'. Drop a horribly unsafe use of
eval as a result. :)
Libtool still uses $as_executable_p without so much as calling
either AS_TEST_X or AS_EXECUTABLE_P; even though the latter has
existed, although undocumented, since at least 2.59; furthermore,
libtool uses it in a context where filtering out directories
would have been desirable. Shame on them.
* lib/m4sugar/m4sh.m4 (_AS_TEST_X_WORKS): New probe.
(AS_SHELL_SANITIZE, AS_INIT): Use it in shell searching.
(AS_TEST_X, AS_EXECUTABLE_P): Simplify.
Signed-off-by: Eric Blake <eblake@redhat.com>
4.3BSD is museum-ware now, so we can assume that test -x exists;
however, we still can't assume that it always does what we want.
* doc/autoconf.texi (Limitations of Builtins) <test (files)>:
Treat 'test -x' as mostly portable, but mention problems with
root user, ACLs, and TOCTTOU races.
Signed-off-by: Eric Blake <eblake@redhat.com>
* tests/erlang.at, tests/go.at, tests/statesave.m4:
Replace FSF snail mail addresses with URLs, as per GNU coding
standards, and for consistency with other tests.
This test has been failing since commit 5285ea8c (sadly, since
last July; thankfully, unreleased).
* tests/m4sugar.at (m4@&t@_require: nested): Fix test.
Signed-off-by: Eric Blake <eblake@redhat.com>
Many of the .x-sc_* exemptions were no long necessary. Remove those
files and instead, provide exemptions via variable definitions in
cfg.mk to address the few remaining exceptions.
* .x-sc_prohibit_atoi_atof: Remove file.
* .x-sc_space_tab: Likewise.
* .x-sc_sun_os_names: Likewise.
* .x-sc_trailing_blank: Likewise.
* .x-sc_two_space_separator_in_usage: Likewise.
* .x-sc_useless_cpp_parens: Likewise.
* cfg.mk: Add minimal exemptions.
* cfg.mk: Add minimal exemptions.
* doc/standards.texi (Standard C): Address the sole useless-cpp-parens
violation in this file:
-#if defined (__STDC__) || defined (WINDOWSNT)
+#if defined __STDC__ || defined WINDOWSNT
With that, the only remaining offender is config.guess, whose name
is now listed in cfg.mk.
Suggested by Eric Blake.
* cfg.mk (local-checks-to-skip): List failing tests, so we skip
them, for now.
(old_NEWS_hash): Update.
* doc/autoconf.texi: Per suggestion from Eric Blake, obfuscate
the first word of "Filesystem Hierarchy Standard" as File@/system
so it continues to render as one word, yet doesn't trigger the
syntax-check prohibition.
* cfg.mk (gnulib-update): Add them to the list.
* maint.mk: Update from gnulib.
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/useless-if-before-free: New file, from gnulib.
* doc/gnu-oids.texi: Update.
Some gnulib-related tools (most prominently, the gnulib-provided
'bootstrap' script) allow the user to define the position of his
gnulib's repository checkout through the use of the 'GNULIB_SRCDIR'
environment variable. We should do the same, for consistency and
to easily support slightly unusual layouts in developers' source
trees.
* cfg.mk (gnulib_dir): Define to "$GNULIB_SRCDIR" if that's set,
and to default value of "'$(abs_srcdir)'/../gnulib" otherwise.
Update comments.