Re: [PATCH 1/5] [PATCH 1/5] kconfig: Make localmodconfig handleenvironment variables

From: Arnaud Lacombe
Date: Fri Oct 29 2010 - 20:26:52 EST


Hi,

On Fri, Oct 29, 2010 at 1:43 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> From: Steven Rostedt <srostedt@xxxxxxxxxx>
>
> The commit 838a2e55e6a4e9e8a10451ed2ef0f7a08dabdb04
>  kbuild: migrate all arch to the kconfig mainmenu upgrade
>
> Broke make localmodconfig. The reason was that it added a
> environment variable to the kconfig source, which the
> streamline_config.pl could not handle.
>
Technically, it is _not_ an environment variable; it is a kconfig
symbol's name. In this particular case, both name collide and the
kconfig symbol happens to get its default value from the environment.
The real fixes, from my point of view, would be to have a perl binding
of the kconfig backend and get rid of read_kconfig(). That said, your
patch is broken if a symbol happen not to match an environment
variable (both in name and value).

Btw, two questions:
- who has authority on kconfig ? Michal or you ? MAINTAINERS say
"Roman Zippel", but AFAIK, this is no longer valid.
- what is the delay someone in CC: is given the time to answer a
patch ? I see that this one particularly is already in Linus' tree.

Thanks,
- Arnaud

> This patch changes streamline_config.pl to handle kconfig sources
> using environment variables in their names.
>
> Cc: Arnaud Lacombe <lacombar@xxxxxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Cc: Michal Marek <mmarek@xxxxxxx>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> ---
>  scripts/kconfig/streamline_config.pl |   12 +++++++++++-
>  1 files changed, 11 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
> index c70a27d..cc10bcf 100644
> --- a/scripts/kconfig/streamline_config.pl
> +++ b/scripts/kconfig/streamline_config.pl
> @@ -137,7 +137,17 @@ sub read_kconfig {
>     my $config;
>     my @kconfigs;
>
> -    open(KIN, "$ksource/$kconfig") || die "Can't open $kconfig";
> +    my $source = "$ksource/$kconfig";
> +    my $last_source = "";
> +
> +    # Check for any environment variables used
> +    while ($source =~ /\$(\w+)/ && $last_source ne $source) {
> +       my $env = $1;
> +       $last_source = $source;
> +       $source =~ s/\$$env/$ENV{$env}/;
> +    }
> +
> +    open(KIN, "$source") || die "Can't open $kconfig";
>     while (<KIN>) {
>        chomp;
>
> --
> 1.7.1
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/