[kbuild-devel] Re: [patch] kernel config 3/N - move sound into drivers/media

2002-08-14 Thread Russell King

On Tue, Aug 13, 2002 at 11:35:58PM -0500, Peter Samuelson wrote:
 The big loser here is ARM - it no longer suppresses the sound card
 question for the appropriate boards.  But it's just one question, so I
 didn't sweat it too much.

I'd be tempted to drop that set of tests, and just rely on the per-driver
stuff, where its sane to do so.  There's no way we can special case all
the drivers out there for each machine type in the generic config files.
That is the route to madness.

-- 
Russell King ([EMAIL PROTECTED])The developer of ARM Linux
 http://www.arm.linux.org.uk/personal/aboutme.html



---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: [patch] kernel config 3/N - move sound into drivers/media

2002-08-14 Thread Arnd Bergmann

On Wednesday 14 August 2002 07:49, Peter Samuelson wrote:
 [Kai Germaschewski]
  It comes of the cost of testing for the architecture, since
  e.g. s390 does not want to include most of drivers/*, but that means
  we'd actually collect this knowledge at a centralized place.

 What we need is an easy way to check for any arch.  CONFIG_ARCH_S390
 is the right idea (though s390x sets it as well, not sure if that's
 good or bad). 

It's not logical, but it tends to help because it's what's meant most
of the time. I don't know a single place in the kernel where you want
to test for (CONFIG_ARCH_S390  !CONFIG_ARCH_S390X).

Rather than making everything depend on CONFIG_ARCH_THIS  CONFIG_ARCH_THAT,
I'd prefer if every driver depended on its bus type. With the new driver
model, every driver has a clearly defined bus type and driver class,
so it would be logical to have that driver option exactly when these two
are enabled. Of course, that probably means a huge amount of work but it 
helps avoid problems when a new architecture is added or an existing one
gets a new bus.
E.g., s390 used to have no support for SCSI, but with the zfcp driver
we enable drivers/scsi/Config.in, so now we get a lot of questions about
drivers that won't work. Enclosing the drivers in CONFIG_ARCH_s390 != y
does help us, but it would still be wrong to do that for a Sparc kernel
that supports some of the PCI cards but not the ISA ones.

Arnd 


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



[kbuild-devel] Re: [patch] config language dep_* enhancements

2002-08-14 Thread Roman Zippel

Hi,

On Tue, 13 Aug 2002, Peter Samuelson wrote:

 Mutating the language, long-term, so that it looks less like sh and
 more like a specialised language, is IMO a worthy goal.  And I think
 it can be done.  The main thing to deal with is adding an alternative
 syntax for 'if' statements which doesn't look like test(1).  More
 about that in a separate message.

That doesn't solve any of the more fundamental problems.
1) We still have 3 config parsers, which produce slightly different
.config files.
2) To integrate a new driver, you have to touch at least 3 files:
Config.in, Config.help, Makefile. Properly configuring and building a
driver outside of the tree is painful to impossible.

I'm not against fixing the bugs in the config scripts or adding some
small extensions, but if you want to mutate the language into something
different, I really hope you have a good plan for that.
The problems are really not simple, the current config language is very
limited, which also limits a bit the current error sources. As soon as you
add new features, you need to add better error checking, which will be
very painful in pure shell and keeping it consistent between multiple
parsers will also be interesting.
It's not the same problem area as with the build system. There we only
have a single Rules.make file. Normal users don't need to care much about
it. make was actually designed to build applications. The build system can
rely on correct information from the config system.
The build system was fixable within the capabilities of make, but the
config system involves a lot more complex system of various scripts and
programs. If you some great ideas to fix all the problems, I'd really like
to hear them.

bye, Roman



---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



[kbuild-devel] Re: [patch] kernel config 3/N - move sound into drivers/media

2002-08-14 Thread Kai Germaschewski

On Wed, 14 Aug 2002, Greg Banks wrote:

 @@ -330,6 +329,5 @@
  1  CONFIG_ZORRO
 -34 forward-dependancy
 +23 forward-dependancy
  11 CONFIG_ISDN_CAPI
  11 CONFIG_PROC_FS
 -11 CONFIG_SOUND_ACI_MIXER
  1  CONFIG_BLK_DEV_SD

Could you check that the appended patch solves the CONFIG_ISDN_CAPI 
problem (and doesn't introduce new ones)?

--Kai

= drivers/isdn/Config.in 1.18 vs edited =
--- 1.18/drivers/isdn/Config.in Wed Apr 24 09:42:33 2002
+++ edited/drivers/isdn/Config.in   Wed Aug 14 10:49:07 2002
@@ -22,8 +22,9 @@
   tristate 'CAPI2.0 support' CONFIG_ISDN_CAPI
   if [ $CONFIG_ISDN_CAPI != n ]; then
  source drivers/isdn/capi/Config.in
- source drivers/isdn/hardware/Config.in
   fi
+
+  source drivers/isdn/hardware/Config.in
fi
 fi
 endmenu
= drivers/isdn/hardware/Config.in 1.1 vs edited =
--- 1.1/drivers/isdn/hardware/Config.in Sun Apr 21 23:07:44 2002
+++ edited/drivers/isdn/hardware/Config.in  Wed Aug 14 11:01:04 2002
@@ -2,4 +2,26 @@
 # ISDN hardware drivers
 #
 
-source drivers/isdn/hardware/avm/Config.in
+if [ $CONFIG_ISDN_CAPI != n ]; then
+  comment 'CAPI hardware drivers'
+  source drivers/isdn/hardware/avm/Config.in
+fi
+
+if [ $CONFIG_ISDN != n ]; then
+  comment 'ISDN4Linux hardware drivers'
+
+  source drivers/isdn/hisax/Config.in
+
+  mainmenu_option next_comment
+  comment 'Active cards'
+
+  source drivers/isdn/icn/Config.in
+  source drivers/isdn/pcbit/Config.in
+  source drivers/isdn/sc/Config.in
+  source drivers/isdn/act2000/Config.in
+  source drivers/isdn/eicon/Config.in
+  source drivers/isdn/tpam/Config.in
+  source drivers/isdn/hysdn/Config.in
+  endmenu
+fi
+
= drivers/isdn/hardware/avm/Config.in 1.3 vs edited =
--- 1.3/drivers/isdn/hardware/avm/Config.in Tue Jun 18 14:00:47 2002
+++ edited/drivers/isdn/hardware/avm/Config.in  Wed Aug 14 10:53:57 2002
@@ -3,7 +3,7 @@
 #
 
 mainmenu_option next_comment
-comment 'Drivers for active AVM cards'
+comment 'Active AVM cards'
 
 bool 'Support AVM cards' CONFIG_CAPI_AVM
 
= drivers/isdn/hisax/Config.in 1.9 vs edited =
--- 1.9/drivers/isdn/hisax/Config.inTue Jul 30 07:15:09 2002
+++ edited/drivers/isdn/hisax/Config.in Wed Aug 14 11:01:20 2002
@@ -1,5 +1,5 @@
 mainmenu_option next_comment
-comment 'Passive ISDN cards'
+comment 'Passive cards'
 dep_tristate 'HiSax SiemensChipSet driver support' CONFIG_ISDN_DRV_HISAX $CONFIG_ISDN
 if [ $CONFIG_ISDN_DRV_HISAX != n ]; then
comment '  D-channel protocol features'
= drivers/isdn/i4l/Config.in 1.3 vs edited =
--- 1.3/drivers/isdn/i4l/Config.in  Sun Apr 21 23:07:44 2002
+++ edited/drivers/isdn/i4l/Config.in   Wed Aug 14 10:47:42 2002
@@ -24,22 +24,5 @@
dep_tristate 'Support isdn diversion services' CONFIG_ISDN_DIVERSION $CONFIG_ISDN
 endmenu
 
-comment 'low-level hardware drivers'
-
-source drivers/isdn/hisax/Config.in
-
-### Active ISDN cards
-
-mainmenu_option next_comment
-comment 'Active ISDN cards'
-
-source drivers/isdn/icn/Config.in
-source drivers/isdn/pcbit/Config.in
-source drivers/isdn/sc/Config.in
-source drivers/isdn/act2000/Config.in
-source drivers/isdn/eicon/Config.in
-source drivers/isdn/tpam/Config.in
-source drivers/isdn/hysdn/Config.in
-
 endmenu
 



---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



[kbuild-devel] Get rid of shell based Config.in parsers?

2002-08-14 Thread Sam Ravnborg

On Wed, Aug 14, 2002 at 10:22:55AM +1000, Greg Banks wrote:
 The trouble is actually achieving that in shell-based parsers where
 shell code cannot tell whether $CONFIG_EXPERIMENTAL has been used in
 a condition.

Where comes the requirement that we shall keep the existing shell 
based config parsers?

Remembering the CML2 war there were no serious objections about
shifting away from shell based parsers (but certainly a lot about the
alternative selected).

It is possible to replace Configure and menuconfig rather easy
and then see if a new xconfig showed up based on the new parsers.
This would allow us to do much more advanced semantic checks, and
give proper warnings to catch errors early.
The first versions should obviously not introduce new syntax, that
should evolve over time.


I dislike seeing arguments that this is not easy/possible in shell based
parsers. If the chosen technology does not fit the problem domain
then it's about time to shift technology.

Sam


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Get rid of shell based Config.in parsers?

2002-08-14 Thread Peter Samuelson


[Sam Ravnborg]
 Where comes the requirement that we shall keep the existing shell 
 based config parsers?

I don't make that argument - mconfig is the superior solution by far -
but it is certainly the path of least resistance.

As pertains to CONFIG_EXPERIMENTAL and  (EXPERIMENTAL), it *is*
possible to add such a feature to the shell-based parsers by changing
the syntax slightly - specifically to lose the '$' on dependencies.

Changing the syntax *does* have ramifications when it means adapting
three separate parsers, but it can be done.

 Remembering the CML2 war there were no serious objections about
 shifting away from shell based parsers (but certainly a lot about
 the alternative selected).

It would have been a big change and a big flag day, and among other
problems, the rulebase conversion issue was handled wrong.  Eric
refused to start from a 1-1 equivalent rulebase, preferring to tweak
the rulebase as he went along - partly just to fix bugs, partly to
show off his new capabilities.  Unfortunately, without the
apples-to-apples comparison, many people distrusted the new system,
superior though it was in many ways.

This is the primary lesson to be learned from CML2.  Anyone trying to
redesign a subsystem such as the kernel config system needs to keep it
in mind.  (Yes, I know from the rest of your message that you learned
it.)

Peter


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



[kbuild-devel] [patch] remove duplicated AGP Config.in

2002-08-14 Thread Peter Samuelson


drivers/char/Config.in still has a complete copy of agp/Config.in.
It's an exact cut-n-paste - the md5sums even match. (:

--- 2.5.31/drivers/char/Config.in~  2002-08-08 22:43:28.0 -0500
+++ 2.5.31/drivers/char/Config.in   2002-08-14 17:25:20.0 -0500
@@ -173,21 +173,7 @@
 fi
 endmenu
 
-dep_tristate '/dev/agpgart (AGP Support)' CONFIG_AGP $CONFIG_DRM_AGP
-if [ $CONFIG_AGP != n ]; then
-   bool '  Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support' 
CONFIG_AGP_INTEL
-   bool '  Intel I810/I815/I830M (on-board) support' CONFIG_AGP_I810
-   bool '  VIA chipset support' CONFIG_AGP_VIA
-   bool '  AMD Irongate, 761, and 762 support' CONFIG_AGP_AMD
-   bool '  Generic SiS support' CONFIG_AGP_SIS
-   bool '  ALI chipset support' CONFIG_AGP_ALI
-   bool '  Serverworks LE/HE support' CONFIG_AGP_SWORKS
-   if [ $CONFIG_IA64 = y ]; then
- bool '  Intel 460GX support' CONFIG_AGP_I460
- bool '  HP ZX1 AGP support' CONFIG_AGP_HP_ZX1
-   fi
-fi
-
+source drivers/char/agp/Config.in
 source drivers/char/drm/Config.in
 
 if [ $CONFIG_HOTPLUG = y -a $CONFIG_PCMCIA != n ]; then


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

2002-08-14 Thread Greg Banks

Peter Samuelson wrote:
 
 [Greg Banks]
  [...CONFIG_SERIAL and CONFIG_PCMCIA warnings...]
 
 Hmmm, either I missed those in your earlier messages, or you didn't
 post them.

Probably I didn't post them.  What I posted was a small subset of the full log.

   +   dep_tristate '  I2C bit-banging interfaces' CONFIG_I2C_ALGOBIT $CONFIG_I2C
 
  Are you sure want this one there?
 
 I didn't like it either, but it's needed in a couple odd places.  What
 would you suggest - moving the whole i2c menu up?

Not all the way up to the new menu, but before the bits that depend on them,
which are in drivers/video/ drivers/media/video and drivers/ieee1394 IIRC.

 Thanks, your oracle feedback is much appreciated.

I'm hoping to have an RPM out this weekend so you can do the augury yourself.

  @@ -210,2 +210,5 @@
   2  CONFIG_FB
  +2  CONFIG_KMOD
  +2  CONFIG_MODULES
  +2  CONFIG_MODVERSIONS
   2  CONFIG_RTC
 
 What does that mean?  All I did there was to combine two toplevel
 menus into one.  Did this do something bad?

Apparently.  In the stock kernel:

warning:arch/mips/config.in:224:CONFIG_KMOD has overlapping definitions
warning:init/Config.in:19:location of previous definition
warning:arch/parisc/config.in:53:CONFIG_KMOD has overlapping definitions
warning:init/Config.in:19:location of previous definition

Did I mention Gordian knot?

  -36 overlapping-definitions
  +38 overlapping-definitions
   11 CONFIG_SOUND_CMPCI_FMIO
  @@ -261,2 +263,3 @@
   2  CONFIG_PARPORT
  +2  CONFIG_USB
 
 OK, I see CONFIG_USB in arch/cris/drivers/Config.in - is there another
 instance I'm missing?

There's two in the same file, lines 185 and 189.

  -8  different-compound-type
  -3290   total
  +10 different-compound-type
  +3055   total
 
 different-compound-type?

Please ignore that one.  It's an artifact of the way I check for symbols
not declared anywhere at all, related to config.in's using the same banner
for a menu and a comment.

Greg.
-- 
the price of civilisation today is a courageous willingness to prevail,
with force, if necessary, against whatever vicious and uncomprehending
enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001.


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



[kbuild-devel] RFC: kernel config: new dependency syntax

2002-08-14 Thread Peter Samuelson


[I wrote]
 Mutating the language, long-term, so that it looks less like sh and
 more like a specialised language, is IMO a worthy goal.  And I think
 it can be done.  The main thing to deal with is adding an
 alternative syntax for 'if' statements which doesn't look like
 test(1).  More about that in a separate message.

I've come up with syntax I think I'm happy with.  It supports most of
the current [ ] based if statement semantics, can be implemented in
shell, and (most importantly for me) drops those $ signs.  This lays
the groundwork for stuff like better error checking and auto
(EXPERIMENTAL) tags.

I made a proof-of-concept patch for Menuconfig.  The Configure patch
would be very similar; God only knows what xconfig or mconfig would
require.

I've reused the syntax for a dependency line (the tail end of a
dep_bool / dep_mbool / dep_tristate), like so:

  if_dep idependency line/i
 ...
  endif

If the dependency line evaluates to 'm' or 'y', the body is executed.

Now with our current dep_* syntax, this isn't very powerful.  I've
made a few extensions which are, I believe, almost enough[*] to
displace the current use of test(1)-based 'if' statements.  Some of
this syntax is not really needed for dep_* lines, but I *really* like
having a single backend function for all of dep_bool, dep_tristate and
if_dep.

[*] almost enough because I haven't implemented an 'else'
directive.  It would be trivial, but I'm not sure what to call it.
'else' itself is a shell primitive, so the shell-based parsers
(Configure, Menuconfig) wouldn't like it.

* '$CONFIG_FOO' can and should be replaced with 'CONFIG_FOO' without
  the $.  My current patch accepts both; eventually we might drop
  backwards compatibility.

* !CONFIG_FOO negates sense: !y==n, !n==y, !==y, !m==m.  The last
  !m==m is due to Roman's observation that it is useful to exclude two
  things from both being Y while allowing them to both be M.

* 'or' placed between dependencies functions as a logical OR, and
  takes very low precedence.  This complements the implicit AND
  performed between every pair of dependencies.

x or x - x, for any x
n or m == m or n  - m
n or y == y or n  - y
m or y == y or m  - y

* A=B evaluates to either Y or N, depending on whether A is logically
  equivalent to B.  It has higher precedence than the ! operator.
  Thus:

  CONFIG_FOO=m   evaluates to 'y' if CONFIG_FOO is m, 'n' otherwise
  CONFIG_BAR=n   evaluates to 'y' if CONFIG_BAR is n or empty, 'n' otherwise
  !CONFIG_BAZ=y  evaluates to 'n' if CONFIG_BAZ is y, 'y' otherwise


This syntax is fully backward-compatible.  Examples of use:

  if_dep CONFIG_X86 or CONFIG_X86_64 or CONFIG_IA64
 bool 'ACPI support' CONFIG_ACPI
  endif

  if_dep CONFIG_SOUND !CONFIG_SOUND_ALSA
 source sound/oss/Config.in
  endif

  dep_tristate 'Adaptec (new driver)' CONFIG_AIC7XXX_NEW !CONFIG_AIC7XXX_OLD
  dep_tristate 'Adaptec (old driver)' CONFIG_AIC7XXX_OLD !CONFIG_AIC7XXX_NEW


The one thing I wanted to specify but didn't is an 'else' statement.
The problem is that I can't think what to call it - can't use 'else'
because the shell-based parsers (Configure, Menuconfig) will choke on
it.  Any ideas?

Any other comments?  Am I going in totally the wrong direction?

Peter


--- 2.5.31/scripts/Menuconfig   2002-06-09 00:27:32.0 -0500
+++ 2.5.31w/scripts/Menuconfig  2002-08-14 21:00:27.0 -0500
@@ -73,7 +73,10 @@
 # - Support for multiple conditions in dep_tristate().
 # - Implemented new functions: define_tristate(), define_int(), define_hex(),
 #   define_string(), dep_bool().
-# 
+#
+# 14 Aug 2002, Peter Samuelson [EMAIL PROTECTED]
+# - add lots of new syntax for dependencies in 'dep_*' functions
+# - also use this syntax for a new 'if_dep' / 'endif' primitive
 
 
 #
@@ -112,6 +115,67 @@
 eval info=\$INFO_$1
 }
 
+
+# Reduce a dependency line down to a single char [ymn].
+# Terms are implicitly ANDed together: 'y m' = 'm y' = m, '... n' = 'n ...' = n
+# Each term can be:
+#   'y', 'm', 'n'  interpreted as-is
+#   'CONFIG_FOO'   reduces to value of CONFIG_FOO, or 'n' if unset
+#   'or'   OR operator, lower precedence than the implicit AND
+#  specifics:  'y or ...' = '... or y' = y
+#  if no 'y':  'm or ...' = '... or m' = m
+#   term=value tested for equality, replaced with 'y' or 'n'
+#   !term  negate value of term: y-n, n-y, m-m, ''-y
+# Note that there is no grouping construct.
+# Use boolean transforms, or nest conditionals.
+function dep_calc () {
+   local neg arg ordep
+   if [ $nest_ifdep = n ]; then
+   cur_dep=n;
+   return 1;
+   fi
+   ordep=n
+   cur_dep=y   # return value
+   for arg; do
+ neg=;
+ case $arg in
+   or)
+ case $ordep in
+   n) ordep=$cur_dep ;;
+   m) [ $cur_dep = y ]  ordep=y ;;
+ esac
+ cur_dep=y; continue ;;
+  

Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

2002-08-14 Thread Greg Banks

Roman Zippel wrote:
 
 Hi,
 
 On Tue, 13 Aug 2002, Peter Samuelson wrote:
 
  Mutating the language, long-term, so that it looks less like sh [...]
 
 That doesn't solve any of the more fundamental problems.

Correct, it doesn't.

 1) We still have 3 config parsers, which produce slightly different
 .config files.

Yes.

 2) To integrate a new driver, you have to touch at least 3 files:
 Config.in, Config.help, Makefile. Properly configuring and building a
 driver outside of the tree is painful to impossible.

Yes.

 The problems are really not simple, the current config language is very
 limited, [...]

I don't think anyone who actually understands the config system would
argue these points, but we are limited by practical constraints to making
incremental improvements only.

Greg.
-- 
the price of civilisation today is a courageous willingness to prevail,
with force, if necessary, against whatever vicious and uncomprehending
enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001.


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

2002-08-14 Thread Peter Samuelson


[Greg Banks]
+   dep_tristate '  I2C bit-banging interfaces' CONFIG_I2C_ALGOBIT $CONFIG_I2C
  
   Are you sure want this one there?
  
  I didn't like it either, but it's needed in a couple odd places.  What
  would you suggest - moving the whole i2c menu up?
 
 Not all the way up to the new menu, but before the bits that depend on them,
 which are in drivers/video/ drivers/media/video and drivers/ieee1394 IIRC.

It should be possible to take I2C back out of init/Config.in, in that
case.  I'll do that in my tree.

   +2  CONFIG_KMOD
   +2  CONFIG_MODULES
   +2  CONFIG_MODVERSIONS
2  CONFIG_RTC
  
  What does that mean?  All I did there was to combine two toplevel
  menus into one.  Did this do something bad?
 
 Apparently.  In the stock kernel:
 
 warning:arch/mips/config.in:224:CONFIG_KMOD has overlapping definitions
 warning:init/Config.in:19:location of previous definition
 warning:arch/parisc/config.in:53:CONFIG_KMOD has overlapping definitions
 warning:init/Config.in:19:location of previous definition

Weird.  These should have triggered all along - any idea why they
didn't?

Well, they're fixed in my tree.  It looks [trivial], but this one
makes me uneasy.  I mean, it's such an obvious bug - the toplevel
Loadable module support menu appears twice - that I almost think it
was somehow intentional.

 Did I mention Gordian knot?

Yes, I believe you did.  Does that make ESR Alexander the Great? (:

  OK, I see CONFIG_USB in arch/cris/drivers/Config.in - is there another
  instance I'm missing?
 
 There's two in the same file, lines 185 and 189.

Right - they're mutually exclusive, so I thought it might only count
as one.  Anyway, fixed in my tree.

 related to config.in's using the same banner for a menu and a
 comment.

mainmenu_option next_comment ... now *there's* a bit of syntax that
needs to change.  Even config-language.txt agrees.

Peter


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

2002-08-14 Thread Greg Banks

Peter Samuelson wrote:
 
 [Greg Banks]
+2  CONFIG_KMOD
+2  CONFIG_MODULES
+2  CONFIG_MODVERSIONS
 2  CONFIG_RTC
  
   What does that mean?  All I did there was to combine two toplevel
   menus into one.  Did this do something bad?
 
  Apparently.  In the stock kernel:
 
  warning:arch/mips/config.in:224:CONFIG_KMOD has overlapping definitions
  warning:init/Config.in:19:location of previous definition
  warning:arch/parisc/config.in:53:CONFIG_KMOD has overlapping definitions
  warning:init/Config.in:19:location of previous definition
 
 Weird.  These should have triggered all along - any idea why they
 didn't?

Because you moved the items to a menu with a different name.

GCML2 issues the overlapping-definitions warning if the same item appears
twice in such a way that both definitions can be visible at the same time.
A sub-case is where the item appears twice unconditionally in the same menu,
which was happening before your change.  Another sub-case is where the item
appears twice unconditionally in different menus, which happened after your
change.  Hence overlapping-definitions warnings for CONFIG_KMOD et al did not
appear in the diff of summaries.

GCML2 issues the different-parent warning when an item appears in two
different menu parents, regardless of conditions.  Before your change, the
two identically named menus were merged into one node (this behaviour is
very necessary for reasons too complex to go into here) so the two definitions
of CONFIG_KMOD had the same parent.  After your change, they had different
parents, hence the new warnings.

 Well, they're fixed in my tree.  It looks [trivial], but this one
 makes me uneasy.  I mean, it's such an obvious bug - the toplevel
 Loadable module support menu appears twice - that I almost think it
 was somehow intentional.

There are many [trivial] errors.  My favourite is CONFIG_SOUND_CMPCI_FMIO.

  Did I mention Gordian knot?
 
 Yes, I believe you did.  Does that make ESR Alexander the Great? (:

Given the noise of his arrival and the speed of his departure...Darius.

  related to config.in's using the same banner for a menu and a
  comment.
 
 mainmenu_option next_comment ... now *there's* a bit of syntax that
 needs to change.  Even config-language.txt agrees.

That would be great, but the problem is related to the way comments are
defined in CML2, which doesn't quite fit in CML1.

Greg.
-- 
the price of civilisation today is a courageous willingness to prevail,
with force, if necessary, against whatever vicious and uncomprehending
enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001.


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

2002-08-14 Thread John Alvord

On Thu, 15 Aug 2002 11:52:48 +1000, Greg Banks [EMAIL PROTECTED]
wrote:

Roman Zippel wrote:
 
 Hi,
 
 On Tue, 13 Aug 2002, Peter Samuelson wrote:
 
  Mutating the language, long-term, so that it looks less like sh [...]
 
 That doesn't solve any of the more fundamental problems.

Correct, it doesn't.

 1) We still have 3 config parsers, which produce slightly different
 .config files.

Yes.

 2) To integrate a new driver, you have to touch at least 3 files:
 Config.in, Config.help, Makefile. Properly configuring and building a
 driver outside of the tree is painful to impossible.

Yes.

 The problems are really not simple, the current config language is very
 limited, [...]

I don't think anyone who actually understands the config system would
argue these points, but we are limited by practical constraints to making
incremental improvements only.

I've been puzzling about this problem and the CML2 trainwreck.

Maybe we can used advanced tools to remove the many bugs and
inconsistancies and then switch to a better config tool. That way the
rulebase will be (almost) identical when the config process changes.

john alvord


---
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code1
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel



Re: [kbuild-devel] RFC: kernel config: new dependency syntax

2002-08-14 Thread Greg Banks

Peter Samuelson wrote:
 
 I've come up with syntax I think I'm happy with.  It supports most of
 the current [ ] based if statement semantics, can be implemented in
 shell, and (most importantly for me) drops those $ signs.  This lays
 the groundwork for stuff like better error checking and auto
 (EXPERIMENTAL) tags.
 
 I've reused the syntax for a dependency line (the tail end of a
 dep_bool / dep_mbool / dep_tristate), like so:
 
   if_dep idependency line/i
  ...
   endif
 
 If the dependency line evaluates to 'm' or 'y', the body is executed.

Hmm.

Perhaps (I haven't completely thought this through) by analogy with
dep_bool/dep_mbool, you would want two new if statements which differ in
the way they treat 'm'?  If the conditional syntax is the same people
may expect that.

Also you will want to define the behaviour when the line evaluates to 0.

./arch/sparc64/config.in:180:if [ $CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS = 
0 ]; then
./drivers/scsi/Config.in:166:  if [ $CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS = 0 ]; 
then

 [*] almost enough because I haven't implemented an 'else'
 directive.  It would be trivial, but I'm not sure what to call it.
 'else' itself is a shell primitive, so the shell-based parsers
 (Configure, Menuconfig) wouldn't like it.

You will need to implement it.  You could call it elsedep.

 * 'or' placed between dependencies functions as a logical OR, and
   takes very low precedence.  This complements the implicit AND
   performed between every pair of dependencies.
 
 x or x - x, for any x
 n or m == m or n  - m
 n or y == y or n  - y
 m or y == y or m  - y

How about an 'and' operator too, which is redundant but more readable.

 --- 2.5.31/scripts/Menuconfig   2002-06-09 00:27:32.0 -0500
 +++ 2.5.31w/scripts/Menuconfig  2002-08-14 21:00:27.0 -0500
 @@ -112,6 +115,67 @@
  eval info=\$INFO_$1
  }
 
 +
 +# Reduce a dependency line down to a single char [ymn].
 +# Terms are implicitly ANDed together: 'y m' = 'm y' = m, '... n' = 'n ...' = n

Also 'y y' = y

I'll look at the rest when there's an else.

Greg.
-- 
the price of civilisation today is a courageous willingness to prevail,
with force, if necessary, against whatever vicious and uncomprehending
enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001.


---
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1refcode1=vs3390
___
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel