All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kbuild@vger.kernel.org
Subject: [GIT PULL] localmodconfig: Add config depends by default settings
Date: Mon, 20 Jan 2014 10:34:03 -0500	[thread overview]
Message-ID: <20140120103403.33012eb2@gandalf.local.home> (raw)


Linus,

While debugging the problem with localmodconfig and the ALSA codec
modules all being set, I discovered a small bug in the dependency
logic.

If a config has a dependency based on its setting value, localmodcondig
misses it.

For example:

config FOO
    default y if BAR || ZOO

If FOO is needed for a module and is set to '=m', and so are BAR or ZOO,
localmodconfig will not see that BAR or ZOO are also needed for the foo
module, and will incorrectly disable them.

Please pull the latest localmodconfig-v3.14 tree, which can be found at:


  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig.git
localmodconfig-v3.14

Tag SHA1: 3e4892e9201af46ba6df30b7bb8925da06f28cbc
Head SHA1: 95edca5c523c4b404dd60baa0a1bea0e4c38fd72


Steven Rostedt (Red Hat) (1):
      localmodconfig: Add config depends by default settings

----
 scripts/kconfig/streamline_config.pl | 7 +++++++
 1 file changed, 7 insertions(+)
---------------------------
commit 95edca5c523c4b404dd60baa0a1bea0e4c38fd72
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Wed Dec 18 12:35:20 2013 -0500

    localmodconfig: Add config depends by default settings
    
    Currently localmodconfig will miss dependencies from the default option.
    For example:
    
    config FOO
    	default y if BAR || ZOO
    
    If FOO is needed for a module and is set to '=m', and so are BAR or ZOO,
    localmodconfig will not see that BOO or ZOO are also needed for the foo
    module, and will incorrectly disable them.
    
    Link: http://lkml.kernel.org/r/20131218175137.162937350@goodmis.org
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
index 4606cdf..3133172 100644
--- a/scripts/kconfig/streamline_config.pl
+++ b/scripts/kconfig/streamline_config.pl
@@ -219,6 +219,13 @@ sub read_kconfig {
 	    $depends{$config} = $1;
 	} elsif ($state eq "DEP" && /^\s*depends\s+on\s+(.*)$/) {
 	    $depends{$config} .= " " . $1;
+	} elsif ($state eq "DEP" && /^\s*def(_(bool|tristate)|ault)\s+(\S.*)$/) {
+	    my $dep = $3;
+	    if ($dep !~ /^\s*(y|m|n)\s*$/) {
+		$dep =~ s/.*\sif\s+//;
+		$depends{$config} .= " " . $dep;
+		dprint "Added default depends $dep to $config\n";
+	    }
 
 	# Get the configs that select this config
 	} elsif ($state ne "NONE" && /^\s*select\s+(\S+)/) {

                 reply	other threads:[~2014-01-20 15:34 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140120103403.33012eb2@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.