2002-09-28 14:21:37

by Roman Zippel

[permalink] [raw]
Subject: linux kernel conf 0.7

Hi,

At http://www.xs4all.nl/~zippel/lc/ you can find the latest version of the
new config system. Besides the usual archive there is also now a patch
against a 2.5.39 kernel and finally some documentation. This patch I also
consider as my first release canditate, so please test this one carefully,
this release contains pretty much everything I want from the first release
to be integrated into the kernel.
Other changes:
- update to 2.5.39
- seperate kernel Makefile (by Sam Ravnborg/Kai Germaschewski)
- lots of qconf fine tuning
- the generated config files are now named Build.conf and use tabs
instead of two spaces, which makes it easier to read.

An issue (which was also mentioned by Jeff Garzik) is the help text
format. Jeff likes to have an endhelp, where I think it's redundant. The
parser currently checks the amount of indendation to find the end of the
help text, this makes the help text quite easy to read and parse. If
someone prefers an endhelp (or has an even better idea), please speak up
now, if enough people complain, I have no problem changing it.

If someone is still wondering, why he should use lkc, as he is happy with
"make oldconfig", look at this comparison. Current version:

$ time make oldconfig
/bin/sh ./scripts/Configure -d arch/i386/config.in
#
# Using defaults found in .config
#
...

real 0m13.213s
user 0m5.520s
sys 0m5.440s

New version:

$ time make oldconfig
make[1]: Entering directory `/home/roman/src/lc'
make[1]: `conf' is up to date.
make[1]: Leaving directory `/home/roman/src/lc'
./scripts/lkc/conf -o arch/i386/Build.conf
#
# using defaults found in .config
#
...

real 0m0.473s
user 0m0.220s
sys 0m0.050s

These are the numbers from cache, so you have to add the amount of time
needed to read the config files from disk. The new files are larger as
they include the help text, but as long as you don't configure over a very
slow network, it will still be faster.

bye, Roman


2002-09-28 14:37:42

by Tomas Szepe

[permalink] [raw]
Subject: Re: linux kernel conf 0.7

> At http://www.xs4all.nl/~zippel/lc/ you can find the latest version of the
> new config system. Besides the usual archive there is also now a patch
> against a 2.5.39 kernel and finally some documentation.

o lkc-0.7-2.5.39.diff includes patches to include/linux/autoconf.h
o 'make distclean; make oldconfig' produces

make[1]: Entering directory /usr/src/linux-2.5.39/scripts/lkc'
Makefile:42: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
make[1]: Leaving directory /usr/src/linux-2.5.39/scripts/lkc'
make: *** [oldconfig] Error 2

i.e. the patch seems to have foomed up the tabs

o fix up & continue, 'make distclean; make oldconfig' produces

kala@kirsi:/usr/src/linux-2.5.39$ make oldconfig
make[1]: Entering directory /usr/src/linux-2.5.39/scripts/lkc'
cat zconf.tab.h_shipped > zconf.tab.h
gcc -Wp,-MD,./.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o conf.o conf.c
/bin/sh: /usr/src/linux-2.5.39/scripts/fixdep: No such file or directory
make[1]: *** [conf.o] Error 1
make[1]: Leaving directory /usr/src/linux-2.5.39/scripts/lkc'
make: *** [oldconfig] Error 2

And so on.

T.

2002-09-28 15:11:51

by Roman Zippel

[permalink] [raw]
Subject: Re: linux kernel conf 0.7

Hi,

On Sat, 28 Sep 2002, Tomas Szepe wrote:

> > At http://www.xs4all.nl/~zippel/lc/ you can find the latest version of the
> > new config system. Besides the usual archive there is also now a patch
> > against a 2.5.39 kernel and finally some documentation.
>
> o lkc-0.7-2.5.39.diff includes patches to include/linux/autoconf.h

Ok, easily fixed (and the reject can be easily ignored).

> o 'make distclean; make oldconfig' produces
>
> make[1]: Entering directory /usr/src/linux-2.5.39/scripts/lkc'
> Makefile:42: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
> make[1]: Leaving directory /usr/src/linux-2.5.39/scripts/lkc'
> make: *** [oldconfig] Error 2
>
> i.e. the patch seems to have foomed up the tabs

Hmm, my make ignores this and obviously Kai's make too, as I copied this
from his patch.

> o fix up & continue, 'make distclean; make oldconfig' produces
>
> kala@kirsi:/usr/src/linux-2.5.39$ make oldconfig
> make[1]: Entering directory /usr/src/linux-2.5.39/scripts/lkc'
> cat zconf.tab.h_shipped > zconf.tab.h
> gcc -Wp,-MD,./.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -c -o conf.o conf.c
> /bin/sh: /usr/src/linux-2.5.39/scripts/fixdep: No such file or directory
> make[1]: *** [conf.o] Error 1
> make[1]: Leaving directory /usr/src/linux-2.5.39/scripts/lkc'
> make: *** [oldconfig] Error 2

I have to pass on this one to Kai too. Personally I think fixdep shouldn't
be used for host programs. An "make scripts/fixdep" gets you past this
for now.

bye, Roman

2002-09-28 15:37:31

by Roman Zippel

[permalink] [raw]
Subject: Re: linux kernel conf 0.7

Hi,

On Sat, 28 Sep 2002, Tomas Szepe wrote:

> > At http://www.xs4all.nl/~zippel/lc/ you can find the latest version of the
> > new config system. Besides the usual archive there is also now a patch
> > against a 2.5.39 kernel and finally some documentation.
>
> o lkc-0.7-2.5.39.diff includes patches to include/linux/autoconf.h
> o 'make distclean; make oldconfig' produces

Ok, I just put a new version 0.7.1 there, which fixes these problems.

bye, Roman

2002-09-28 22:43:41

by Sam Ravnborg

[permalink] [raw]
Subject: Re: linux kernel conf 0.7

On Sat, Sep 28, 2002 at 04:25:43PM +0200, Roman Zippel wrote:
> Hi,
>
> At http://www.xs4all.nl/~zippel/lc/ you can find the latest version of the
> new config system.
Played with 0.7.1 just a little. Looks good so far.

1) Old tools zapped <file:> tags around filenames.

> An issue (which was also mentioned by Jeff Garzik) is the help text
> format. Jeff likes to have an endhelp, where I think it's redundant.
2) The current way forces the layout of the help text. I would prefer a way
that allowed the tools to use the space available instead.
Then a "." followed by newline could be interpreted as "forced-new-line"
or similar.
If endhelp is needed for that I vote for this as well.

3) The syntax seems to be:
config SYMBOL
type-of-symbol optional-text
I would like "optional-text" to become mandatory. Then you could bail out
with an error when it does not exist.
An empty string should be legal "", to cope with symbols not having any
associated text today.
4) Did not find the documentation you mentioned, but on the other hand I
applied only the 2.3.39 diff.


Minor details:

5) Show All intuitively is a shortcut for selecting all the three
possibilities {NAME, RANGE, DATA}, but is about showing all symbols.
6) The ARCH specific options does not fit well into the tree.
GENERIC_ISA_DMA in top of tree, X86_SMP in bottom of tree.
Visible only with SHOW ALL enabled.
7) I can step down in the tree but I need to select each sibling in the tree
induvidially. I expected to be able to select Cirrus logic under ALSA, and
let the selection boil up to the top.
8) File|Save followed by File|Quit. Still it ask if I want to save, even
no changes made inbetween.


9) Renames a file in a source statement:
[sam@mars lkc-2.5.39]$ make xconfig
make[1]: `qconf' is up to date.
./scripts/lkc/qconf arch/i386/Build.conf
can't find file ssound/arm/Build.conf
make: *** [xconfig] Error 1

