Re: Aclocal bug?

Eric Blake-1 <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
> wow this is an interesting bug, I enjoyed analysing it!

Indeed!

> The cause is the following bug:
> 
> $ echo "ifdef(\`MAC', bug)" |m4 --trace=MAC
> bug
> 
> I observed it in 1.4.[34], while 1.4.5 seems to be fixed.

Actually, it was 1.4.4b that fixed it.  From the NEWS file:
* Tracing a macro by name is now persistent, even if the macro is
  subsequently undefined or redefined.  The traceon and traceoff macros no
  longer warn about undefined symbols.  This solves a crash when using
  indir on an undefined macro traced with the -t option, as well as an
  incorrect result of ifdef.  Furthermore, tracing is no longer transferred
  with builtins, solving the bug of "m4 -tm4_eval" failing to give trace
  output on the input "define(`m4_eval',defn(`eval'))m4_eval(1)".

> To build m4 HEAD, upgrade to m4 >= 1.4.5 first and things will just
> work!

I'm updating M4 bootstrap as follows:

2006-11-09  Eric Blake  <[email protected]>

	* bootstrap: Validate that installed M4 is powerful enough.
	Reported by Gary V. Vaughan, analyzed by Stepan Kasal.

Index: bootstrap
===================================================================
RCS file: /sources/m4/m4/bootstrap,v
retrieving revision 1.42
diff -u -r1.42 bootstrap
--- bootstrap	2 Nov 2006 13:42:23 -0000	1.42
+++ bootstrap	9 Nov 2006 16:36:20 -0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# bootstrap (GNU M4) version 2006-11-02
+# bootstrap (GNU M4) version 2006-11-09
 # Written by Gary V. Vaughan  <[email protected]>
 
 # Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -35,15 +35,16 @@
 
 # You can also set the following variables to help $progname
 # locate the right tools:
-#   AUTOPOINT, AUTORECONF, AWK, GNULIB_TOOL, RM, SED, WGET
+#   AUTOPOINT, AUTORECONF, AWK, GNULIB_TOOL, M4, RM, SED, WGET
 
 # This script bootstraps a CVS checkout of GNU M4 by correctly calling
 # out to parts of the GNU Build Platform.  Currently this requires GNU
-# Gettext 0.16 or better, Autoconf 2.60 or better, a CVS snapshot of
-# Automake 1.10a or better, a CVS snapshot of Libtool 2.1a or better,
-# and the latest CVS checkout of Gnulib.  Libtool must be installed;
-# either with the same --prefix as automake, or made accessible to
-# aclocal's search path via $AUTOMAKE_prefix/share/aclocal/dirlist.
+# Gettext 0.16 or better, Autoconf 2.60 or better, GNU M4 1.4.5 or
+# better, a CVS snapshot of Automake 1.10a or better, a CVS snapshot
+# of Libtool 2.1a or better, and the latest CVS checkout of Gnulib.
+# Libtool must be installed; either with the same --prefix as
+# automake, or made accessible to aclocal's search path via
+# $AUTOMAKE_prefix/share/aclocal/dirlist.
 
 # Report bugs to <[email protected]>
 
@@ -51,6 +52,7 @@
 : ${AUTORECONF=autoreconf}
 : ${AWK=awk}
 : ${GNULIB_TOOL=gnulib-tool}
+: ${M4=m4}
 : ${RM=rm -f}
 : ${SED=sed}
 : ${WGET=wget}
@@ -244,6 +246,14 @@
   fi
 }
 
+## ---------------------------------------------- ##
+## Test that the installed M4 is powerful enough. ##
+## M4 1.4.4 and earlier are insufficient.         ##
+## ---------------------------------------------- ##
+if test -n "`echo 'ifdef(mac,bug)dnl' | $M4 --trace=mac`" ; then
+  func_fatal_error "Bootstrapping requires installed GNU M4 1.4.5 or
greater."
+fi
+
 ## ------------------------------ ##
 ## Fetch translations.            ##
 ## (taken from GNU tar bootstrap) ##

-- 
View this message in context: http://www.nabble.com/branch-1_4-allow-C%2B%2B-on-Linux-tf2556408.html#a7261412
Sent from the Gnu - M4 - Patches mailing list archive at Nabble.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.