* read.c (record_files): [SV 33034] Change fatal() to error()
authorPaul Smith <psmith@gnu.org>
Sun, 20 Oct 2013 16:49:01 +0000 (12:49 -0400)
committerPaul Smith <psmith@gnu.org>
Sun, 20 Oct 2013 17:08:27 +0000 (13:08 -0400)
Allows deprecated syntax.  However we don't guarantee this syntax
will continue to be legal in the future.
Change suggested by David Boyce <david.s.boyce@gmail.com>

NEWS
read.c

diff --git a/NEWS b/NEWS
index 5bc7c585b23d53f7467f9b3431f66ee6a5a49691..05f4e8d4389bfd46c822e7e3fba37f262c95da47 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,12 @@ A complete list of bugs fixed in this version is available here:
 
 http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=105&set=custom
 
+* Change the fatal error for mixed explicit and implicit rules, that was
+  introduced in GNU make 3.82, to a non-fatal error.  However, this syntax is
+  still deprecated and may return to being illegal in a future version of GNU
+  make.  Makefiles that rely on this syntax should be fixed.
+  See https://savannah.gnu.org/bugs/?33034
+
 \f
 Version 4.0 (09 Oct 2013)
 
@@ -150,15 +156,6 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set
   results from wildcard expansions, use the $(sort ...)  function to request
   it explicitly.
 
-* WARNING: Backward-incompatibility!
-  In previous versions of make it was acceptable to list one or more explicit
-  targets followed by one or more pattern targets in the same rule and it
-  worked "as expected".  However, this was not documented as acceptable and if
-  you listed any explicit targets AFTER the pattern targets, the entire rule
-  would be mis-parsed.  This release removes this ability completely: make
-  will generate an error message if you mix explicit and pattern targets in
-  the same rule.
-
 * WARNING: Backward-incompatibility!
   As a result of parser enhancements, three backward-compatibility issues
   exist: first, a prerequisite containing an "=" cannot be escaped with a
@@ -246,8 +243,8 @@ Version 3.81 (01 Apr 2006)
   any prerequisite that does not exist, even though that prerequisite
   might have caused the target to rebuild.  Starting with the _next_
   release of GNU make, '$?' will contain all prerequisites that caused
-  the target to be considered out of date.  See this Savannah bug:
-  http://savannah.gnu.org/bugs/index.php?func=detailitem&item_id=16051
+  the target to be considered out of date.
+  See http://savannah.gnu.org/bugs/?16051
 
 * WARNING: Backward-incompatibility!
   GNU make now implements a generic "second expansion" feature on the
diff --git a/read.c b/read.c
index b3897b2746feab64d355cc90e7e33077d6a26b79..2966ebecfd9d0541dd88c32d893dcd2602b30b0b 100644 (file)
--- a/read.c
+++ b/read.c
@@ -2219,7 +2219,7 @@ record_files (struct nameseq *filenames, const char *pattern,
       /* Reduce escaped percents.  If there are any unescaped it's an error  */
       name = filenames->name;
       if (find_percent_cached (&name))
-        fatal (flocp, _("mixed implicit and normal rules"));
+        error (flocp, _("*** mixed implicit and normal rules: deprecated syntax"));
     }
 }
 \f