Paul Eggert [Mon, 30 Apr 2007 17:08:07 +0000 (17:08 +0000)]
* lib/m4sugar/m4sh.m4 (_AS_SHELL_FN_SPY): Don't imply that
'configure' will fail if the shell lacks proper support for shell
functions. Suggested by RMS.
Paul Eggert [Sun, 29 Apr 2007 05:50:27 +0000 (05:50 +0000)]
* lib/autoconf/lang.m4 (_AC_COMPILER_EXEEXT_DEFAULT): Don't look
for a.* when searching for executables, as this prevents users
from having files like a.c. Problem reported by Ralf Wildenhues in:
http://lists.gnu.org/archive/html/autoconf-patches/2007-04/msg00029.html
This fixes a problem introduced on 2000-12-19.
Paul Eggert [Fri, 13 Apr 2007 07:52:57 +0000 (07:52 +0000)]
* NEWS: Document recent changes to AC_CHECK_ALIGNOF, AC_CHECK_SIZEOF,
AC_CHECK_TYPE, AC_CHECK_TYPES.
* doc/autoconf.texi (Generic types): C types must be type-names
(the C terminology), not type-ids (the C++ term). C++ types
must not be anonymous.
* lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW): Remove special case
for C++; this drops support for anonymous struct and union types,
which were problematic anyway.
* tests/semantics.at (AC_CHECK_HEADERS_NEW): Adjust test to work even
for C++.
* lib/autoconf/status.m4 (_AC_OUTPUT_LINK): Fix AC_CONFIG_LINKS
to prefer a link source from the build tree, if it exists.
Report by Pallav Gupta <pallavgupta@gmail.com>.
Paul Eggert [Thu, 12 Apr 2007 00:12:06 +0000 (00:12 +0000)]
* doc/autoconf.texi (Generic Types): Document the restrictions
on types imposed by AC_CHECK_TYPE, AC_CHECK_TYPES.
(Generic Compiler Characteristics): AC_CHECK_SIZEOF now works
with objects too. Document the restrictions on its use.
Document the restrictions on AC_CHECK_ALIGNOF's type argument.
* lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW):
For C, just try sizeof (TYPE) and sizeof ((TYPE)); if the former
works but the latter doesn't, then it's a valid type.
This lets people use function types and so forth.
For C++ there doesn't seem to be a simple solution, so leave it alone.
(AC_CHECK_SIZEOF): Allow argument to be a variable.
(AC_CHECK_SIZEOF, AC_CHECK_ALIGNOF): Don't bother to invoke
AC_CHECK_TYPE; that wasn't documented or necessary.
Paul Eggert [Thu, 29 Mar 2007 22:25:17 +0000 (22:25 +0000)]
* doc/autoconf.texi (Here-Documents, Limitations of Builtins):
(Limitations of Usual Tools): Don't say "older" if Solaris 10 by
default still has the problem. Problem reported by Bruce Korb.
Paul Eggert [Tue, 6 Mar 2007 07:30:17 +0000 (07:30 +0000)]
* doc/autoconf.texi (C Compiler): Warn that AC_C_BIGENDIAN
suggests AC_CONFIG_HEADERS.
* lib/autoconf/c.m4 (AC_C_BIGENDIAN): Warn if not using
AC_CONFIG_HEADERS. Problem reported by
Peter O'Gorman.
Paul Eggert [Thu, 1 Mar 2007 00:18:28 +0000 (00:18 +0000)]
* lib/autoconf/c.m4 (AC_C_BIGENDIAN): Fix typo "__LITLE_ENDIAN__".
Problem reported by Paolo Bonzini in:
http://lists.gnu.org/archive/html/autoconf-patches/2007-02/msg00024.html
* tests/semantics.at (AC_C_BIGENDIAN): Don't reject hosts that have
universal binaries. Problem reported by Elias Pipping.
Paul Eggert [Wed, 28 Feb 2007 00:03:33 +0000 (00:03 +0000)]
* NEWS: AC_C_BIGENDIAN now supports universal binaries a la Mac OS X.
* doc/autoconf.texi (C Compiler): Document this. There is a new
extra argument ACTION-IF-UNIVERSAL.
* lib/autoconf/c.m4 (AC_C_BIGENDIAN): Implement this.
Add support for Solaris-style _LITTLE_ENDIAN and _BIG_ENDIAN.
Reindent for sanity's sake.
Ralf Wildenhues [Tue, 13 Feb 2007 06:22:45 +0000 (06:22 +0000)]
* lib/autotest/general.m4 (AT_INIT): With --clean, return exit
status of rm so we know when it failed.
If cleaning of test dir failed before running the test, warn.
Output the line separator in verbose mode before the warning
to make clear the warning belongs to the following test.
Paul Eggert [Wed, 7 Feb 2007 17:45:37 +0000 (17:45 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Prefer \r to
an actual carriage return. Use "ac_cr" to contain the actual
carriage return.
* doc/autoconf.texi (Limitations of Usual Tools): Document problem
with traditional Awk and begin.
* tests/torture.at (Limitations of Builtins): Document the problem
with Bash 2.03 printf.
(Substitute and define special characters):
Remove trailing white space. Work around a bug in Solaris 8 /bin/bash.
Ralf Wildenhues [Tue, 6 Feb 2007 18:52:33 +0000 (18:52 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Redirect
input from /dev/null in awk test, so even Solaris /usr/bin/awk
will not wait for input with a script containing only a BEGIN
rule.
Eric Blake [Fri, 2 Feb 2007 14:07:38 +0000 (14:07 +0000)]
* m4/m4.m4 (AC_PROG_GNU_M4): Reject M4 1.4 through 1.4.4 as
broken.
* configure.ac: Update error message.
* NEWS: Note that M4 1.4.5 or later is now a hard dependency.
Reported by Gary Vaughan and Jim Meyering, and problem analyzed
by Stepan Kasal:
http://lists.gnu.org/archive/html/bug-autoconf/2006-11/msg00025.html
Paul Eggert [Mon, 29 Jan 2007 01:26:12 +0000 (01:26 +0000)]
* doc/autoconf.texi (Shellology): pdksh 5.2.14 is still the
latest version.
(Shell Substitutions): Note problems with @{var:=value} etc.
Add a new section for problems with @{#var} etc. Problem noted
by Ralf Wildenhues. See:
http://lists.gnu.org/archive/html/libtool-patches/2005-01/msg00157.html
Ralf Wildenhues [Tue, 23 Jan 2007 18:54:37 +0000 (18:54 +0000)]
* lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Also
AC_SUBST([MKDIR_P]), so that Automake < 1.10 will pick up its
trace, if a package uses AC_PROG_MKDIR_P explicitly. The actual
substitution will still be done by the special code.
Report by Jim Meyering.
Ralf Wildenhues [Fri, 19 Jan 2007 06:54:34 +0000 (06:54 +0000)]
* doc/autoconf.texi (Setting Output Variables): Mention that
all non-NUL characters are ok in substituted values.
* lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): Fix comment typo.
(_AC_OUTPUT_FILES_PREPARE): Test and use backslash escaping of
carriage return for $AWK, needed for BSD awk.
* tests/torture.at (Substitute and define special characters):
Test all 8 bit non-NUL characters.
Report against Automake by Patrick Welche.
Ralf Wildenhues [Thu, 11 Jan 2007 21:17:37 +0000 (21:17 +0000)]
* lib/autoconf/programs.m4 (AC_PROG_SED): When closing a pipe
early on the reader side, drop stderr of the input to avoid
`broken pipe' error output; this may happen even with shell
builtin `echo' of some bash versions. Reports by Ian Macdonald
<iamacdo@telkomsa.net> and Sam Sexton <Sam.Sexton@reuters.com>.
Ralf Wildenhues [Wed, 10 Jan 2007 17:59:57 +0000 (17:59 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Use newlines to
separate items of `ac_user_opts', to avoid long lines.
(_AC_INIT_PARSE_ENABLE2, _AC_ENABLE_IF_ACTION): Adjust.
Paul Eggert [Fri, 5 Jan 2007 23:44:26 +0000 (23:44 +0000)]
Fix some wording problems noted by Paolo Bonzini in:
http://lists.gnu.org/archive/html/autoconf-patches/2007-01/msg00077.html
* doc/autoconf.texi (Signed Overflow Examples): Give more
discussion about the allow_superuser_privileges example,
and change it a bit to make things clearer.
(Optimization and Wraparound): Clarify whether the compiler
will generate an infinite loop for the example derived from
Autoconf's mktime test.
(Signed Overflow Advice): Say that -ftrapv is meant for debugging.
Also, clarify unsigned multiplication overflow.
Paul Eggert [Wed, 3 Jan 2007 07:18:38 +0000 (07:18 +0000)]
* doc/autoconf.texi (Integer Overflow): Revised based on today's
feedback. The most important changes document what happens when
you convert an out-of-range value to a signed integer type, and
say that (sum < a) != (b < 0) reliably detects overflow when sum =
a + b.
Paul Eggert [Tue, 2 Jan 2007 23:06:07 +0000 (23:06 +0000)]
* doc/autoconf.texi (Integer Overflow): Greatly expand and
rewrite, taking notions from the recent discussion on the gcc and
autoconf mailing lists; please see
http://lists.gnu.org/archive/html/autoconf-patches/2006-12/msg00091.html
and follow the many links.
(Integer Overflow Basics, Signed Overflow Examples):
(Optimization and Wraparound, Signed Overflow Advice):
(Signed Integer Division): New sections.
Paul Eggert [Fri, 29 Dec 2006 06:44:41 +0000 (06:44 +0000)]
* lib/autoconf/general.m4 (AC_DEFINE_TRACE): Don't include
preprocessor macro arguments in traced name.
* doc/autoconf.texi (Defining symbols): Document longstanding
support for AC_DEFINE-ing macros with arguments, and document
behavior when the same variable has multiple AC_DEFINEs.
* lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Revert to the
old implementation which AC_DEFINEs the FC_FUNC and FC_FUNC_
macros directly, giving much shorter and simpler code.
Paul Eggert [Thu, 28 Dec 2006 23:20:18 +0000 (23:20 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Insert a
space before "$ac_configure_args" to prevent a 'config.status
--recheck' failure if ac_configure_args doesn't contain a leading
space. This works around a problem with the XEmacs configure.ac,
which uses the (undocumented) ac_configure_args variable
inconsistently with Autoconf.
Paul Eggert [Fri, 22 Dec 2006 08:42:17 +0000 (08:42 +0000)]
* lib/autoconf/functions.m4 (AC_FUNC_MKTIME):
Include <limits.h>, and use its INT_MAX to rewrite the
j loop so that it does not overflow 'int'. Problem reported by
Ralf Wildenhues in
<http://lists.gnu.org/archive/html/bug-gnulib/2006-12/msg00084.html>.
Play it safe by shifting left by 1 rather than multiplying by 2,
as GCC is less likely to optimize this away when the value
is signed (when it assumes overflow leads to undefined behavior).
Also, don't assume time_t uses two's complement.
Ralf Wildenhues [Wed, 20 Dec 2006 00:09:44 +0000 (00:09 +0000)]
* tests/torture.at (Substitute a 2000-byte string): Avoid using
a 10kB long (multi-line) string literal, OpenServer 5.0.7 ksh
dumps core on it. Report by Tim Rice.
Paul Eggert [Tue, 19 Dec 2006 05:41:18 +0000 (05:41 +0000)]
* lib/autoconf/general.m4 (AC_ARG_ENABLE): Print help about
--disable-option-checking to --help output even when
AC_PRESERVE_HELP_ORDER is not used.
(_AC_INIT_PARSE_ENABLE2): Print warnings using actual --enable or
--with argument, rather than argument with [-.] replaced by
underscores.
* NEWS: Fix typo in previous change; the news was in the
wrong section.
Paul Eggert [Mon, 18 Dec 2006 20:10:05 +0000 (20:10 +0000)]
* NEWS: Warnings are now generated by default for unknown
--enable-* and --with-* options.
* doc/autoconf.texi (Option Checking): Renamed from
(Configure Option Checking). Tighten up the wording a bit.
(External Software, Package Options): Cross-reference to Option
Checking, and use this to shorten our section.
* lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Prefer test -n
"$x" to test "x$foo" != x.
* lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
Don't warn if $enable_option_checking is "no".
* lib/autoconf/general.m4 (_AC_INIT_PARSE_ARGS): Initialize
ac_unrecognized_opts to the empty string.
Don't echo the unrecognized opts, as this might mishandle
backslashes or leading -.
(AC_PRESERVE_HELP_ORDER): Put the --disable-option-checking
usage next to the other --disable-FEATURE options in the
help string.
2006-12-18 Steven G. Johnson <stevenj@alum.mit.edu>
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS, _AC_INIT_PARSE_ARGS):
(_AC_INIT_PARSE_ENABLE2, _AC_INIT_HELP, _AC_ENABLE_IF):
Print warning for unrecognized --with and --enable options
(AC_DISABLE_OPTION_CHECKING): New macro to disable warnings.
* lib/autoconf/status.m4 (AC_CONFIG_SUBDIRS, _AC_OUTPUT_SUBDIRS):
Disable option checking when subdirs are configured.
(AC_OUTPUT): If warnings are enabled, print warning about
unrecognized --with and --enable options at the end of
the configure output (as well as at the beginning).
* doc/autoconf.texi (Option Checking): New node.
Document new option warning functionality.
Paul Eggert [Sat, 16 Dec 2006 05:38:41 +0000 (05:38 +0000)]
* lib/autoconf/functions.m4 (AC_FUNC_GETMNTENT):
Define HAVE_GETMNTENT to 1, not to the empty string.
Problem originally reported by Jochen Friedrich in
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403243>.
Paul Eggert [Fri, 15 Dec 2006 18:25:23 +0000 (18:25 +0000)]
This change prompted by a problem report by Andrey Simonenko in
<http://lists.gnu.org/archive/html/bug-autoconf/2006-12/msg00026.html>.
* doc/autoconf.texi (Defining Symbols): AC_DEFINE works for
object-like macros only, in the traditional portable character
set.
* lib/autoconf/general.m4 (AC_DEFINE_TRACE_LITERAL):
Warn about attempts to define things that are not identifiers.
* lib/autoconf/fortran.m4 (_AC_FC_WRAPPERS): Rewrite to avoid
awful hack that AC_DEFINEd macro names containing parentheses.
Paul Eggert [Tue, 12 Dec 2006 17:53:13 +0000 (17:53 +0000)]
* doc/autoconf.texi: Undo some of the 2006-12-10 change. It was
too drastic, even if Texinfo in theory requires it for info mode.
(config.status Invocation): Renamed back from Recreating a
Configuration).
(Obsolete config.status Use): Renamed back from Obsolete Recreation.
(Autoconf 2.13): Renamed back from 20th-century Autoconf 2.
Paul Eggert [Mon, 11 Dec 2006 06:40:13 +0000 (06:40 +0000)]
* BUGS: Remove mention of VPATH problem, since it's now documented
not to be a bug in the Autoconf build procedure itself, but rather
a problem with the proprietary `make' programs.
* doc/autoconf.texi (Build Directories): Add a cross reference
to VPATH and Make.
* build-aux/config.guess, build-aux/config.sub, build-aux/texinfo.tex:
* doc/standards.texi: Sync from gnulib.
Paul Eggert [Thu, 7 Dec 2006 06:39:40 +0000 (06:39 +0000)]
* lib/autoconf/c.m4 (_AC_PROG_CC_C89): Also try -xc99=all, for Sun
C 5.8 on Solaris 10. Using -xc99=all rather than -xc99 bypasses
the buggy -xc99 option of Forte Developer 7 C on Solaris 9.
Ralf Wildenhues [Thu, 7 Dec 2006 05:16:59 +0000 (05:16 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Drop the
`CEOF$ac_eof' special marker, the awk script cannot contain a
line matching `^CEOF', so this is not needed any more.
* tests/torture.at (Substitute a newline): Expose the `%!_!# '
special marker in the test.
Ralf Wildenhues [Tue, 5 Dec 2006 21:36:25 +0000 (21:36 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): When
creating the awk substitution script, handle one input line at a
time, so that the maximum length of a substituted (multi-line)
value is not limited by the size of the sed pattern space.
The trade-off is a slightly repetitive sed script.
* doc/autoconf.texi (Limitations of Usual Tools): Branch labels
can only have up to 7 characters, due to Solaris 10 /bin/sed.
* tests/torture.at (Substitute a 2000-byte string): Increase the
test with several long lines, they should not be caught by sed
limits any more.
Ralf Wildenhues [Tue, 5 Dec 2006 18:57:06 +0000 (18:57 +0000)]
* tests/torture.at (Substitute a 2000-byte string): Actually use
AC_PROG_AWK, so the last change works as intended.
(Substitute and define special characters): Likewise.
(Substitute a newline): Likewise.
Ralf Wildenhues [Tue, 5 Dec 2006 06:00:42 +0000 (06:00 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Use `$AWK'
instead of `awk' consistently.
(_AC_OUTPUT_CONFIG_STATUS): Initialize $AWK.
* tests/torture.at (Torturing config.status): Test both the
result of AC_PROG_AWK and plain awk.
(Substitute a 2000-byte string): Likewise.
(Substitute and define special characters): Likewise.
(Substitute a newline): Likewise.
Paul Eggert [Mon, 4 Dec 2006 23:54:25 +0000 (23:54 +0000)]
* lib/autoconf/functions.m4 (AC_FUNC_FSEEKO): Check that fseeko
can be assigned to a function pointer. Problem reported by
Peter Palfrader in <http://bugs.debian.org/401377>. Based on
part of a patch by Ralf Wildenhues in that same bug report.
Paul Eggert [Fri, 1 Dec 2006 19:21:03 +0000 (19:21 +0000)]
* lib/autoconf/c.m4 (AC_LANG_INT_SAVE): Avoid newline, to aid in
cross-compiling from cygwin to mingw.
Reported by Bob Rossi. This resurrects the 2000-11-30 patch to
aclang.m4, which was mistakenly removed in the 2001-09-17 patch
to lib/autoconf/c.m4.
Paul Eggert [Fri, 1 Dec 2006 18:32:34 +0000 (18:32 +0000)]
* lib/m4sugar/m4sh.m4 (_AS_ECHO_PREPARE): Use a longer test
string for more reliable failure. Wrap the entire test that
causes the broken Solaris printf to dump core, in a subshell,
so the segmentation fault message is reliably suppressed.
Fix shell expansion errors by using /usr/ucb/echo always;
avoid an error on systems without it by another subshell.
Avoid m4 expansion of `$1'. Set the zeroth argument of the
subshell-$as_echo to `as_echo', for better error message.
Paul Eggert [Tue, 28 Nov 2006 03:29:47 +0000 (03:29 +0000)]
Turn AC_FUNC_SETVBUF_REVERSED into a noop. It's been obsolete for
years and is too hard to maintain now. The last straw was
reported by Jerker Baeck in
<http://lists.gnu.org/archive/html/autoconf/2006-11/msg00102.html>.
* NEWS: AC_FUNC_SETVBUF_REVERSED is now obsolete.
* doc/autoconf.texi (Particular Functions): Move
AC_FUNC_SETVBUF_REVERSED from here...
(Obsolete Macros): ... to here. Say that it does nothing now.
* lib/autoconf/functions.m4 (AC_FUNC_SETVBUF_REVERSED):
Turn into (almost) a no-op.
Paul Eggert [Mon, 27 Nov 2006 22:47:33 +0000 (22:47 +0000)]
* doc/autoconf.texi (Setting Output Variables): Mention that
@VAR1@VAR2 has unspecified behavior. Problem reported by
Ralf Wildenhues.
* NEWS: Mention this.