From: Paul Smith Date: Sun, 20 Oct 2013 16:49:01 +0000 (-0400) Subject: * read.c (record_files): [SV 33034] Change fatal() to error() X-Git-Tag: 4.1~69 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=53b4a9e66800dde643d3ce7966c5193001e3f12e;p=thirdparty%2Fmake.git * read.c (record_files): [SV 33034] Change fatal() to error() Allows deprecated syntax. However we don't guarantee this syntax will continue to be legal in the future. Change suggested by David Boyce --- diff --git a/NEWS b/NEWS index 5bc7c585..05f4e8d4 100644 --- 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 + 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 b3897b27..2966ebec 100644 --- 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")); } }