From owner-cvs-src@FreeBSD.ORG Fri Apr 22 13:50:59 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B8A8016A4CE; Fri, 22 Apr 2005 13:50:59 +0000 (GMT) Received: from mailout2.pacific.net.au (mailout2.pacific.net.au [61.8.0.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1224D43D31; Fri, 22 Apr 2005 13:50:59 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.0.86])j3MDotml025824; Fri, 22 Apr 2005 23:50:55 +1000 Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) j3MDoqIo014423; Fri, 22 Apr 2005 23:50:53 +1000 Date: Fri, 22 Apr 2005 23:50:52 +1000 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Ruslan Ermilov In-Reply-To: <20050421185925.GA85015@ip.net.ua> Message-ID: <20050422233107.J93439@delplex.bde.org> References: <200504182110.j3ILAc8J031298@repoman.freebsd.org> <20050419182938.GA27941@dragon.NUXI.org> <20050420161212.GA52582@dragon.NUXI.org> <20050421070011.GA81229@ip.net.ua><20050421185925.GA85015@ip.net.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed cc: cvs-src@freebsd.org cc: cvs-all@freebsd.org cc: src-committers@freebsd.org cc: Warner Losh cc: David O'Brien Subject: Re: cvs commit: src/sys/conf kmod.mk X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Apr 2005 13:50:59 -0000 On Thu, 21 Apr 2005, Ruslan Ermilov wrote: > On Thu, Apr 21, 2005 at 05:43:25PM +1000, Bruce Evans wrote: >> Another dependency bug that sometimes bites me: "make" doesn't work >> after "make clean", at least under the old version of -current that I >> use, because dependencies for lots of generated sources (like device_if.c >> (?)) are missing. Dependencies for older generated files like >> vnode_if.c are handled correctly, and "make depend" doesn't have >> the problem because the necessary dependencies are in BEFORE_DEPEND. >> > Maybe this is only an old bug, as there are these lines in kern.post.mk: > > .if !exists(${.OBJDIR}/.depend) > ${SYSTEM_OBJS}: assym.s vnode_if.h ${BEFORE_DEPEND:M*.h} ${MFILES:T:S/.m$/.h/} > .endif Note that this only works when .depend doesn't exist (it works using the usual hack of making all objects depend on all geaders in that case). > At least "make -n kernel >/dev/null" after "make clean" doesn't > complain now. I check that it doesn't work after "make depend; make; make clean". The first error is for amd64's GENERIC is: %%% In file included from ./../../../dev/aic7xxx/aic7xxx_osm.h:44, from aic7xxx_reg_print.c:9: ../../../sys/bus.h:461:23: device_if.h: No such file or directory %%% This can be worked around using either "rm .depend" or "make cleandepend" so that the above hack works, or using "make depend" which creates all the generated sources as a side effect. >> I think the default for NOCLEAN should be to not rebuild dependencies. >> It is supposed to be fast at the expense of correctness. >> > So do I, but I also want it to be a case for the kernel build. > >> You often >> want it to restart a build from where it failed, and then you don't >> especially want it to rebuild all the makefiles before that point. >> > Yes, agreed. In case of upgrades, it's easy to "make cleandepend" > first. I agree with the change in behaviour in your other mail (make "make depend" behave the same for kernels as for applications). To be complete, the stupid message printed by config(8) should be expanded to give a reminder about not forgetting to run ``make cleandepend'' ;-). Bruce