-----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 <[EMAIL PROTECTED]> * 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 [EMAIL PROTECTED] -----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@&[EMAIL PROTECTED]) 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@&[EMAIL PROTECTED]: 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@&[EMAIL PROTECTED]: 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@&[EMAIL PROTECTED]: 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