GNU make 4.2.90 release candidate available
Paul Smith <[email protected]> Mon, 26 Aug 2019 09:00:13 -0400
| Newsgroups | gmane.comp.gnu.make.devel |
|---|---|
| Organization | GNU's Not UNIX! |
| Message-ID | <6836f3a4aa862252168038f8a4cc048cce4e9db6.camel__39433.8542407908$1566825137$gmane$org@gnu.org> |
--------------------------------------------------------------------
GNU make is a tool which controls the generation of executables and
other non-source files of a program from the program's source files.
You can learn more at: https://www.gnu.org/software/make/
--------------------------------------------------------------------
A new release candidate for GNU make 4.3 is available now for download:
36083ab822b50a9ecbf5467cdadff55c make-4.2.90.tar.bz2
e2c9abdeaf3725f8654a5e9d7a121fa9 make-4.2.90.tar.gz
You can obtain a copy from: https://alpha.gnu.org/gnu/make/
- NEWS ----------------------------------------------------------------
Version 4.2.90 (26 Aug 2019)
A complete list of bugs fixed in this version is available here:
https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=108&set=custom
* 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.
* WARNING: Backward-incompatibility!
On Linux, and any other systems that provide a /proc/loadavg with similar
syntax, the -l/--load-average option will use the contents of that file to
determine how many jobs are running at any given instant, and compare that
value to the load value requested. This allows usage such as "-j -lN" for
N-processor systems without fear of overload.
Patch provided by Sven C. Dack <[email protected]>
* WARNING: Backward-incompatibility!
Contrary to the documentation, suffix rules with prerequisites were being
treated BOTH as simple targets AND as pattern rules. Behavior now matches
the documentation, and pattern rules are no longer created in this case.
* New feature: 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.
Implementation contributed by Kaz Kylheku <[email protected]>
* 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 pthread_spawn() on systems where it is available.
It will select POSIX_SPAWN_USEVFORK where that is available. If you prefer
to use fork/exec even on systems where pthread_spawn() is present, you can
use the --disable-pthread-spawn option to configure.
Aron Barath <[email protected]> provided the basic implementation.
* Error messages printed when invoking non-existent commands have been cleaned
up and made consistent.
* The previous limit of 63 jobs under -jN on MS-Windows is now
increased to 4095. That limit includes the subprocess started by
the $(shell) function.
* 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.
* All wildcard expansion within GNU make, including $(wildcard ...), will sort
the results. See https://savannah.gnu.org/bugs/index.php?52076
* Interoperate with newer GNU libc and musl C runtime libraries.
* Performance improvements provided by Paolo Bonzini <[email protected]>
GNU make Developer News
* Import the GNU standard bootstrap script to replace the hand-rolled
"make update" method for building code from a GNU make Git repository.
* Rework the source distribution to move source files into the src/*
subdirectory. This aligns with modern best practices in GNU.
* Replace local portability code with Gnulib content. Unfortunately due to a
problem with Gnulib support for getloadavg, this forces a requirement on
Automake 1.16 or above in order to build from Git. See README.git.
_______________________________________________
Make-alpha mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/make-alpha
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEslCKkBAviuOxKgCQ3qzKrtt4E3oFAl1j190ACgkQ3qzKrtt4 E3oSaA/+M7m3loPeNz3D3KteLwBqWdwc2qCvhDLtO8qmwgvTAvkdThfkAfoTzLvI OeZYRh/k4asJwpbTRIUmrX3txnRenbd7ot6aF5YqXP4MlwQKPFQ5q8LbHIqA9UQo A06bmVQjAe6y5msEyKLzlolyomecxz1+tZZGXQq5l8E834oKbODQ+S+AGreyMVAc 63XS8mPtilS71DWrqc2DWowAHSqHfxQefN2KHZ8kijBWQyThe8K9ToxSxRfKYNpe yNsmiiz3OwEeZi2S9IvtbEvGSCcanIR/ZoUx0PCJbQ1o9tzFuFDZbPp+BvADp9br ESw4HIJk/wwUN3XOrQfETN/4Q5OyvsAkP3Dxba13f2nDbKDa3YIiwVne+k0Qo8Th NoAKdTUBw4W0OlGOhUjE9bzOy5Hk0bokCr4feECqMg8D8pesyHG5MugOZUU+goWg Bo+ubQIfXElDASEjMp/cHNSATuOYld6z2BhCk6hWAgO86LTCJR0YREcD4Svd65+C +1DZ+Zacv3HKDrmb+Ug0NeWt7+A5FnI5XyPBtZkwq5qAWkjuNaIX+ScbfPwrniGV QAgWPkmQ6sCYfaupsGwPZuMdZgRfSOII2+mh/wXZ0cH83LQeWb9PI9ntb9PlQUoW ycaURPtsTwSfw5QItFayf1LOpgLa5cgeJfWH5ghuKAy9LrMzKwY= =ED7Q -----END PGP SIGNATURE-----