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

[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

[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

[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

[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

[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 I

[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