bug-m4
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Autoconf fails tests 24 and 26 with M4 branch-1_4 now


From: Eric Blake
Subject: Re: Autoconf fails tests 24 and 26 with M4 branch-1_4 now
Date: Thu, 26 Oct 2006 06:20:14 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Thunderbird/1.5.0.7 Mnenhy/0.7.4.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Ralf Wildenhues on 10/26/2006 12:52 AM:
> I'm seeing further destabilization in the Autoconf/M4 combo.
> My increased focus on testing this combination is because:
> - there was an announcement that the next Autoconf release may be
>   released soon,
> - due to Stepan's recent changes to Autoconf, it practically now
>   *requires* at least M4 1.4.7 to operate properly.  So if it finally
>   turns out that 1.4.7 has a regression over previous M4 releases, there
>   is a trap situation for users.

Which change are you referring to that requires 1.4.7 or greater?  To my
knowledge, even the original M4 1.4 from ten years ago can still make it
through the 2.61 testsuite.  The change to quit redirecting stdin from
/dev/null was only for M4 CVS head, and has no bearing on 1.4.x behavior.

On the other hand, last night I found a bug in 1.4.7 that can potentially
lead to arbitrary code execution, due to an allocation overflow in the
divert builtin.  Recommending 1.4.8 is not necessarily a bad idea for the
security conscious (I'm hoping to release 1.4.8 this weekend, but there is
still an outstanding gnulib patch that mkdtemp does not compile on mingw
that I need to get resolved).

> 
> Here are the failures.  By the way, there was a time when version
> requirements were not quite as strict, by the way.
> 
> Cheers,
> Ralf
> 
> #                             -*- compilation -*-
> 24. m4sugar.at:51: testing ...
...

> --- - 2006-10-26 08:34:34.110204000 +0200
> +++ /tmp/autoconf/build/tests/testsuite.dir/at-stdout 2006-10-26 
> 08:34:34.000000000 +0200
> @@ -1,6 +1,6 @@
>  script.4s:6: warning: obsolete
>  script.4s:7: warning: cross
> -script.4s:3: cross_warning is expanded from...
> +script.4s:2: cross_warning is expanded from...
>  script.4s:7: the top level
>  script.4s:8: warning: syntax
>  

> 26. m4sugar.at:121: testing ...
> +++ /tmp/autoconf/build/tests/testsuite.dir/at-stdout 2006-10-26 
> 08:34:34.000000000 +0200
> @@ -1,7 +1,7 @@
>  script.4s:12: error: m4_require: circular dependency of foo
> -script.4s:5: bar is expanded from...
> -script.4s:2: foo is expanded from...
> -script.4s:8: baz is expanded from...
> +script.4s:4: bar is expanded from...
> +script.4s:1: foo is expanded from...
> +script.4s:7: baz is expanded from...

Both of these are again line-number related.  Now that the __line__
invoked under the hood by m4_defun in 1.4.7a tracks the location of the
m4_defun's open (, rather than the location of the ), the solution is to
collapse the testsuite use of m4_defun to a single line.  Here's a
proposed testsuite patch:

2006-10-26  Eric Blake  <address@hidden>

        * tests/m4sugar.at (m4_warn, m4_require: circular dependencies):
        Also work with M4 1.4.8.

- --
Life is short - so eat dessert first!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFQKf984KuGfSFAYARAqSHAJ9abrb3QYKUoBKvDV6JcsItncUgggCghrD/
BuFiiBgmd/Yh5ReQyxcHLok=
=fALv
-----END PGP SIGNATURE-----
Index: tests/m4sugar.at
===================================================================
RCS file: /sources/autoconf/autoconf/tests/m4sugar.at,v
retrieving revision 1.31
diff -u -p -r1.31 m4sugar.at
--- tests/m4sugar.at    20 Jun 2006 05:35:38 -0000      1.31
+++ tests/m4sugar.at    26 Oct 2006 12:13:04 -0000
@@ -59,8 +59,7 @@ AT_SETUP([m4@&address@hidden)
 
 AT_DATA_M4SUGAR([script.4s],
 [[m4_init
-m4_defun([cross_warning],
-[m4_warn([cross],  [cross])])
+m4_defun([cross_warning], [m4_warn([cross],  [cross])])
 
 m4_divert([0])dnl
 m4_warn([obsolete],  [obsolete])dnl
@@ -69,27 +68,27 @@ m4_warn([syntax], [syntax])dnl
 ]])
 
 AT_CHECK_M4SUGAR([-o-], 0, [],
-[script.4s:8: warning: syntax
+[script.4s:7: warning: syntax
 ])
 
 AT_CHECK_M4SUGAR([-o- -Wall -f], 0, [],
-[script.4s:6: warning: obsolete
-script.4s:7: warning: cross
-script.4s:3: cross_warning is expanded from...
-script.4s:7: the top level
-script.4s:8: warning: syntax
+[script.4s:5: warning: obsolete
+script.4s:6: warning: cross
+script.4s:2: cross_warning is expanded from...
+script.4s:6: the top level
+script.4s:7: warning: syntax
 ])
 
 AT_CHECK_M4SUGAR([-o- -Wnone,cross -f], 0, [],
-[script.4s:7: warning: cross
-script.4s:3: cross_warning is expanded from...
+[script.4s:6: warning: cross
+script.4s:2: cross_warning is expanded from...
 script.4s:7: the top level
 ])
 
 AT_CHECK_M4SUGAR([-o- -Wnone,cross,error -f], 1, [],
-[[script.4s:7: warning: cross
-script.4s:3: cross_warning is expanded from...
-script.4s:7: the top level
+[[script.4s:6: warning: cross
+script.4s:2: cross_warning is expanded from...
+script.4s:6: the top level
 ]])
 
 AT_CLEANUP
@@ -125,14 +124,11 @@ AT_SETUP([m4@&address@hidden: circular depen
 # m4-listification.
 
 AT_DATA_M4SUGAR([script.4s],
-[[m4_defun([foo],
-[m4_require([bar])])
+[[m4_defun([foo], [m4_require([bar])])
 
-m4_defun([bar],
-[m4_require([foo])])
+m4_defun([bar], [m4_require([foo])])
 
-m4_defun([baz],
-[m4_require([foo])])
+m4_defun([baz], [m4_require([foo])])
 
 m4_init
 m4_divert([0])dnl
@@ -140,11 +136,11 @@ baz
 ]])
 
 AT_CHECK_M4SUGAR([], 1, [],
-[[script.4s:12: error: m4@&address@hidden: circular dependency of foo
-script.4s:5: bar is expanded from...
-script.4s:2: foo is expanded from...
-script.4s:8: baz is expanded from...
-script.4s:12: the top level
+[[script.4s:9: error: m4@&address@hidden: circular dependency of foo
+script.4s:3: bar is expanded from...
+script.4s:1: foo is expanded from...
+script.4s:5: baz is expanded from...
+script.4s:9: the top level
 autom4te: m4 failed with exit status: 1
 ]])
 AT_CLEANUP

reply via email to

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