From owner-freebsd-bugs Mon Jul 12 17:40: 7 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id BC135150B1 for ; Mon, 12 Jul 1999 17:40:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id RAA89271; Mon, 12 Jul 1999 17:40:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Mon, 12 Jul 1999 17:40:02 -0700 (PDT) Message-Id: <199907130040.RAA89271@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Tim Vanderhoek Subject: Re: bin/10985: make .NOTPARALLEL special target is broken[PATCH] Reply-To: Tim Vanderhoek Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR bin/10985; it has been noted by GNATS. From: Tim Vanderhoek To: Bob Bishop 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