mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Trent Piepho <xyzzy@speakeasy.org>
To: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: Satyam Sharma <satyam.sharma@gmail.com>,
	Adrian Bunk <bunk@stusta.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Sam Ravnborg <sam@ravnborg.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Roman Zippel <zippel@linux-m68k.org>,
	Kumar Gala <galak@kernel.crashing.org>,
	Simon Horman <horms@verge.net.au>
Subject: Re: RFC: kconfig select warnings bogus?
Date: Sun, 20 May 2007 13:41:11 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.58.0705201316350.1671@shell4.speakeasy.net> (raw)
In-Reply-To: <4650AB9B.9060800@s5r6.in-berlin.de>

On Sun, 20 May 2007, Stefan Richter wrote:
> Trent Piepho wrote:
> > config A
> > 	bool "A"
> >
> > config B
> > 	bool "B"
> > 	depends on A
> >
> > config C
> > 	bool "C"
> > 	select B
> >
> > In this case, it's possible to turn C on and A off.  B will be on, even
> > though it depends on A and A is off.
> >
> > The kconfig docs say that "B..  depends on A" sets the maximum value of B
> > to be that of A.  Since A=0, the max value of B is 0.
> >
> > The kconfig docs also say that "C..  select B" sets the minimum value of B
> > to be that of C.  Since C=2, the minimum value of B is 2.
> >
> > So we have B>=2 and B<=0, which is obviously impossible.  Yet *config has
> > no problem with this, and will set B=2 even the 'depends' means B must be
> > 0.  It seems like "select" will override any other dependencies.
>
> If that's so, then we have /a/ an incomplete definition of the Kconfig
> language (what is supposed to happen if "select" attempts to set an
> impossible value?) and /b/ a bug in the make xyzconfig programs (they
> generate invalid configs).

This came up when I was working on the v4l-dvb tree's out of kernel build
system.  It uses the same Kconfig files, but I've created a config system in
perl to parse and evaluate them.  It will disable options that the kernel
config programs allow, and it is because I'm treating this situation
differently:  Since "B" is disabled because "A" is off, "C" must also be
disabled.

Another way of dealing with this would be to have 'select' follow the
dependency chain back up.  Turning on C selects B, B depends on A, so A is
also selected.

One problem with this is that "depends on" can take complex expressions.
Finding the solution is NP complete, which likely isn't a problem for the
sizes of realistic Kconfig files.  But there could easily be multiple
solutions, so which one is the right one?

  reply	other threads:[~2007-05-20 20:41 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-19 15:15 Sam Ravnborg
2007-05-19 18:09 ` Andrew Morton
2007-05-19 22:17   ` Satyam Sharma
2007-05-19 22:49     ` Satyam Sharma
2007-05-19 23:09       ` Adrian Bunk
2007-05-19 23:17         ` Satyam Sharma
2007-05-19 23:25           ` Adrian Bunk
2007-05-19 23:36             ` Satyam Sharma
2007-05-19 23:41               ` Satyam Sharma
2007-05-19 23:51                 ` Adrian Bunk
2007-05-20  0:02                   ` Satyam Sharma
2007-05-19 23:48               ` Adrian Bunk
2007-05-19 23:55                 ` Satyam Sharma
2007-05-20  0:13                   ` Adrian Bunk
2007-05-20  0:19                     ` Satyam Sharma
2007-05-20  9:52                       ` Trent Piepho
2007-05-20 10:58                         ` Stefan Richter
2007-05-20 11:23                           ` Trent Piepho
2007-05-20 11:44                             ` Stefan Richter
2007-05-20 19:57                               ` Trent Piepho
2007-05-20 20:12                                 ` Stefan Richter
2007-05-20 20:41                                   ` Trent Piepho [this message]
2007-05-22 15:13                                     ` Satyam Sharma
2007-05-20 18:30                         ` Adrian Bunk
2007-05-20  0:46       ` Stefan Richter
2007-05-20  0:53         ` Satyam Sharma
2007-05-20  1:04           ` Satyam Sharma
2007-05-20  8:31             ` Stefan Richter
2007-05-20 11:38               ` Satyam Sharma
2007-05-20 11:47                 ` Stefan Richter
2007-05-20 11:57                   ` Satyam Sharma
2007-05-20 13:09                     ` Stefan Richter
2007-05-20 13:50                       ` Satyam Sharma
2007-05-20 14:39                         ` Stefan Richter
2007-05-22 14:53                           ` Satyam Sharma
2007-05-22 17:03                             ` Stefan Richter
2007-05-22 17:13                               ` Satyam Sharma
2007-05-22 17:38                                 ` Stefan Richter
2007-05-22 17:46                                   ` Satyam Sharma
2007-05-22 17:54                                     ` Stefan Richter
2007-05-22 17:59                                       ` Satyam Sharma
2007-05-20 18:23                       ` Adrian Bunk
2007-05-19 23:05   ` Adrian Bunk
2007-05-19 23:17     ` Satyam Sharma
2007-05-19 23:21       ` Satyam Sharma
2007-05-19 23:29         ` Adrian Bunk
2007-05-19 23:32           ` Satyam Sharma
2007-05-19 23:23       ` Adrian Bunk
2007-05-19 23:22     ` Andrew Morton
2007-05-20  0:02       ` Adrian Bunk
2007-05-20  0:11         ` Satyam Sharma
2007-05-20  9:43         ` Russell King
2007-05-20  9:40       ` Russell King
2007-05-20 10:17         ` Sam Ravnborg
2007-05-20 11:07         ` Geert Uytterhoeven
2007-05-21  0:25 ` Roman Zippel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.58.0705201316350.1671@shell4.speakeasy.net \
    --to=xyzzy@speakeasy.org \
    --cc=akpm@linux-foundation.org \
    --cc=bunk@stusta.de \
    --cc=galak@kernel.crashing.org \
    --cc=horms@verge.net.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    --cc=satyam.sharma@gmail.com \
    --cc=stefanr@s5r6.in-berlin.de \
    --cc=zippel@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®