m4-patches
[Top][All Lists]
Advanced

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

Re: Aclocal bug?


From: Eric Blake-1
Subject: Re: Aclocal bug?
Date: Thu, 9 Nov 2006 08:38:19 -0800 (PST)

> 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  <address@hidden>

        * 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  <address@hidden>
 
 # 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 <address@hidden>
 
@@ -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.





reply via email to

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