make cleanworld
Alexander Best
arundel at freebsd.org
Tue Nov 8 22:49:14 UTC 2011
On Tue Nov 8 11, Alexander Best wrote:
> On Tue Nov 8 11, Warner Losh wrote:
> >
> > On Nov 8, 2011, at 2:55 PM, Alexander Best wrote:
> > > find -flags +XXX /usr/obj/usr/git-freebsd-head -exec chflags -R 0 {} +
> > > rm/obj/usr/git-freebsd-head/*
> > >
> > > that should only execute chflags(1) on those files with flags set.
> >
> > THat's only faster if the entire directory tree says in the directory cache. It isn't so much about chflags being called N times, but having to look at N files twice.
>
> i think i got it now. ;) sorry for beeing so slow. i'll try to come up with a
> patch for Makefile, which mentions this in the comment.
thoughts?
diff --git a/Makefile b/Makefile
index 61e678b..5d053c2 100644
--- a/Makefile
+++ b/Makefile
@@ -185,7 +185,10 @@ buildworld: upgrade_checks
# files with chflags set, so this unsets them and tries the 'rm' a
# second time. There are situations where this target will be cleaning
# some directories via more than one method, but that duplication is
-# needed to correctly handle all the possible situations.
+# needed to correctly handle all the possible situations. Getting rid
+# of all files without chflags set in the first 'rm' instance saves us
+# time, because now 'chflags' only needs to take the remaining files
+# (those with chflags set) into account.
#
BW_CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
cleanworld:
>
> cheers.
> alex
>
> >
> > Warner
More information about the freebsd-toolchain
mailing list