+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.
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.
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
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