bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Using $(eval) to get information at the time a target is invoked


From: Eli Zaretskii
Subject: Re: Using $(eval) to get information at the time a target is invoked
Date: Tue, 11 Jan 2011 21:05:52 +0200

> From: Paul Smith <address@hidden>
> CC: address@hidden, address@hidden
> Date: Mon, 10 Jan 2011 17:22:33 -0500
> 
> On Sat, 2011-01-08 at 11:35 +0200, Eli Zaretskii wrote:
> > But I wonder if this is really Windows-specific.  Could this be the
> > example you asked for in Savannah bug#443 and #14617 (which was hoped
> > to be solved in bug#21231)?  Can you tell me what causes Make to renew
> > the cache used by $(wildcard) on GNU/Linux?  I could then try to see
> > why it does not happen on Windows in this case.
> 
> There's nothing that will renew the cache (IIRC), except that the cache
> has a limited size and so eventually information is removed from it that
> way.
> 
> I would suspect something different: the cache is not loaded all at
> once; that is, make starts looking for files and as it does so it loads
> information into the cache (the cache is really implemented as a set of
> hooks into the standard GNU globbing library).  When make finds what
> it's looking for, it stops loading things into the cache even if only
> half the files in a given directory are cached.  Then later it may go
> back and load more things.
> 
> So, the order in which things appear during readdir(), I think, along
> with what files make looks for, impacts what exists in the cache and
> what doesn't at any given time.  And this behavior may be different on
> Windows as well.

Okay.  Any hints for where to put breakpoints to see when the Make
reads the directory for the offending file (the one that gets deleted
by the rule)?  I'd like to compare the behavior on GNU/Linux and on
Windows, so that I could decide whether this is a Windows-specific
issue or not.

Thanks.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]