[bug #26593] Assertion failure when building glibc with CVS make

2009-05-19 Thread Mark Seaborn
Follow-up Comment #2, bug #26593 (project make): Here's a smaller test case: $ cat test.make all: foo.suffix1 foo.suffix2 prefix1.foo prefix2.foo prefix1.% prefix2.%: %.original @echo $@ %.suffix1 %.suffix2: %.original @echo $@ .PHONY: foo.original # Expected output $ make -

[bug #26593] Assertion failure when building glibc with CVS make

2009-05-16 Thread Mark Seaborn
Follow-up Comment #1, bug #26593 (project make): I notice that this bug was reported previously but without a fix being proposed: http://www.mail-archive.com/bug-make@gnu.org/msg04620.html "Make fails on glibc build" By the way, the previous message was posted by me (m...@mythic-beasts.com) but

[PATCH 5/5] Hook up hash table: use for searching for rules to replace

2007-02-25 Thread Mark Seaborn
--- rule.c | 52 1 files changed, 28 insertions(+), 24 deletions(-) diff --git a/rule.c b/rule.c index af1cefa..3ffc6bd 100644 --- a/rule.c +++ b/rule.c @@ -340,35 +340,39 @@ rule_dependency_lists_equal (struct rule *rule1, struct rule *rule

[PATCH 4/5] Record rule targets in a hash table

2007-02-25 Thread Mark Seaborn
This is not used to replace any lookups yet. --- main.c |1 + rule.c | 75 rule.h |1 + 3 files changed, 77 insertions(+), 0 deletions(-) diff --git a/main.c b/main.c index ba7f87d..351e92c 100644 --- a/main.c +++ b/main

[PATCH 2/5] Clean up count_implicit_rule_limits()

2007-02-25 Thread Mark Seaborn
* Removed unused variable, simplify loop. * Corrected comment. --- rule.c | 13 +++-- 1 files changed, 3 insertions(+), 10 deletions(-) diff --git a/rule.c b/rule.c index d08383b..a12f9d1 100644 --- a/rule.c +++ b/rule.c @@ -61,28 +61,24 @@ unsigned int maxsuffix; /* Compute the

[PATCH 0/5] Improve performance of rule handling

2007-02-25 Thread Mark Seaborn
Here is a series of patches to improve make's performance in handling large numbers of pattern rules. The motivation is to make glibc's build process faster. The change speeds up adding new pattern rules, but it does not speed up finding pattern rules that match a given filename. I have not chan

[PATCH 1/5] Refactor: Move rule comparisons into separate functions

2007-02-25 Thread Mark Seaborn
--- rule.c | 95 +--- 1 files changed, 55 insertions(+), 40 deletions(-) diff --git a/rule.c b/rule.c index ee96ec1..d08383b 100644 --- a/rule.c +++ b/rule.c @@ -273,6 +273,34 @@ convert_to_pattern (void) } +static int +rule_targe

[PATCH 3/5] Refactor: Use a doubly-linked list of rules instead of a singly-linked list

2007-02-25 Thread Mark Seaborn
--- implicit.c |2 +- rule.c | 86 +--- rule.h |7 +++-- 3 files changed, 41 insertions(+), 54 deletions(-) diff --git a/implicit.c b/implicit.c index d239952..82f2c79 100644 --- a/implicit.c +++ b/implicit.c @@ -301,7 +301

glibc build process slowness

2007-02-21 Thread Mark Seaborn
I've been investigating why the glibc build process takes so long. It takes about 1m26s on my machine for the nothing-to-do case when all files are up-to-date. I profiled make. It's spending around 60% of the time in new_pattern_rule(), which does a linear search through the list of pattern rule