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 <psm...@gnu.org>
Sent: Tuesday, February 14, 2017 10:53:20 AM
To: ruchi; Bug-make@gnu.org
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
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to