[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Simpler example of pathological behavior of directory caching
From: |
Paul Smith |
Subject: |
Re: Simpler example of pathological behavior of directory caching |
Date: |
Thu, 06 Oct 2016 15:06:20 -0400 |
On Thu, 2016-10-06 at 11:47 -0700, Kyle Rose wrote:
> On Thu, Oct 6, 2016 at 11:38 AM, Paul Smith <address@hidden> wrote:
> > You should include the version of GNU make that you're using; my
> > version works as expected:
> >
> > $ make --version
> > GNU Make 4.2.1
>
> Funny you should mention that:
>
> $ make --version
> GNU Make 4.2.1
>
> 4.2.1 definitely broken, at least on my system.
It works on my system. I've tried it multiple times. I'm using Ubuntu
GNOME 16.04.1, with GNU libc 2.23, on an ext4 filesystem.
I can't explain why your system is behaving differently. Perhaps your
version of libc has an issue with the glob() or fnmatch() functions
(it's happened before). Or maybe there's a bug in GNU make which is
system-dependent in some way.
> >> Why not refresh the cache when the directory's mtime has changed?
> >
> > Because not all systems have the same rules for directory mtime as
> > POSIX does, so that's not a reliable/portable indicator.
>
> What does POSIX have to say about returning the wrong value for
> $(wildcard ...)?
Nothing. POSIX doesn't define make functions like $(wildcard ...);
those are a purely GNU make construct.
> > There's no question the caching needs to be improved.
>
> In any event, the existing behavior is a flat-out defect and should
> be corrected.
Clearly, but it appears to be a defect that can only reproduced on your
system (so far), so you'll have to do a bit more digging. Rewriting
the directory caching facility isn't the answer.
Re: Simpler example of pathological behavior of directory caching, Paul Smith, 2016/10/06