mirror of
https://git.savannah.gnu.org/git/make.git
synced 2025-01-12 08:40:55 +00:00
Fix fat-finger bug that left implicit rules with identical stem lengths
being sorted indeterminately.
This commit is contained in:
parent
4e51b6d9a4
commit
76d2d2ca41
3 changed files with 18 additions and 10 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-10-25 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* implicit.c (stemlen_compare): Fix qsort() compare bug that
|
||||
caused implicit rules with equal stem lengths to be sorted
|
||||
indeterminately.
|
||||
|
||||
2009-10-24 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* main.c (usage): Add --eval to the usage string.
|
||||
|
|
16
NEWS
16
NEWS
|
@ -1,6 +1,6 @@
|
|||
GNU make NEWS -*-indented-text-*-
|
||||
History of user-visible changes.
|
||||
12 Oct 2009
|
||||
25 Oct 2009
|
||||
|
||||
See the end of this file for copyrights and conditions.
|
||||
|
||||
|
@ -20,12 +20,14 @@ Version 3.81.90
|
|||
existing targets were provided in $?).
|
||||
|
||||
* WARNING: Backward-incompatibility!
|
||||
As a result of parser enhancements, two 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.
|
||||
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.
|
||||
|
||||
* WARNING: Backward-incompatibility!
|
||||
The pattern-specific variables and pattern rules are now applied in the
|
||||
|
|
|
@ -180,10 +180,10 @@ struct tryrule
|
|||
int
|
||||
stemlen_compare (const void *v1, const void *v2)
|
||||
{
|
||||
const struct tryrule *r1 = (const struct tryrule *)v1;
|
||||
const struct tryrule *r2 = (const struct tryrule *)v2;
|
||||
const struct tryrule *r1 = v1;
|
||||
const struct tryrule *r2 = v2;
|
||||
int r = r1->stemlen - r2->stemlen;
|
||||
return r != 0 ? r : (int)(r1->order - r1->order);
|
||||
return r != 0 ? r : (int)(r1->order - r2->order);
|
||||
}
|
||||
|
||||
/* Search the pattern rules for a rule with an existing dependency to make
|
||||
|
|
Loading…
Reference in a new issue