[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [GNU Autoconf 2.59c] testsuite ... 63 64 66 67 73 ... failed
From: |
Paul Eggert |
Subject: |
Re: [GNU Autoconf 2.59c] testsuite ... 63 64 66 67 73 ... failed |
Date: |
Fri, 10 Jun 2005 23:08:41 -0700 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux) |
Stepan Kasal <address@hidden> writes:
> I committed a variation of the patch.
Hmm, it wasn't committed. I committed a variant of it (along with
some other minor fixes I had prepared) as follows.
2005-06-10 Paul Eggert <address@hidden>
* doc/autoconf.texi: "filesystem" -> "file system".
"behavior" -> "behavior".
Warn about \(...\)* in Solaris sed (written by Ralf Menzel).
* lib/autoconf/general.m4: Omit blank after ":" sed command,
as per POSIX.
* lib/m4sugar/m4sh.m4: Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS): Work around problem
with Solaris sed. Fix by Stepan Kasal.
Index: doc/autoconf.texi
===================================================================
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.911
diff -p -u -r1.911 autoconf.texi
--- doc/autoconf.texi 10 Jun 2005 15:42:42 -0000 1.911
+++ doc/autoconf.texi 11 Jun 2005 04:19:55 -0000
@@ -712,7 +712,7 @@ The ubiquity of @command{make} means tha
only viable way to distribute automatic build rules for software, but
one quickly runs into @command{make}'s numerous limitations. Its lack of
support for automatic dependency tracking, recursive builds in
-subdirectories, reliable timestamps (e.g., for network filesystems), and
+subdirectories, reliable timestamps (e.g., for network file systems), and
so on, mean that developers must painfully (and often incorrectly)
reinvent the wheel for each project. Portability is non-trivial, thanks
to the quirks of @command{make} on many systems. On top of all this is the
@@ -3072,7 +3072,7 @@ If a given @var{dir} contains @command{c
of @command{configure}. This is for packages that might use a
non-Autoconf script @command{Configure}, which can't be called through a
wrapper @command{configure} since it would be the same file on
-case-insensitive filesystems. Likewise, if a @var{dir} contains
+case-insensitive file systems. Likewise, if a @var{dir} contains
@file{configure.in} but no @command{configure}, the Cygnus
@command{configure} script found by @code{AC_CONFIG_AUX_DIR} is used.
@@ -11230,7 +11230,7 @@ outputs logical directory names, which h
Logical names are what the user specified.
@item
Physical names may not be portable from one installation
-host to another due to network filesystem gymnastics.
+host to another due to network file system gymnastics.
@item
On modern hosts @samp{pwd -P} may fail due to lack of permissions to
some parent directory, but plain @command{pwd} cannot fail for this
@@ -11647,7 +11647,7 @@ newer systems, @code{rename}).
@cindex timestamp resolution
Traditionally, file timestamps had 1-second resolution, and @samp{cp
--p} copied the timestamps exactly. However, many modern filesystems
+-p} copied the timestamps exactly. However, many modern file systems
have timestamps with 1-nanosecond resolution. Unfortunately, @samp{cp
-p} implementations truncate timestamps when copying files, so this
can result in the destination file appearing to be older than the
@@ -12135,6 +12135,17 @@ Nested parenthesization in patterns (e.g
quite portable to modern hosts, but is not supported by some older
@command{sed} implementations like SVR3.
+Some @command{sed} implementations, e.g., Solaris 10,
+restrict the special role of the asterisk to one-character regular expressions.
+This may lead to unexpected behavior:
+
address@hidden
+$ @kbd{echo '1*23*4' | /usr/bin/sed 's/\(.\)*/x/g'}
+x2x4
+$ @kbd{echo '1*23*4' | /usr/xpg4/bin/sed 's/\(.\)*/x/g'}
+x
address@hidden example
+
The @option{-e} option is portable.
Some people prefer to use it:
@@ -12243,7 +12254,7 @@ jumps. Finally, since the flag is clear
There are two things one should remember about @samp{t} in @command{sed}.
Firstly, always remember that @samp{t} jumps if @emph{some} substitution
succeeded, not only the immediately preceding substitution. Therefore,
-always use a fake @samp{t clear; : clear} to reset the t flag where
+always use a fake @samp{t clear; :clear} to reset the t flag where
needed.
Secondly, you cannot rely on @command{sed} to clear the flag at each new
@@ -13057,7 +13068,7 @@ As a result, in such a case, you have to
@cindex timestamp resolution
Traditionally, file timestamps had 1-second resolution, and
@command{make} used those timestamps to determine whether one file was
-newer than the other. However, many modern filesystems have
+newer than the other. However, many modern file systems have
timestamps with 1-nanosecond resolution. Some @command{make}
implementations look at the entire timestamp; others ignore the
fractional part, which can lead to incorrect results. Normally this
@@ -13315,7 +13326,7 @@ names won't. Here are some guidelines,
Availability of libraries and library functions should always be checked
by probing.
@item
-Variant behaviour of system calls is best identified with runtime tests
+Variant behavior of system calls is best identified with runtime tests
if possible, but bug workarounds or obscure difficulties might have to
be driven from @samp{$host}.
@item
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.863
diff -p -u -r1.863 general.m4
--- lib/autoconf/general.m4 6 Jun 2005 08:15:47 -0000 1.863
+++ lib/autoconf/general.m4 11 Jun 2005 04:19:56 -0000
@@ -1858,11 +1858,11 @@ _ACEOF
_AC_CACHE_DUMP() |
sed ['
t clear
- : clear
+ :clear
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
/^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end'] >>confcache
+ :end'] >>confcache
if diff $cache_file confcache >/dev/null 2>&1; then :; else
if test -w $cache_file; then
test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
Index: lib/autoconf/status.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/status.m4,v
retrieving revision 1.61
diff -p -u -r1.61 status.m4
--- lib/autoconf/status.m4 6 Jun 2005 09:36:11 -0000 1.61
+++ lib/autoconf/status.m4 11 Jun 2005 04:19:56 -0000
@@ -499,15 +499,17 @@ m4_define([_AC_OUTPUT_HEADERS],
#
dnl Quote, for the `[ ]' and `define'.
[ac_dA='s,^\([ ]*#[ ]*\)[^ ]*\([ ][ ]*'
-ac_dB='\)\([ (].*\)*$,\1define\2'
+ac_dB='\)[ (].*$,\1define\2'
ac_dC=' '
-ac_dD=',']
-dnl ac_dD used to contain `;t' at the end.
-dnl This was an optimization which was making the code both slow and incorrect.
-dnl 1) Since the script has to be broken to chunks containing 100 commands,
-dnl this extra command means we have to call sed more times.
-dnl 2) The code was incorrect: in the strange case that a sumbol has multiple
-dnl different AC_DEFINEs, we want to honour the *last* one.
+ac_dD=' ,']
+dnl ac_dD used to contain `;t' at the end, but that was both slow and
incorrect.
+dnl 1) Since the script must be broken into chunks containing 100 commands,
+dnl the extra command meant extra calls to sed.
+dnl 2) The code was incorrect: in the unusual case where a symbol has multiple
+dnl different AC_DEFINEs, the last one should be honored.
+dnl
+dnl ac_dB works because every line has a space appended. ac_dB reinserts
+dnl the space, because some symbol may have been AC_DEFINEd several times.
[ac_word_regexp=[_$as_cr_Letters][_$as_cr_alnum]*]
@@ -550,16 +552,17 @@ _ACEOF
# Transform confdefs.h into a sed script `conftest.defines', that
# substitutes the proper values into config.h.in to produce config.h.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC_DEFINE to be honored.
+rm -f conftest.defines conftest.tail
+# First, append a space to every undef/define line, to ease matching.
+echo 's/$/ /' >conftest.defines
+# Then, protect against being on the right side of a sed subst, or in
+# an unquoted here document, in config.status. If some macros were
+# called several times there might be several #defines for the same
+# symbol, which is useless. But do not sort them, since the last
+# AC_DEFINE must be honored.
dnl
dnl Quote, for `[ ]' and `define'.
-[rm -f conftest.defines conftest.tail
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+[ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
uniq confdefs.h |
sed -n '
t rset
@@ -572,14 +575,15 @@ uniq confdefs.h |
s/[\\$`]/\\&/g
s/^\('"$ac_word_re"'\)\(([^()]*)\)[
]*\(.*\)/${ac_dA}\1$ac_dB\2${ac_dC}\3$ac_dD/p
s/^\('"$ac_word_re"'\)[
]*\(.*\)/${ac_dA}\1$ac_dB${ac_dC}\2$ac_dD/p
- ' >conftest.defines
+ ' >>conftest.defines
]
-# This sed command replaces #undef with comments. This is necessary, for
+# Remove the space that was appended to ease matching.
+# Then replace #undef with comments. This is necessary, for
# example, in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
-# (The regexp can be very short, we know the line contains either #define
-# or #undef.)
-echo '[s,^[ #]*u.*,/* & */,]' >>conftest.defines
+# (The regexp can be short, since the line contains either #define or #undef.)
+echo 's/ $//
+[s,^[ #]*u.*,/* & */,]' >>conftest.defines
# Break up conftest.defines:
ac_max_sed_lines=m4_eval(_AC_SED_CMD_LIMIT - 3)
Index: lib/m4sugar/m4sh.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/m4sugar/m4sh.m4,v
retrieving revision 1.145
diff -p -u -r1.145 m4sh.m4
--- lib/m4sugar/m4sh.m4 10 Jun 2005 17:19:03 -0000 1.145
+++ lib/m4sugar/m4sh.m4 11 Jun 2005 04:19:56 -0000
@@ -755,9 +755,9 @@ _AS_LINENO_WORKS || {
s,[[$]]LINENO.*,&-,
t lineno
b
- : lineno
+ :lineno
N
- : loop
+ :loop
s,[[$]]LINENO\([[^'$as_cr_alnum'_]].*\n\)\(.*\),\2\1\2,
t loop
s,-\n.*,,
- Re: [GNU Autoconf 2.59c] testsuite ... 63 64 66 67 73 ... failed,
Paul Eggert <=