bug-autoconf
[Top][All Lists]
Advanced

[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.*,,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]