# [BUG?] parallel make interdepencies

5 messages from 2015-10-06 to 2015-10-06. Participants: Michael J Gruber, Johannes Schindelin, John Keeping, Philip Oakley.
Thread: https://gitlist.dev/t/40496

## Michael J Gruber, 2015-10-06 08:12

Subject: [BUG?] parallel make interdepencies
Message-ID: <56138273.6010204@drmicha.warpmail.net>
URL: https://gitlist.dev/e/56138273.6010204%40drmicha.warpmail.net

```
"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")

Generating a Unix-style perl.mak
Writing perl.mak for Git
    GEN git-archimport
Writing MYMETA.yml and MYMETA.json
Generating a Unix-style perl.mak
Writing perl.mak for Git
make[2]: *** [perl.mak] Error 1
make[1]: *** [instlibdir] Error 2
Makefile:1769: recipe for target 'git-difftool' failed
make: *** [git-difftool] Error 2
make: *** Warte auf noch nicht beendete Prozesse...
Writing MYMETA.yml and MYMETA.json
make[2]: *** [perl.mak] Error 1
make[1]: *** [instlibdir] Error 2
Makefile:1769: recipe for target 'git-add--interactive' failed
make: *** [git-add--interactive] Error 2
Generating a Unix-style perl.mak
Writing perl.mak for Git
Writing MYMETA.yml and MYMETA.json

(This is on next)

```

## Johannes Schindelin, 2015-10-06 13:13

Subject: Re: [BUG?] parallel make interdepencies
Message-ID: <e76ba2a01053392526a499ec9bff0d37@dscho.org>
URL: https://gitlist.dev/e/e76ba2a01053392526a499ec9bff0d37%40dscho.org
In-Reply-To: <56138273.6010204@drmicha.warpmail.net>

```
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"...

Ciao,
Dscho

```

## John Keeping, 2015-10-06 13:33

Subject: Re: [BUG?] parallel make interdepencies
Message-ID: <20151006133341.GS17201@serenity.lan>
URL: https://gitlist.dev/e/20151006133341.GS17201%40serenity.lan
In-Reply-To: <e76ba2a01053392526a499ec9bff0d37@dscho.org>

```
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).

```

## Michael J Gruber, 2015-10-06 14:24

Subject: Re: [BUG?] parallel make interdepencies
Message-ID: <5613D98C.1020103@drmicha.warpmail.net>
URL: https://gitlist.dev/e/5613D98C.1020103%40drmicha.warpmail.net
In-Reply-To: <20151006133341.GS17201@serenity.lan>

```
John Keeping venit, vidit, dixit 06.10.2015 15:33:
> 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).
> 

At least I'm in good company, then. The statistical evidence is 100%
clear: It's a John-related issue.

Michael J(ohannes)

```

## Philip Oakley, 2015-10-06 19:39

Subject: Re: [BUG?] parallel make interdepencies
Message-ID: <316BD1414B4A4B45BD9214872096A236@PhilipOakley>
URL: https://gitlist.dev/e/316BD1414B4A4B45BD9214872096A236%40PhilipOakley
In-Reply-To: <20151006133341.GS17201@serenity.lan>

```
From: "John Keeping" <john@keeping.me.uk>
> 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

```