Error shall tell where the file is sourced. [.../Build.conf:27]

10) Deleted endmenu tag in sound/Build.conf:
[sam@mars lkc-2.5.39]$ make xconfig
make[1]: `qconf' is up to date.
./scripts/lkc/qconf arch/i386/Build.conf
<none>:0:parse error, unexpected $
make: *** [xconfig] Error 1

Some errorhandling needs to be improved a little.


Sam

2002-09-28 23:56:49

by Roman Zippel

[permalink] [raw]
Subject: Re: linux kernel conf 0.7

Hi,

On Sun, 29 Sep 2002, Sam Ravnborg wrote:

> 1) Old tools zapped <file:> tags around filenames.

Ok.

> > An issue (which was also mentioned by Jeff Garzik) is the help text
> > format. Jeff likes to have an endhelp, where I think it's redundant.
> 2) The current way forces the layout of the help text. I would prefer a way
> that allowed the tools to use the space available instead.
> Then a "." followed by newline could be interpreted as "forced-new-line"
> or similar.
> If endhelp is needed for that I vote for this as well.

The problem is that the Config.help format has almost no restrictions, so
somehow I have to avoid messing up the content (at least for the
majority of options), so far I tried to avoid to reformat all the help
text.
Another possibility might to use html tags.

> 3) The syntax seems to be:
> config SYMBOL
> type-of-symbol optional-text
> I would like "optional-text" to become mandatory. Then you could bail out
> with an error when it does not exist.

Why should it be an error? Symbols without a text are used for derived
symbols.

> 4) Did not find the documentation you mentioned, but on the other hand I
> applied only the 2.3.39 diff.

It's on the web. :)

> 5) Show All intuitively is a shortcut for selecting all the three
> possibilities {NAME, RANGE, DATA}, but is about showing all symbols.
> 6) The ARCH specific options does not fit well into the tree.
> GENERIC_ISA_DMA in top of tree, X86_SMP in bottom of tree.
> Visible only with SHOW ALL enabled.

"Show All" is mostly only a debug option, so what you see here isn't
important to the normal user.

> 7) I can step down in the tree but I need to select each sibling in the tree
> induvidially. I expected to be able to select Cirrus logic under ALSA, and
> let the selection boil up to the top.

This is a planned feature, first I want to have a replacement for the old
tools, new features come later.
I suppose you use QT2 and "Show All" was active? Then it can be a bit
confusing since the usually not visible items are not specially marked.

> 8) File|Save followed by File|Quit. Still it ask if I want to save, even
> no changes made inbetween.

Simple to do.

> 9) Renames a file in a source statement:
> [sam@mars lkc-2.5.39]$ make xconfig
> make[1]: `qconf' is up to date.
> ./scripts/lkc/qconf arch/i386/Build.conf
> can't find file ssound/arm/Build.conf
> make: *** [xconfig] Error 1
>
> Error shall tell where the file is sourced. [.../Build.conf:27]
>
> 10) Deleted endmenu tag in sound/Build.conf:
> [sam@mars lkc-2.5.39]$ make xconfig
> make[1]: `qconf' is up to date.
> ./scripts/lkc/qconf arch/i386/Build.conf
> <none>:0:parse error, unexpected $
> make: *** [xconfig] Error 1
>
> Some errorhandling needs to be improved a little.

I know and it slowly moves to the top of the TODO list. :)

bye, Roman