From 95f1a32d27eef91a8a037522467d7060e7da2624 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Wed, 28 Jul 2010 05:39:50 +0000 Subject: Release GNU make 3.82 - Update tests for Solaris bizarre-ness - Update files for release --- NEWS | 100 ++++++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 57 insertions(+), 43 deletions(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index ee14e9e..523c9a7 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ GNU make NEWS -*-indented-text-*- History of user-visible changes. - 19 July 2010 + 28 July 2010 See the end of this file for copyrights and conditions. @@ -9,11 +9,23 @@ manual, which is contained in this distribution as the file doc/make.texi. See the README file and the GNU make manual for instructions for reporting bugs. -Version 3.81.91 +Version 3.82 + +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=104&set=custom * Compiling GNU make now requires a conforming ISO C 1989 compiler and standard runtime library. +* WARNING: Future backward-incompatibility! + Wildcards are not documented as returning sorted values, but up to and + including this release the results have been sorted and some makefiles are + apparently depending on that. In the next release of GNU make, for + performance reasons, we may remove that sorting. If your makefiles + require sorted results from wildcard expansions, use the $(sort ...) + function to request it explicitly. + * WARNING: Backward-incompatibility! The POSIX standard for make was changed in the 2008 version in a fundamentally incompatible way: make is required to invoke the shell as if @@ -21,7 +33,8 @@ Version 3.81.91 have been written to conform to the original text of the standard, the default behavior of GNU make remains to invoke the shell with simply '-c'. However, any makefile specifying the .POSIX special target will follow the - new POSIX standard and pass '-e' to the shell. See also .SHELLFLAGS below. + new POSIX standard and pass '-e' to the shell. See also .SHELLFLAGS + below. * WARNING: Backward-incompatibility! The '$?' variable now contains all prerequisites that caused the target to @@ -31,12 +44,12 @@ Version 3.81.91 * WARNING: Backward-incompatibility! As a result of parser enhancements, three backward-compatibility issues exist: first, a prerequisite containing an "=" cannot be escaped with a - backslash any longer. You must create a variable containing an "=" and use - that variable in the prerequisite. Second, variable names can no longer - contain whitespace, unless you put the whitespace in a variable and use the - variable. Third, in previous versions of make it was sometimes not flagged - as an error for explicit and pattern targets to appear in the same rule. - Now this is always reported as an error. + backslash any longer. You must create a variable containing an "=" and + use that variable in the prerequisite. Second, variable names can no + longer contain whitespace, unless you put the whitespace in a variable and + use the variable. Third, in previous versions of make it was sometimes + not flagged as an error for explicit and pattern targets to appear in the + same rule. Now this is always reported as an error. * WARNING: Backward-incompatibility! The pattern-specific variables and pattern rules are now applied in the @@ -48,57 +61,58 @@ Version 3.81.91 * WARNING: Backward-incompatibility! The library search behavior has changed to be compatible with the standard - linker behavior. Prior to this version for prerequisites specified using the - -lfoo syntax make first searched for libfoo.so in the current directory, - vpath directories, and system directories. If that didn't yield a match, - make then searched for libfoo.a in these directories. Starting with this - version make searches first for libfoo.so and then for libfoo.a in each of - these directories in order. + linker behavior. Prior to this version for prerequisites specified using + the -lfoo syntax make first searched for libfoo.so in the current + directory, vpath directories, and system directories. If that didn't yield + a match, make then searched for libfoo.a in these directories. Starting + with this version make searches first for libfoo.so and then for libfoo.a + in each of these directories in order. * New command line option: --eval=STRING causes STRING to be evaluated as - makefile syntax (akin to using the $(eval ...) function). The evaluation is - performed after all default rules and variables are defined, but before any - makefiles are read. + makefile syntax (akin to using the $(eval ...) function). The evaluation + is performed after all default rules and variables are defined, but before + any makefiles are read. * New special variable: .RECIPEPREFIX allows you to reset the recipe - introduction character from the default (TAB) to something else. The first - character of this variable value is the new recipe introduction character. - If the variable is set to the empty string, TAB is used again. It can be - set and reset at will; recipes will use the value active when they were - first parsed. To detect this feature check the value of $(.RECIPEPREFIX). - -* New special variable: .SHELLFLAGS allows you to change the options passed to - the shell when it invokes recipes. By default the value will be "-c" (or - "-ec" if .POSIX is set). - -* New special target: .ONESHELL instructs make to invoke a single instance of - the shell and provide it with the entire recipe, regardless of how many + introduction character from the default (TAB) to something else. The + first character of this variable value is the new recipe introduction + character. If the variable is set to the empty string, TAB is used again. + It can be set and reset at will; recipes will use the value active when + they were first parsed. To detect this feature check the value of + $(.RECIPEPREFIX). + +* New special variable: .SHELLFLAGS allows you to change the options passed + to the shell when it invokes recipes. By default the value will be "-c" + (or "-ec" if .POSIX is set). + +* New special target: .ONESHELL instructs make to invoke a single instance + of the shell and provide it with the entire recipe, regardless of how many lines it contains. As a special feature to allow more straightforward - conversion of makefiles to use .ONESHELL, any recipe line control characters - ('@', '+', or '-') will be removed from the second and subsequent recipe - lines. This happens _only_ if the SHELL value is deemed to be a standard - POSIX-style shell. If not, then no interior line control characters are - removed (as they may be part of the scripting language used with the - alternate SHELL). + conversion of makefiles to use .ONESHELL, any recipe line control + characters ('@', '+', or '-') will be removed from the second and + subsequent recipe lines. This happens _only_ if the SHELL value is deemed + to be a standard POSIX-style shell. If not, then no interior line control + characters are removed (as they may be part of the scripting language used + with the alternate SHELL). * New variable modifier 'private': prefixing a variable assignment with the modifier 'private' suppresses inheritance of that variable by prerequisites. This is most useful for target- and pattern-specific variables. -* New make directive: 'undefine' allows you to undefine a variable so - that it appears as if it was never set. Both $(flavor) and $(origin) - functions will return 'undefined' for such a variable. To detect this - feature search for 'undefine' in the .FEATURES special variable. +* New make directive: 'undefine' allows you to undefine a variable so that + it appears as if it was never set. Both $(flavor) and $(origin) functions + will return 'undefined' for such a variable. To detect this feature search + for 'undefine' in the .FEATURES special variable. * The parser for variable assignments has been enhanced to allow multiple modifiers ('export', 'override', 'private') on the same line as variables, including define/endef variables, and in any order. Also, it is possible to create variables and targets named as these modifiers. -* The 'define' make directive now allows a variable assignment operator after - the variable name, to allow for simple, conditional, or appending multi-line - variable assignment. +* The 'define' make directive now allows a variable assignment operator + after the variable name, to allow for simple, conditional, or appending + multi-line variable assignment. Version 3.81 -- cgit v1.2.3