bug-make
[Top][All Lists]
Advanced

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

Re: Dependencies commands running (THIS IS A BUG) - make 3.81


From: Ruchi Rautela
Subject: Re: Dependencies commands running (THIS IS A BUG) - make 3.81
Date: Tue, 14 Feb 2017 06:14:13 +0000

Hi Paul

Thanks for looking into it.

It would be difficult for me to share the exact Makefile as its quite complex having around 70-80 targets.


The thing is each target is itself having various subdirectories and its calling recursive submakes on those as well via the 
script which we are passing in "$(NOERR)+cd $(DIR) &&  time ./<script>" 

We are calling make for 2 archs (x86 and arm) , so in all there should be 6 invocations when make is executed for 
3 targets ( a , b ,c) where one of those is a dependent target.
But in our case only 4 invocations happens for a,b respectively and c is totally ignored with the reason 
"Dependencies commands running (THIS IS A BUG)"

When for jobslots 3 , if I add only 2 targets ( b, c) and their dependency b:c ,so in this case 4 invocations is there and everything works fine.

When I increase the job slots (j=24 or 32) everything works fine and all dependent modules ( 4-5) builds successfully.

Seems like some issue with the invocations for dependent targets, when the number of targets is equal or more than the number of job slots.
Any pointer in this regard?

Thanks and Regards
Ruchi



From: Paul Smith <address@hidden>
Sent: Tuesday, February 14, 2017 10:53:20 AM
To: ruchi; address@hidden
Subject: Re: Dependencies commands running (THIS IS A BUG) - make 3.81
 
On Mon, 2017-02-13 at 20:43 -0800, ruchi wrote:
> NUMJOBS := 24
> MAKEFLAGS := -j3 -l36
>
> SUBDIRS := a  \
>                   b  \
>                   c
>
> .PHONY $(SUBDIRS)
> $(SUBDIRS) : $(SOME_INITIAL_WORK)
> c : a b
> $(SUBDIRS):
>              @echo "=> Working on '$@' for '$(ARCH)'..."
>              $(NOERR)+cd $(DIR) &&  time ./<script>

Please provide an actual working example that shows your problem.  This
makefile is malformed and has lots of missing variable assignments, etc.

I tried to condense it down into a reproducible test case but it worked
for me both with GNU make 3.81 and the latest make:

  $ cat Makefile

  SUBDIRS := a b c

  .PHONY: $(SUBDIRS)
  c : a b
  $(SUBDIRS):
        @echo "=> Working on '$@'..."
        +cd $@ && sleep 2

  $ mkdir -p a b c

  $ make-3.81 -j3 c
  => Working on 'a'...
  => Working on 'b'...
  cd a && sleep 2
  cd b && sleep 2
  => Working on 'c'...
  cd c && sleep 2

reply via email to

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