From owner-freebsd-ia64@FreeBSD.ORG Tue Apr 22 04:06:01 2014 Return-Path: Delivered-To: freebsd-ia64@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BC23AF7A; Tue, 22 Apr 2014 04:06:01 +0000 (UTC) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 785321D29; Tue, 22 Apr 2014 04:06:00 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1WcRy4-000LEz-4z; Tue, 22 Apr 2014 04:06:00 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id s3M45vI5007926; Mon, 21 Apr 2014 22:05:57 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX18p3C98cwrslF37CWSoKrhp Subject: Re: Build failures with high parallel make(1) jobs with GCC From: Ian Lepore To: Glen Barber In-Reply-To: <20140422032638.GN49791@glenbarber.us> References: <20140422025435.GL49791@glenbarber.us> <1398136182.1124.394.camel@revolution.hippie.lan> <20140422032124.GM49791@glenbarber.us> <20140422032638.GN49791@glenbarber.us> Content-Type: multipart/mixed; boundary="=-4vT4niMGycC0cJObroG9" Date: Mon, 21 Apr 2014 22:05:57 -0600 Message-ID: <1398139557.1124.396.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Cc: freebsd-current@FreeBSD.org, freebsd-ppc@FreeBSD.org, freebsd-ia64@FreeBSD.org X-BeenThere: freebsd-ia64@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Porting FreeBSD to the IA-64 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2014 04:06:01 -0000 --=-4vT4niMGycC0cJObroG9 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Mon, 2014-04-21 at 23:26 -0400, Glen Barber wrote: > On Mon, Apr 21, 2014 at 11:21:24PM -0400, Glen Barber wrote: > > On Mon, Apr 21, 2014 at 09:09:42PM -0600, Ian Lepore wrote: > > > > The last successful build for powerpc on head/ was April 8. But I am > > > > having trouble tracking down what commits may (or may not) have > > > > contributed to recent high-parallel build failures. > > > > > > > > > > A couple weeks corresponds somewhat with the parallel subdir build > > > changes (it's about 3 weeks now). Try this patch I cooked up today for > > > $work, and in src/lib/Makefile add .WAIT (as if it were a directory > > > name) between ${SUBDIR_ORDERED} and the rest of the directories. > > > > > > > The patch fails to apply cleanly, but as far as I can tell, it is due to > > whitespace. > > > > I'll hand-patch it, and report back. > > > > Nope, I'm getting conflicts on revisions as far back as r251749. > > Glen > This one should work better. The lib/Makefile is included this time. -- Ian --=-4vT4niMGycC0cJObroG9 Content-Disposition: inline; filename="parallel_make_wait.diff" Content-Type: text/x-patch; name="parallel_make_wait.diff"; charset="us-ascii" Content-Transfer-Encoding: 7bit Index: share/mk/bsd.subdir.mk =================================================================== --- share/mk/bsd.subdir.mk (revision 264744) +++ share/mk/bsd.subdir.mk (working copy) @@ -45,7 +45,7 @@ distribute: .MAKE _SUBDIR: .USE .MAKE .if defined(SUBDIR) && !empty(SUBDIR) && !defined(NO_SUBDIR) - @${_+_}set -e; for entry in ${SUBDIR}; do \ + @${_+_}set -e; for entry in ${SUBDIR:N.WAIT}; do \ if test -d ${.CURDIR}/$${entry}.${MACHINE_ARCH}; then \ ${ECHODIR} "===> ${DIRPRFX}$${entry}.${MACHINE_ARCH} (${.TARGET:realinstall=install})"; \ edir=$${entry}.${MACHINE_ARCH}; \ @@ -60,7 +60,7 @@ _SUBDIR: .USE .MAKE done .endif -${SUBDIR}: .PHONY .MAKE +${SUBDIR:N.WAIT}: .PHONY .MAKE ${_+_}@if test -d ${.TARGET}.${MACHINE_ARCH}; then \ cd ${.CURDIR}/${.TARGET}.${MACHINE_ARCH}; \ else \ @@ -68,12 +68,18 @@ _SUBDIR: .USE .MAKE fi; \ ${MAKE} all +# Work around parsing of .if nested in .for by putting .WAIT string into a var. +__wait= .WAIT .for __target in all all-man checkdpadd clean cleandepend cleandir \ cleanilinks depend distribute lint maninstall manlint obj objlink \ realinstall regress tags ${SUBDIR_TARGETS} .ifdef SUBDIR_PARALLEL +__subdir_targets= .for __dir in ${SUBDIR} -${__target}: ${__target}_subdir_${__dir} +.if ${__wait} == ${__dir} +__subdir_targets+= .WAIT +.else +__subdir_targets+= ${__target}_subdir_${__dir} ${__target}_subdir_${__dir}: .MAKE @${_+_}set -e; \ if test -d ${.CURDIR}/${__dir}.${MACHINE_ARCH}; then \ @@ -87,7 +93,9 @@ ${__target}_subdir_${__dir}: .MAKE fi; \ ${MAKE} ${__target:realinstall=install} \ DIRPRFX=${DIRPRFX}$$edir/ +.endif .endfor +${__target}: ${__subdir_targets} .else ${__target}: _SUBDIR .endif Index: lib/Makefile =================================================================== --- lib/Makefile (revision 264744) +++ lib/Makefile (working copy) @@ -62,6 +62,7 @@ SUBDIR_ORDERED+= libcom_err .endif SUBDIR= ${SUBDIR_ORDERED} \ + .WAIT \ libalias \ libarchive \ ${_libatm} \ --=-4vT4niMGycC0cJObroG9--