Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Nov 2014 06:35:28 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Warner Losh <imp@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r274183 - head/sys/modules/mrsas
Message-ID:  <20141107054107.J1777@besplex.bde.org>
In-Reply-To: <201411061648.sA6Gma3S047775@svn.freebsd.org>
References:  <201411061648.sA6Gma3S047775@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 6 Nov 2014, Warner Losh wrote:

> Log:
>  clean removes @ and machine now, so no need to do it again.

That is a bug in the clean target.  It invalidates the pathnames in
the generated .depend file.  The cleandepend target still documents
the care that it takes with this:

cleandepend: cleanilinks
# .depend needs include links so we remove them only together.
cleanilinks:
         rm -f ${_ILINKS}

but this is defeated by adding ${_ILINKS} to CLEANFILES unconditionally :-(.

BTW, include pollution is now so bad that generating dependencies now
takes longer than building everything (except dependencies) in some
cases.  E.g., for GENERIC on nfs over slow networks like the FreeBSD
cluster.  make -ss -j8 depend takes 113 seconds real (52 user 22 sys)
on ref11-i386.  CC=gcc42 COPTFLAGS=-O make -ss -j8 takes only 93
seconds (536 real 74 sys).  FreeBSD-4 kernels with about 1/10 as many
dependencies take about 8 seconds for make -ss -j1 depend and 32 seconds
for make -ss j4 on 2-core systems with slightly slower CPUs but better
tuned networks.

nfs (without mount -nocto) over slow networks handles lots of little
include files especially badly because cto defeats caching (data is
cached but metadata is re-obtained from the server on every open).
One workaround is to build with a large -j count so that progress
can be made in threads no waiting for the network.  This doesn't help
for "make depend" because it is still done serially.

So .depend files should usually not be created, but when they are they
are more precious than they used to be and it is more important than
it used to be to keep cleandepend separate from clean and not break it.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141107054107.J1777>