Re: [PATCH 4/7] linux-kbuild: fix: ensure selected configs were turned on in original

From: Masahiro Yamada
Date: Mon Sep 23 2024 - 23:45:56 EST


On Sat, Sep 14, 2024 at 2:12 AM David Hunter
<david.hunter.linux@xxxxxxxxx> wrote:
>
> Ensure that only modules that were turned on in the original config are
> turned on in the new config file. When ensuring that the config
> dependencies are met, turning on the config options in the new config
> leads to warnings and errors later in this script, especially for badly
> constructed original config files.
>
> One example could be a config option that is depended on by a module
> needed in the new config but is not turned on in the original config
> file. If this config needs to be selected, warnings will show up in the
> standard output.
>
> Signed-off-by: David Hunter <david.hunter.linux@xxxxxxxxx>
> ---
> scripts/kconfig/streamline_config.pl | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
> index bb1f19a1ab5e..26e544744579 100755
> --- a/scripts/kconfig/streamline_config.pl
> +++ b/scripts/kconfig/streamline_config.pl
> @@ -459,7 +459,9 @@ sub parse_config_depends
> next;
> }
>
> - if (!defined($configs{$conf})) {
> + # This script does not turn on any modules, so make sure the config
> + # options are on in the original.
> + if (!defined($configs{$conf}) && defined($orig_configs{$conf})) {
> # We must make sure that this config has its
> # dependencies met.
> $repeat = 1; # do again



I believe defined($orig_configs{$conf} is always true here
because it was already checked a few lines above.


# We only need to process if the depend config is a module
if (!defined($orig_configs{$conf}) || $orig_configs{$conf} eq "y") {
next;
}


If $conf is not present in the original .config,
the 'next' statement skips the current iteration.






--
Best Regards
Masahiro Yamada