Re: [BUG?] parallel make interdepencies
From: "John Keeping" <john@keeping.me.uk>
Show 26 quoted lines
> On Tue, Oct 06, 2015 at 03:13:05PM +0200, Johannes Schindelin wrote:
>> Hi Michael,
>>
>> On 2015-10-06 10:12, Michael J Gruber wrote:
>> > "make -j3" just errored out on me, a follow-up "make" succeeded". This
>> > looks like an interdependency issue, but I don't know how to track it:
>> >
>> > GEN git-web--browse
>> > GEN git-add--interactive
>> > GEN git-difftool
>> > mv: der Aufruf von stat für „perl.mak“ ist nicht möglich: Datei oder
>> > Verzeichnis nicht gefunden
>> >
>> > (cannot stat "perl.mak")
>>
>> This one sounds awfully familiar. Although I only encountered this if
>> I specified `make -j15 clean all`, i.e. *both* "clean" and "all"...
>
> I've seen something like this after upgrading perl (I can't remember the
> exact error, so it may not be the same problem but I'm pretty sure it
> involves perl.mak). The problem was a result of the perl library path
> changing, but I never got around to creating a patch.
>
> I thought I remembered someone else posting a patch to address this, but
> I can't find it so perhaps I'm remembering commit 07981dc (Makefile:
> rebuild perl scripts when perl paths change, 2013-11-18).
This bug hit me when updating the MSVC-build script in contrib.
In a fully cleaned installation there is no PM.stamp file and the perl.mak file fails with a message that can easily be misunderstood. In my case I was doing a `make` dry run, so the rebuilding of the perlscrip list (commit 07981dc) never happened.
The wider patch series somehow never made it onto vger (don't know why) but the original is at https://groups.google.com/d/msg/msysgit/aj4v9ZpMIJo/2BA68P0saT0J
My fix was (expect whitesapace damage)
---
perl/Makefile | 2 ++
1 file changed, 2 insertions(+)
diff --git a/perl/Makefile b/perl/Makefile
index 15d96fc..5b86aac 100644
--- a/perl/Makefile
+++ b/perl/Makefile
@@ -22,7 +22,9 @@ clean:
$(RM) $(makfile).old
$(RM) PM.stamp
+ifneq (,$(wildcard PM.stamp))
$(makfile): PM.stamp
+endif
ifdef NO_PERL_MAKEMAKER
instdir_SQ = $(subst ','\'',$(prefix)/lib)
--
2.4.2.windows.1.5.gd32afb6
--
Philip