From owner-svn-src-all@FreeBSD.ORG Mon Oct 8 04:11:46 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6E5771065670; Mon, 8 Oct 2012 04:11:46 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 3B4568FC0C; Mon, 8 Oct 2012 04:11:46 +0000 (UTC) Received: from dhcp-192-168-2-58.wifi.xcllnt.net (wifi.xcllnt.net [70.36.220.6] (may be forged)) (authenticated bits=0) by mail.xcllnt.net (8.14.5/8.14.5) with ESMTP id q984BcNN072532 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sun, 7 Oct 2012 21:11:39 -0700 (PDT) (envelope-from marcel@xcllnt.net) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) From: Marcel Moolenaar In-Reply-To: <20121007161440.C7605@besplex.bde.org> Date: Sun, 7 Oct 2012 21:11:38 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <81CB9A3A-4BFF-41B2-A1F9-3721A40F6260@xcllnt.net> References: <201210062001.q96K16Or030755@svn.freebsd.org> <20121007161440.C7605@besplex.bde.org> To: Bruce Evans X-Mailer: Apple Mail (2.1499) Cc: "svn-src-head@FreeBSD.org" , "svn-src-all@FreeBSD.org" , "src-committers@FreeBSD.org" , Simon Gerraty Subject: Re: svn commit: r241298 - in head: . gnu/usr.bin/cc/cc_int gnu/usr.bin/cc/include kerberos5 kerberos5/tools/asn1_compile kerberos5/tools/slc lib/clang/include share/mk tools/build/make_check usr.sbin/c... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 08 Oct 2012 04:11:46 -0000 On Oct 6, 2012, at 10:31 PM, Bruce Evans wrote: > On Sat, 6 Oct 2012, Marcel Moolenaar wrote: >=20 >> Log: >> Add support for bmake. This includes: >> .... >> Modified: head/share/mk/bsd.dep.mk >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/share/mk/bsd.dep.mk Sat Oct 6 19:57:27 2012 = (r241297) >> +++ head/share/mk/bsd.dep.mk Sat Oct 6 20:01:05 2012 = (r241298) >> @@ -102,8 +102,8 @@ ${_YC} y.tab.h: ${_YSRC} >> CLEANFILES+=3D y.tab.c y.tab.h >> .elif !empty(YFLAGS:M-d) >> .for _YH in ${_YC:R}.h >> -.ORDER: ${_YC} ${_YH} >> -${_YC} ${_YH}: ${_YSRC} >> +${_YH}: ${_YC} >> +${_YC}: ${_YSRC} >> ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} >> SRCS+=3D ${_YH} >> CLEANFILES+=3D ${_YH} >=20 > This is broken. Yacc headers don't depend on generated yacc .c files. > Now there is only a null rule to create the headers. One broken case > is when the header somehow gets deleted. It bcomes out of date, but > running make to update it only runs the null rule, so it remains > nonexistent. The problem with the old rule is that it's broken as well. The change attempts to fix a real parallel build problem. Your comment is valid though. What about the following (possibly white-space corrupted) patch from Simon: Index: share/mk/bsd.dep.mk =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- share/mk/bsd.dep.mk (revision 241871) +++ share/mk/bsd.dep.mk (working copy) @@ -95,16 +95,17 @@ CLEANFILES+=3D ${_LC} SRCS:=3D ${SRCS:S/${_YSRC}/${_YC}/} CLEANFILES+=3D ${_YC} .if !empty(YFLAGS:M-d) && !empty(SRCS:My.tab.h) -.ORDER: ${_YC} y.tab.h -${_YC} y.tab.h: ${_YSRC} +y.tab.h: ${_YSRC} ${YACC} ${YFLAGS} ${.ALLSRC} +${_YC}: y.tab.h cp y.tab.c ${_YC} CLEANFILES+=3D y.tab.c y.tab.h .elif !empty(YFLAGS:M-d) .for _YH in ${_YC:R}.h -${_YH}: ${_YC} -${_YC}: ${_YSRC} +${_YH}: ${_YSRC} ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} +${_YC}: ${_YH} + @touch ${.TARGET} SRCS+=3D ${_YH} CLEANFILES+=3D ${_YH} .endfor This makes sure the C file is always more recent than the H file and important to keep make happy in all situations. It doesn't fix the the problem of removing the C file entirely. At least the C file is recreated, but not with the right contents. Thoughts? --=20 Marcel Moolenaar marcel@xcllnt.net