Date: Tue, 6 Apr 1999 19:35:06 +0100 (BST) From: Bob Bishop <rb@gid.co.uk> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/10985: make .NOTPARALLEL special target is broken [PATCH] Message-ID: <7998.199904061835@seagoon.gid.co.uk>
index | next in thread | raw e-mail
>Number: 10985
>Category: bin
>Synopsis: make .NOTPARALLEL special target is broken [PATCH]
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Apr 6 12:00:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator: Bob Bishop
>Release: FreeBSD 4.0-CURRENT i386
>Organization:
GID ltd
>Environment:
-current as of Tue Apr 6 04:02:32 BST 1999
Probably affects -STABLE too
>Description:
.NOTPARALLEL is supposed to "Disable parallel mode".
However, as implemented it only suppresses parallel
remote jobs and won't stop an SMP box running parallel
local jobs in the presence of -jn.
>How-To-Repeat:
`make -jn -dj' with and without .NOTPARALLEL: in the
Makefile
>Fix:
Not as easy as it appears, I suspect. Complications
arise because make has -B turned on by default unless
-jn is in use (which certainly violated my POLA). So
what to do? Should .NOTPARALLEL turn -B back on as if
there was no -jn in the first place? The following
patch does so, but it's arguable.
Index: src/usr.bin/make/main.c
===================================================================
RCS file: /CVSROOT/src/usr.bin/make/main.c,v
retrieving revision 1.30
diff -c -r1.30 main.c
*** main.c 1999/03/01 06:01:05 1.30
--- main.c 1999/04/06 12:59:59
***************
*** 123,129 ****
static Lst variables; /* list of variables to print */
int maxJobs; /* -j argument */
static Boolean forceJobs; /* -j argument given */
! static int maxLocal; /* -L argument */
Boolean compatMake; /* -B argument */
Boolean debug; /* -d flag */
Boolean noExecute; /* -n flag */
--- 123,129 ----
static Lst variables; /* list of variables to print */
int maxJobs; /* -j argument */
static Boolean forceJobs; /* -j argument given */
! int maxLocal; /* -L argument */
Boolean compatMake; /* -B argument */
Boolean debug; /* -d flag */
Boolean noExecute; /* -n flag */
Index: src/usr.bin/make/parse.c
===================================================================
RCS file: /CVSROOT/src/usr.bin/make/parse.c,v
retrieving revision 1.20
diff -c -r1.20 parse.c
*** parse.c 1999/01/08 18:37:34 1.20
--- parse.c 1999/04/06 16:34:14
***************
*** 874,881 ****
--- 874,884 ----
case NotParallel:
{
extern int maxJobs;
+ extern int maxLocal;
maxJobs = 1;
+ maxLocal = 1;
+ compatMake = 1; /* would have been turned on if no -j */
break;
}
case SingleShell:
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7998.199904061835>
