[kbuild-devel] Re: State of the new config & build system

2002-01-01 Thread Keith Owens

On Mon, 31 Dec 2001 20:03:59 -0800, 
Mike Touloumtzis <[EMAIL PROTECTED]> wrote:
>On Fri, Dec 28, 2001 at 12:57:58PM +1100, Keith Owens wrote:
>> 
>> Unlike the broken make dep, kbuild 2.5 extracts accurate dependencies
>> by using the -MD option of cpp and post processing the cpp list.  The
>> post processing code is slow because the current design requires every
>> compile to read a complete list of all the files, giving O(n^2)
>> effects.  Mark 2 of the core code will use a shared database with
>> concurrent update so post processing is limited to looking up just the
>> required files, instead of reading the complete list every time.
>
>Why not use '$(GCC) -c -Wp,-MD,foo.d foo.c' to generate the dependencies
>as a side effect of the regular compile step?  This enables you to skip
>the initial dependency preprocessing step entirely, and could lead to a
>speedup over even the current fastdep system.  You still have to massage
>the dependencies but you can do it based on the side-effect dependency
>output of the _previous_ build, to whatever degree that output exists.

That is exactly what kbuild 2.5 does.  The slowdown occurs when
massaging the -MD dependencies from absolute names to relative path
names.  To support separate source and object trees, renaming of trees,
different names in local and NFS mode etc., the massage code needs a
list of where all the files are before it can convert the absolute
dependencies produced by gcc.  Reading and indexing that file for every
compile is _slow_.

Larry McVoy has sent me the source code to an mmapped database (from
bitkeeper).  Using a shared mmapped database should speed the process
up considerably.


___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: State of the new config & build system

2002-01-01 Thread Horst von Brand

Christoph Hellwig <[EMAIL PROTECTED]> said:
> On Fri, Dec 28, 2001 at 03:39:02PM -0500, Eric S. Raymond wrote:
> > It may be that the reason our experiences have been different is
> > because we focus on different target languages.  But I think my
> > experience is an existence proof that there *is* demand for
> > localization and that meeting it can have useful results.

> Is your native language something different thæn english or Al's?
>
> Localization for technical messages sucks.  badly.
> Just take a look at a european computer magazine, you will find lots of
> english words in the text because there is no german/frensh/whatever
> one.  Trying to use different grammar doesn't help the understanding.

It is even worse when they try to "translate" the terms. In Spanish, the
official language calls a computer "ordenador" (sorting device), and a file
"fichero" (filing cabinet). It doesn't help in the least at understanding
the _English_ documentation/source/... Add to it that here in South America
they usually take over the English terms, using "computador" (computing
device) and "archivo" (file). So it can even make it hard to understand the
technical literature in your own language... My standard advise is to learn
English, if nothing else for uniformity's sake. You'll need it anyway
before long in anything related to computing. And it is quite useful in
other areas...
--
Horst von Brand [EMAIL PROTECTED]
Casilla 9G, Vin~a del Mar, Chile   +56 32 672616

___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



[kbuild-devel] Re: State of the new config & build system

2002-01-01 Thread Peter Samuelson


[Mike Touloumtzis]
> Why not use '$(GCC) -c -Wp,-MD,foo.d foo.c' to generate the
> dependencies as a side effect of the regular compile step?

As Keith said, kbuild 2.5 *does* use 'gcc -MD' - although the *current*
system does not.

Linus has said that he doesn't like -MD, and he has a point: it only
extracts dependencies for your *current* compile, which means they have
to be rebuilt if you change CONFIG options.  However, those CONFIG
options would cause rebuilding of the file *anyway*, and -MD is almost
free since the preprocessor already has to read the files in question,
so I'm not convinced that it's a big deal.

> The "build whole clean tree" case is a common one even among kernel
> developers, e.g. for compile-testing patches before resending them.

One of the main points of kbuild 2.5 is that, unlike the current
system, it tracks dependencies perfectly.  Thus you should almost never
have to run 'make clean' before test compiling something - unless you
need to see non-fatal compile warnings.

It may take some time to get used to the soon-to-be new reality of "ok,
so I just applied eight kernel patches from three different places but
I know I don't need to bother with 'make clean' because the dependency
system is just *that good*."

Peter

___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: State of the new config & build system

2002-01-01 Thread Kai Henningsen

[EMAIL PROTECTED] (Peter Samuelson)  wrote on 31.12.01 in 
<[EMAIL PROTECTED]>:

> [Alan Cox]
> > > > find $TOPDIR -name "*.cf" -exec cat {} \; > Configure.help
>
>   [Horst von Brand]
> > >  cat `find $TOPDIR -name "*.cf"` > Configure.help #;-)
>
> [Arnaldo Carvalho de Melo]
> > whatever is faster, do you have trustable benchmark numbers? ;)
>
> Fewer forks vs. increased parallelism ... depends on the nature of your

What parallelism? Neither version seems to have any.

> bottlenecks, I guess, and cold vs. hot cache.  Or you could have it
> both ways:
>
>   find $TOPDIR -name \*.cf | xargs -n10 cat > Configure.help
>
> ...where 10 is tuned by benchmarking. (:

Not *there* you actually do have parallelism.

> > Yes, its a joke, have a nice 2002 all!
>
> Yeah, same from me..

Yeah, yeah,  that stuff ...


MfG Kai

___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel