On Monday 16 November 2015 12:06:10 Masahiro Yamada wrote: > Many ARM sub-architectures use prompts followed by "if" conditional, > but it is wrong. > > Please notice the difference between > > config ARCH_FOO > bool "Foo SoCs" if ARCH_MULTI_V7 > > and > > config ARCH_FOO > bool "Foo SoCs" > depends on ARCH_MULTI_V7 > > These two are *not* equivalent! > > In the former statement, it is not ARCH_FOO, but its prompt that > depends on ARCH_MULTI_V7. So, it is completely valid that ARCH_FOO > is selected by another, but ARCH_MULTI_V7 is still disabled. As it is > not unmet dependency, Kconfig never warns. This is probably not what > you want. Did you encounter a case where someone actually did a 'select' on one of those symbols? I probably introduced a lot of them and did not expect that to happen. > The former should be used only when you need to do so, and you really > understand what you are doing. (In most cases, it should be wrong!) > > For enabling/disabling sub-architectures, the latter is always correct. > > As a good side effect, this commit fixes some entries over 80 columns > (mach-imx, mach-integrator, mach-mbevu). > > Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com> > --- > > I hope this patch is applied to ARM-SOC, but am CCing Kbuild ML > because the correct understanding of Kconfig is required for this patch. Yes, we can take it through arm-soc, I don't think it's important but I also don't mind the change. > diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig > index 02d0834..2fa9d11 100644 > --- a/arch/arm/mach-integrator/Kconfig > +++ b/arch/arm/mach-integrator/Kconfig > @@ -1,5 +1,6 @@ > config ARCH_INTEGRATOR > - bool "ARM Ltd. Integrator family" if (ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6) > + bool "ARM Ltd. Integrator family" > + depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6 > select ARM_AMBA > select ARM_PATCH_PHYS_VIRT if MMU > select AUTO_ZRELADDR There is one related change that I would like to see, and that is to convert all top-level 'config' statements that have sub-options into 'menuconfig' statements for consistency. At the moment, the platform menu has a mix of platform-selection and platform-specific options, and I'd like to make that more consistent. Arnd