cvs commit: src/usr.sbin/config main.c
Ruslan Ermilov
ru at FreeBSD.org
Mon Jan 16 09:13:36 PST 2006
On Mon, Jan 16, 2006 at 09:26:10AM -0700, M. Warner Losh wrote:
> In message: <20060116083922.GD81316 at ip.net.ua>
> Ruslan Ermilov <ru at FreeBSD.org> writes:
> : On Sun, Jan 15, 2006 at 11:52:25PM -0700, Scott Long wrote:
> : > M. Warner Losh wrote:
> : >
> : > >In message: <20060116041146.GA23438 at dragon.NUXI.org>
> : > > "David O'Brien" <obrien at FreeBSD.org> 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.<arch>, 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.
>
Ah yes. Removing a .h file that some file from ${SRCS} depends on is
the most easy way to demonstrate the need to remove .depend first, in
the general case.
Cheers,
--
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20060116/355b3e2f/attachment.bin
More information about the cvs-src
mailing list