Re: secondary expansion changes

Boris Kolpackov <[email protected]>
Newsgroups gmane.comp.gnu.make.devel
Organization Code Synthesis Tools CC
Message-ID <[email protected]>
Hi Paul,

Paul D. Smith <[email protected]> writes:

> Wow.  45M of reachable memory and 3G of turnover is a LOT.  Whew.  Seems
> like you have the same sorts of issues as glibc.  I wonder where all
> that memory is going... strings?  struct file*?  struct dep*?

Good question. I know that there are about 7K pattern variables
and about 900 pattern rules. There are quite a few files involved,
but I wouldn't say more than a thousand or two. None of that really
explains the turnover or 45M of reachable memory at the end.

[BTW, the reason there are 7K pattern variables is because every
 definition is added to the list. For example, if I have:

 %.o: CFLAGS := -g
 %.o: CFLAGS := -g
 %.o: CFLAGS := -g

 All three assignments will end up in the list. I wonder if we can
 be smarter here?]

> What would be really nice is if you could run with --leak-check=full and
> send me the stack traces for the leaks.  Then I could see if they were
> the same ones I'm seeing when I run the regression tests.

Here is the log. I also added --show-reachable=yes:

http://www.codesynthesis.com/~boris/tmp/make-valgrind.log


> But, instructions on how to build your environment are welcome as well;
> it seems like a worthy test case to be added to my environment.

Ok, I will work on this. Which GNU/Linux distribution are you using?


Boris

-- 
Boris Kolpackov, Code Synthesis Tools  http://codesynthesis.com/~boris/blog
Open-source XML data binding for C++:  http://codesynthesis.com/products/xsd
XML data binding for embedded systems: http://codesynthesis.com/products/xsde
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.