From owner-cvs-src@FreeBSD.ORG Mon Jan 16 16:27:08 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.ORG 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 705E816A420; Mon, 16 Jan 2006 16:27:08 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E62E43D46; Mon, 16 Jan 2006 16:27:07 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (localhost.village.org [127.0.0.1] (may be forged)) by harmony.bsdimp.com (8.13.3/8.13.3) with ESMTP id k0GGQ97g089542; Mon, 16 Jan 2006 09:26:09 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Mon, 16 Jan 2006 09:26:10 -0700 (MST) Message-Id: <20060116.092610.122288991.imp@bsdimp.com> To: ru@FreeBSD.ORG From: "M. Warner Losh" In-Reply-To: <20060116083922.GD81316@ip.net.ua> References: <20060115.231029.62233420.imp@bsdimp.com> <43CB42A9.8090601@samsco.org> <20060116083922.GD81316@ip.net.ua> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Mon, 16 Jan 2006 09:26:13 -0700 (MST) Cc: scottl@samsco.org, src-committers@FreeBSD.ORG, flz@FreeBSD.ORG, cvs-src@FreeBSD.ORG, obrien@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/usr.sbin/config main.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 16 Jan 2006 16:27:08 -0000 In message: <20060116083922.GD81316@ip.net.ua> Ruslan Ermilov writes: : On Sun, Jan 15, 2006 at 11:52:25PM -0700, Scott Long wrote: : > M. Warner Losh wrote: : > : > >In message: <20060116041146.GA23438@dragon.NUXI.org> : > > "David O'Brien" writes: : > >: On Sat, Jan 14, 2006 at 08:12:25AM +0000, Florent Thoumie wrote: : > >: > Modified files: : > >: > usr.sbin/config main.c : > >: > Log: : > >: > - Change the exit message from "make cleandepend; make depend" to : > >: > "make cleandepend && make depend". : > >: : > >: I still think we should go back to the traditional: : > >: "Don't forget to do ``make depend''\n" : > >: : > >: The 'make cleandepend' step was to work around brokeness in 'make : > >depend'. : > >: If 'make depend' is still so broken that one must do 'make cleandepend' : > >: first, then 'make depend' should just blow away all the .depend files : > >: first. : > > : > >Sadly, that won't work. : > > : > >Warner : > : > Not that I don't believe you, but can you explain why it won't work? : > What happened that caused 10+ years of 'working' to turn to 'not working'? : > : Several reasons: : : - Before we were always regenerating the kernel .depend file, even if : nothing has changed. This was contrary to other .depend files that : are only regenerated if some of the sources or their known dependencies : have changed. The config/main.c commit log said this on the subject: : : Ask that "make cleandepend" be run before "make depend", now that : : we don't do this automatically. : : - "make cleandepend" wasn't to work around brokenness in "make depend". : Instead, it's to make things work when make(1) cannot figure out by : itself that it should regenerate .depend, e.g. when supporting .mk : files change (kern.{pre,post}.mk, Makefile., Makefile built by : config(8), etc.). : : In short, not runnign "make cleandepend" is equivalent to building world : with -DNO_CLEAN, which is often possible but not guaranteed to work, and : for the same set of reasons. The problem with removing .depend in the depend target happens too late. Before we get to the meat of the depend target, the error happens. The error happens, btw, when a .h file is deleted, which the .depend file depends on... There might be other clever ways around this. Warner