Follow-up Comment #16, bug #65533 (group make):

OK great that's forward progress.

Just to be clear this is not a fix, that's just an experiment to see if it was
the problem.  I'm not going to make that change in the official GNU make
source code, because it will lead to other problems.  For example, consider
this code:

$(shell rm -f /tmp/newfile)
files := $(wildcard /tmp/*)
$(shell echo hi > /tmp/newfile)
files := $(wildcard /tmp/*)
$(info files: '$(filter %/newfile $(files))')

In the official GNU Make 4.4, you will see the new file printed:

files: '/tmp/newfile'

After the change I suggested below, you'll see the new file is missing:

files: ''

This is the purpose of the cache invalidation; without it GNU Make won't
notice when shell functions or recipes create random files.

The thing we have to discover is, what about your makefile environment is
forcing excessive cache invalidation and, is there anything we can do in the
implementation of GNU Make to alleviate it.

If you can examine the output and glean anything useful from it, such as
something different about the directories which are invalidated or what
operations make is running over and over, that is forcing the invalidation,
that would be helpful.

If you don't see anything, and it's OK with you, you can create an excerpt of
the full debug log (say a few thousand lines or so), compress it, and email to
me directly ([email protected]) as an attachment and I'll look at it.  Please
keep the complete log output so I get a complete picture of what's happening;
don't just grep out the invalidation lines and send only those.

Hopefully we'll find a way to make this work better by default.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?65533>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to