summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2022-10-02 10:18:21 -0400
committerPaul Smith <psmith@gnu.org>2022-10-02 10:18:21 -0400
commit7296991d6c2feec34099934af75c35b5c0a47e3a (patch)
tree8d0be5d6a99ecfe900dcf64c04345f6983b0d983 /NEWS
parentd51ac701227e89cbab8c88668d71198ff52f92a7 (diff)
downloadmake-git-7296991d6c2feec34099934af75c35b5c0a47e3a.tar.gz
[SV 63098] Temporarily revert the change to pattern rule behavior
The fix for SV 12078 caused a backward-compatibility issue with some makefiles. In order to allow users to resolve this issue, revert that change for this release cycle: it will be reinstated in the next release cycle. Introduce a warning if we detect that the recipe of a multi-target pattern rule doesn't create all the targets. * NEWS: Announce the future backward-incompatibility. * doc/make.texi (Pattern Intro): Describe the behavior and that it will change in the future. * src/remake.c (check_also_make): Check for also_make targets that were not created and generate a warning. (update_goal_chain): Call the new function. (check_dep): Ditto. (update_file_1): Defer implicit rule detection until after we check all the also_make files (as it used to be). * tests/scripts/features/patternrules: Add tests of the new warning. Skip the tests for SV 12078.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS22
1 files changed, 16 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index f53e7691..2beec358 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,16 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
In the NEXT release of GNU make, support for these systems will be removed.
If you want to see them continue to be supported, contact <bug-make@gnu.org>.
+* WARNING: Future backward-incompatibility!
+ In the NEXT release of GNU make, pattern rules will implement the same
+ behavior change for multiple targets as explicit grouped targets, below: if
+ any target of the rule is needed by the build, the recipe will be invoked if
+ any target of the rule is missing or out of date. During testing some
+ makefiles were found to contain pattern rules that do not build all targets;
+ this can cause issues so we are delaying this change for one release cycle
+ to allow these makefiles to be updated. GNU make show a warning if it
+ detects this situation: "pattern recipe did not update peer target".
+
* WARNING: Backward-incompatibility!
GNU make now uses temporary files in more situations than previous releases.
If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the
@@ -32,12 +42,12 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
needs to find its temporary directory before the makefiles are parsed.
* WARNING: Backward-incompatibility!
- Previously each target in a grouped target rule (pattern or explicit) was
- considered individually: if the targets needed by the build were not out of
- date the recipe was not run even if other targets in the group were out of
- date. Now if any of the grouped targets are needed by the build, then if
- any of the grouped targets are out of date the recipe is run and all targets
- in the group are considered updated.
+ Previously each target in a explicit grouped target rule was considered
+ individually: if the targets needed by the build were not out of date the
+ recipe was not run even if other targets in the group were out of date. Now
+ if any of the grouped targets are needed by the build, then if any of the
+ grouped targets are out of date the recipe is run and all targets in the
+ group are considered updated.
* WARNING: Backward-incompatibility!
Previously if --no-print-directory was seen anywhere in the environment or