#582 Issue 469 - GNU make 4.3
Merged 3 years ago by pbokoc. Opened 3 years ago by roypen.
fedora-docs/ roypen/release-notes iss469  into  f33

@@ -3,3 +3,72 @@ 

  

  [[sect-development-tools]]

  = Development Tools

+ 

+ == GNU make 4.3

+ 

+ GNU make 4.3 includes many bug fixes, new features and performance improvements. 

+ 

+ === Backward-incompatibility

+ 

+ Compatibility patches to make version 3.8 are removed in this release, making Fedora's make the same as other distros. 

+ 

+ [IMPORTANT]

+ 

+ ====

+ 

+ Package owners relying on makefile features specific to older versions of GNU make (including compatibility patches for 3.8 we're dropping) may FTBFS and need to tweak their Makefiles. Packages which were built previous to this upgrade will not be affected. 

+ 

+ ====

+ 

+ Specific backward incompatibillity:

+ 

+ ----

+ * WARNING: Backward-incompatibility!

+   Number signs (#) appearing inside a macro reference or function invocation

+   no longer introduce comments and should not be escaped with backslashes:

+   thus a call such as:

+     foo := $(shell echo '#')

+   is legal.  Previously the number sign needed to be escaped, for example:

+     foo := $(shell echo '\#')

+   Now this latter will resolve to "\#".  If you want to write makefiles

+   portable to both versions, assign the number sign to a variable:

+     H := \#

+     foo := $(shell echo '$H')

+   This was claimed to be fixed in 3.81, but wasn't, for some reason.

+   To detect this change search for 'nocomment' in the .FEATURES variable.

+ 

+ * WARNING: Backward-incompatibility!

+   Previously appending using '+=' to an empty variable would result in a value

+   starting with a space.  Now the initial space is only added if the variable

+   already contains some value.  Similarly, appending an empty string does not

+   add a trailing space.

+ ----

+ 

+ === New features

+ 

+ 

+ * Grouped explicit targets

+ Pattern rules have always had the ability to generate multiple targets with a single invocation of the recipe.  It's now possible to declare that an explicit rule generates multiple targets with a single invocation.  To use this, replace the `:` token with `&:` in the rule.  To detect this feature search for `grouped-target` in the .FEATURES special variable.

+ 

+ * .EXTRA_PREREQS variable 

+ Words in this variable are considered prerequisites of targets but they are not added to any of the automatic variable values when expanding the recipe.  This variable can either be global (applies to all targets) or a target-specific variable.  To detect this feature search for `extra-prereqs` in the `.FEATURES` special variable.

+ 

+ * Makefiles can now specify the `-j` option in their MAKEFLAGS variable and this will cause make to enable that parallelism mode.

+ 

+ * GNU make will now use `posix_spawn()` on systems where it is available. If you prefer to use fork/exec even on systems where posix_spawn() is present, you can use the `--disable-posix-spawn` option to configure. 

+ 

+ * Error messages printed when invoking non-existent commands have been cleaned up and made consistent.

+ 

+ * A new option `--no-silent` has been added, that cancels the effect of the `-s/--silent/--quiet` flag.

+ 

+ * A new option `-E` has been added as a short alias for `--eval`.

+ 

+ * Interoperate with newer GNU libc and musl C runtime libraries.

+ 

+ See the link:https://lists.gnu.org/archive/html/info-gnu/2020-01/msg00004.html[upstream release announcement] for more detailed information about this release.

+ 

+ === Bugs fixed

+ 

+ A complete list of bugs fixed in this version is available here link:https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=108&set=custom[make - Bugs]

+ 

+ 

rebased onto 40ea195

3 years ago

Pull-Request has been merged by pbokoc

3 years ago