From owner-svn-src-all@FreeBSD.ORG Fri Jul 5 20:51:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 8216DF33; Fri, 5 Jul 2013 20:51:27 +0000 (UTC) (envelope-from sjg@juniper.net) Received: from co1outboundpool.messaging.microsoft.com (co1ehsobe001.messaging.microsoft.com [216.32.180.184]) by mx1.freebsd.org (Postfix) with ESMTP id 4A5C5124A; Fri, 5 Jul 2013 20:51:26 +0000 (UTC) Received: from mail22-co1-R.bigfish.com (10.243.78.230) by CO1EHSOBE035.bigfish.com (10.243.66.100) with Microsoft SMTP Server id 14.1.225.22; Fri, 5 Jul 2013 20:36:10 +0000 Received: from mail22-co1 (localhost [127.0.0.1]) by mail22-co1-R.bigfish.com (Postfix) with ESMTP id 4534CCA01FE; Fri, 5 Jul 2013 20:36:10 +0000 (UTC) X-Forefront-Antispam-Report: CIP:66.129.224.53; KIP:(null); UIP:(null); IPV:NLI; H:P-EMHUB02-HQ.jnpr.net; RD:none; EFVD:NLI X-SpamScore: 3 X-BigFish: VPS3(zzzz1f42h1ee6h1de0h1fdah2073h1202h1e76h1d1ah1d2ah1fc6h1082kzzz2fh2a8h668h839hd25hf0ah1288h12a5h12a9h12bdh12e5h137ah139eh13b6h1441h14ddh1504h1537h162dh1631h1758h1898h18e1h1946h19b5h1ad9h1b0ah1b88h1d0ch1d2eh1d3fh1de2h1dfeh1dffh1e23h1155h) Received-SPF: pass (mail22-co1: domain of juniper.net designates 66.129.224.53 as permitted sender) client-ip=66.129.224.53; envelope-from=sjg@juniper.net; helo=P-EMHUB02-HQ.jnpr.net ; -HQ.jnpr.net ; Received: from mail22-co1 (localhost.localdomain [127.0.0.1]) by mail22-co1 (MessageSwitch) id 1373056568542577_9257; Fri, 5 Jul 2013 20:36:08 +0000 (UTC) Received: from CO1EHSMHS002.bigfish.com (unknown [10.243.78.229]) by mail22-co1.bigfish.com (Postfix) with ESMTP id 819CA880043; Fri, 5 Jul 2013 20:36:08 +0000 (UTC) Received: from P-EMHUB02-HQ.jnpr.net (66.129.224.53) by CO1EHSMHS002.bigfish.com (10.243.66.12) with Microsoft SMTP Server (TLS) id 14.1.225.23; Fri, 5 Jul 2013 20:36:07 +0000 Received: from magenta.juniper.net (172.17.27.123) by P-EMHUB02-HQ.jnpr.net (172.24.192.33) with Microsoft SMTP Server (TLS) id 8.3.213.0; Fri, 5 Jul 2013 13:36:06 -0700 Received: from chaos.jnpr.net (chaos.jnpr.net [172.24.29.229]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id r65Ka5L54024; Fri, 5 Jul 2013 13:36:05 -0700 (PDT) (envelope-from sjg@juniper.net) Received: from chaos.jnpr.net (localhost [127.0.0.1]) by chaos.jnpr.net (Postfix) with ESMTP id 5CC2A58097; Fri, 5 Jul 2013 13:36:05 -0700 (PDT) To: Tijl Coosemans Subject: Re: svn commit: r251422 - in head: contrib/bmake usr.bin/bmake In-Reply-To: <51D6EF0D.3050506@FreeBSD.org> References: <201306051612.r55GCpPG050941@svn.freebsd.org> <51C8967F.2060905@FreeBSD.org> <51D6EF0D.3050506@FreeBSD.org> Comments: In-reply-to: Tijl Coosemans message dated "Fri, 05 Jul 2013 18:06:37 +0200." From: "Simon J. Gerraty" X-Mailer: MH-E 7.82+cvs; nmh 1.3; GNU Emacs 22.3.1 Date: Fri, 5 Jul 2013 13:36:05 -0700 Message-ID: <20130705203605.5CC2A58097@chaos.jnpr.net> MIME-Version: 1.0 Content-Type: text/plain X-OriginatorOrg: juniper.net Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jul 2013 20:51:27 -0000 On Fri, 5 Jul 2013 18:06:37 +0200, Tijl Coosemans writes: >> I've been noticing that bmake doesn't run parallel jobs as like fmake. No it doesn't. fmake exports the name of a FIFO, which any submake can open. bmake passes open descriptors to a pipe, but only if the target is flagged .MAKE. .MAKE's other property is to run the target even when -n is given. This feature, while documented in fmake's man page doesn't work. >> I've attached a Makefile that I think shows what's going wrong. Hmm I can't see the makefile, but if you add .MAKE to the target which run's the sub-makes you will see things work as expected. >> Bmake outputs the target name in -j mode (e.g. "--- all ---"), but >> there's no "--- sub_1 ---" and "--- sub_3 ---" which suggests -j isn't Because the -J flag although passed, the descriptors were closed, this cause the sub-make to ignore -j and -J not to be added to .MAKEFLAGS >> I suspect the descriptors for the job server have to remain open so >> submakes can pick them up. At least, when I comment out the two fcntl Correct, and if the target is flagged .MAKE, the close-on-exec flag will be cleared in the child. >Now that I've taken a closer look at the code it seems bmake requires >targets that run make to be marked with .MAKE. Several targets in >Makefile and Makefile.inc1 already have this, but some don't, such as >bootstrap-tools. Can this be added there? I expect so. I was being somewhat cautious. As noted above .MAKE is also supposed to cause the target to run even when -n is given. I noted that some targets which might otherwise warrant .MAKE also did things which might not be a good idea with -n. FWIW make -N would supresses the behavior of .MAKE, but few are likely to have noted that. I don't see any reason to not add .MAKE to bootstrap-tools.