Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Jul 1999 17:40:02 -0700 (PDT)
From:      Tim Vanderhoek <vanderh@ecf.utoronto.ca>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/10985: make .NOTPARALLEL special target is broken[PATCH]
Message-ID:  <199907130040.RAA89271@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/10985; it has been noted by GNATS.

From: Tim Vanderhoek <vanderh@ecf.utoronto.ca>
To: Bob Bishop <rb@gid.co.uk>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: bin/10985: make .NOTPARALLEL special target is broken[PATCH]
Date: Mon, 12 Jul 1999 20:39:12 -0400

 On Tue, Jul 13, 1999 at 12:08:43AM +0000, Bob Bishop wrote:
 > 
 [...]
 > X.NOTPARALLEL:
 > X
 > Xall: FRC
 > X       cd subdir; make
 
 Cut'n'Paste error.  You lost some tabs here.
 
 > ...and try 'make -j2 -dj' at the top, with and without the .NOTPARALLEL.
 > The problem is that the .NOTPARALLEL message isn't correctly passed to the
 > submake. Try adding a .NOTPARALLEL in subdir/makefile, this will work. The
 > patch in the PR fixes the problem, but I haven't tested it with remote (as
 > opposed to SMP) parallel builds (I have no idea whether remote builds work
 
 I'm not too worried about remote builds, since the code for remote
 doesn't even exist in our sorce base.  I don't even know where it went
 away too.
 
 I'm extremely surprised that the patch in this PR fixes the problem.
 I haven't tested it.  It's not clear to me how it solves the problem,
 but I guess I'll have to find-out eventually...  :-)
 
 I'm really not sure this is even a bug.  It seems to me that
 .NOTPARALLEL should only apply to the current invocation of make.
 Consider the case where I have a top-level makefile that isn't -j
 safe.  However, it makes several programs, and individually, those
 programs are -j safe.
 
 Or, consider this case:  (using psuedo-makefile code)
 
 top-level makefile:
 
 all: prog1 prog2 prog3
 
 prog1:
 	cd prog1_dir; ${MAKE}
 
 prog2:
 	cd prog2_dir; ${MAKE}
 
 prog3:
 	cd prog3_dir; ${MAKE}
 
 Now, suppose that all the makefiles here are technically -j safe.
 However, if I use -j3 on the top makefile, I will _effectively_ be
 using -j9, since the -j3 will propogate three times to each submake.
 To solve this problem, I need to add .NOTPARALLEL to the top-level
 makefile.
 
 I think that what you are trying to accomplish with the patch in this
 PR can already be done in my.  Try using this,
 
 
 .MAKEFLAGS: -B
 
 Or, more correctly, you should probably be using this,
 
 .MAKEFLAGS: -j1
 
 but that will have a slightly different effect from your patch (that
 is, with regards to compatMake).
 
 
 Does this solve the problem better?
 
 
 -- 
 This is my .signature which gets appended to the end of my messages.
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907130040.RAA89271>