[PATCH] ARM: use "depends on" for SoC configs instead of "if" after prompt

Arnd Bergmann arnd at arndb.de
Mon Nov 16 02:09:46 PST 2015


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



More information about the Linux-rockchip mailing list