10 Jul 22:43
outdated m4sugar
Eric Blake <ebb9 <at> byu.net>
2008-07-10 20:43:42 GMT
2008-07-10 20:43:42 GMT
Right now, the latest bison sources are incompatible with the latest m4
sources. When I built bison with the latest m4.git (will become m4 1.6), the
change from LIFO to FIFO m4wrap (done in order to make m4 obey POSIX) trips up
a fresh build of bison:
$ m4 --version | head -n1
m4 (GNU M4) 1.5.89a.15-21859
$ sed -n '1,4 { s/<.*>/<...>/; p }' ChangeLog
2008-05-27 Joel E. Denny <...>
* NEWS (2.3b+): New section, empty for now.
* configure.ac (AC_INIT): 2.3b -> 2.3b+.
$ make
...
make[2]: Entering directory `/home/eblake/bison/examples/calc++'
../../tests/bison -d -ra -S lalr1.cc -o ./calc++-parser.cc \
./calc++-parser.yy
stdin:1: error: m4_init: unbalanced m4_divert_push:
stdin:1: m4_divert_push: KILL
stdin:1: the top level
/home/eblake/bison/src/bison: subsidiary program `/usr/local/bin/m4' failed
(exit status 1)
I tracked it to the fact that bison's m4sugar.m4 is three years old (it is
newer than the m4sugar shipped with autoconf 2.59, but older than 2.59c), which
means it relies on non-POSIX LIFO m4wrap semantics (autoconf 2.60 was the first
non-beta release that works regardless of LIFO vs. FIFO m4wrap). ChangeLog-
wise, bison's version looks like it forked from autoconf commit
http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=cf3b3ede,
then added the macro m4_prepend (which autoconf should also consider adding).
(Continue reading)
RSS Feed