Hi, On Fri, Aug 15, 2014 at 2:37 AM, Dirk Gouders <dirk@xxxxxxxxxxx> wrote: > Bin Liu <binmlist@xxxxxxxxx> writes: > >> Dirk, >> >> On Thu, Aug 14, 2014 at 1:52 AM, Dirk Gouders <dirk@xxxxxxxxxxx> wrote: >>> Bin Liu <binmlist@xxxxxxxxx> writes: >>> >>>> All, >>>> >>>> On Mon, Nov 18, 2013 at 12:08 PM, Yann E. MORIN <yann.morin.1998@xxxxxxx> wrote: >>>>> Dirk, All, >>>>> >>>>> On 2013-11-07 15:05 +0100, Dirk Gouders spake thusly: >>>>>> If choices consist of choice_values that depend on symbols set to 'm', >>>>>> those choice_values are not set to 'n' if the choice is changed from >>>>>> 'm' to 'y' (in which case only one active choice_value is allowed). >>>>>> Those values are also written to the config file causing modules to be >>>>>> built when they should not. >>>>>> >>>>>> The following config can be used to reproduce and examine the problem; >>>>>> with the frontend of your choice set "Choice 0" and "Choice 1" to 'm', >>>>>> then set "Tristate Choice" to 'y' and save the configuration: >>>>>> >>>>>> config modules >>>>>> boolean modules >>>>>> default y >>>>>> option modules >>>>>> >>>>>> config dependency >>>>>> tristate "Dependency" >>>>>> default m >>>>>> >>>>>> choice >>>>>> prompt "Tristate Choice" >>>>>> default choice0 >>>>>> >>>>>> config choice0 >>>>>> tristate "Choice 0" >>>>>> >>>>>> config choice1 >>>>>> tristate "Choice 1" >>>>>> depends on dependency >>>>>> >>>>>> endchoice >>>>>> >>>>>> This patch sets choice_values' visibility that depend on symbols set >>>>>> to 'm' to 'n' if the corresponding choice is set to 'y'. This makes >>>>>> them disappear from the choice list and will also cause the >>>>>> choice_values' value set to 'n' in sym_calc_value() and as a result >>>>>> they are written as "not set" to the resulting .config file. >>>>>> >>>>>> Reported-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> >>>>>> Signed-off-by: Dirk Gouders <dirk@xxxxxxxxxxx> >>>>>> Tested-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> >>>>> >>>>> Acked-by: "Yann E. MORIN" <yann.morin.1998@xxxxxxx> >>>>> >>>>> It will be in my tree soon. Thanks! >>>> >>>> I don't see this patch in 3.16 but 3.16 does not have the issue any >>>> more. Anyone has an idea how the issue got fixed? I am trying to find >>>> the right patch to backport. >>> >>> With the above sample kconfig I still see the issue. How did you >>> notice the issue got fixed? >> >> I did not pay much attention on the above sample kconfig, but just >> focused on the USB gadget driver kconfig issue initially reported by >> Sebastian. I saw the issue exists in 3.14, but does not in 3.16, >> unless I messed up with my test. I will test 3.16 again some time next >> week. > > Hi Bin, > > I now also re-tested the initially reported steps to reproduce the > issue: > > ------------------------------------------------------------------------ >> in USB gadget menu (that is Device Drivers ---> USB support ---> USB >> Gadget Support ---> USB Gadget Drivers) I can create a configuration >> which is "lost". Here is how to reproduce it: >> >> - first config two gadgets as M: >> <M> USB Gadget Drivers >> <M> Audio Gadget >> <M> Ethernet Gadget >> <M> MIDI Gadget >> >> save config & leave >> >> - now start menu config again and go to the same menu, now select >> built-in: >> <*> USB Gadget Drivers (Ethernet Gadget >> the ethernet gadget is chosen automatically because we can have only >> one gadget selected. >> save config & leave >> >> - step three, go back to the menu and you will see that everything is >> as it was (the <*> is ignored). > ------------------------------------------------------------------------ > > Here, I still see the problem (I was wondering if the issue has been > solved/gone by a kconfig-file modification). This issue was gone since 3.16, but came back again due to commit 1fd6d08 ARM: omap2plus_defconfig: Enable n900 modem as loadable modules. Regards, -Bin. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html