Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757537AbXETUlU (ORCPT ); Sun, 20 May 2007 16:41:20 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756117AbXETUlM (ORCPT ); Sun, 20 May 2007 16:41:12 -0400 Received: from mail8.sea5.speakeasy.net ([69.17.117.10]:53372 "EHLO mail8.sea5.speakeasy.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756090AbXETUlM (ORCPT ); Sun, 20 May 2007 16:41:12 -0400 Date: Sun, 20 May 2007 13:41:11 -0700 (PDT) From: Trent Piepho X-X-Sender: xyzzy@shell4.speakeasy.net To: Stefan Richter cc: Satyam Sharma , Adrian Bunk , Andrew Morton , Sam Ravnborg , LKML , Roman Zippel , Kumar Gala , Simon Horman Subject: Re: RFC: kconfig select warnings bogus? In-Reply-To: <4650AB9B.9060800@s5r6.in-berlin.de> Message-ID: References: <20070519151523.GA26724@uranus.ravnborg.org> <20070519230940.GJ6291@stusta.de> <465029F1.6090301@s5r6.in-berlin.de> <465034AA.6030904@s5r6.in-berlin.de> <4650AB9B.9060800@s5r6.in-berlin.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2110 Lines: 51 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? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/