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. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) iQEcBAABAgAGBQJS3UE2AAoJEKQekfcNnQGu8DwH+gJNIQGFpkMNbSegpbzwFtw9 PuY3SnrheGQtDA2b9hCsPRF2BTOfulZIIrBxkx9DCyql5k7BNTi+rWH06ZCSXzu/ SXIKs50q6z5zNN7hz2dyjQIVfFBxROtbtdvrOHCxHKrW46HzMSx8GTL4KlAANJJG +cpMMJfkXgypFpguyDviJQrtrWKPIoEt3XQ6UcOhLwT16MSSiM9/ZfLkaMv+h7cH a9tD/qVPfQrF6d64AefZYK7KwlKT2O/vUYRvLLiT9so51vW+4dwOOKDO/4ChRyVn cMESOzXAXwfvaOhcejD+GE1QpNM8mfGNuyMVkCJgKBa9nq733ZMPe0V53hBWj5k= =Rz2F -----END PGP SIGNATURE----- Merge tag 'localmodconfig-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig Pull localmodconfig update from Steven Rostedt: "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" * tag 'localmodconfig-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig: localmodconfig: Add config depends by default settings
This commit is contained in:
commit
edde1fb8c4
|
@ -219,6 +219,13 @@ sub read_kconfig {
|
||||||
$depends{$config} = $1;
|
$depends{$config} = $1;
|
||||||
} elsif ($state eq "DEP" && /^\s*depends\s+on\s+(.*)$/) {
|
} elsif ($state eq "DEP" && /^\s*depends\s+on\s+(.*)$/) {
|
||||||
$depends{$config} .= " " . $1;
|
$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
|
# Get the configs that select this config
|
||||||
} elsif ($state ne "NONE" && /^\s*select\s+(\S+)/) {
|
} elsif ($state ne "NONE" && /^\s*select\s+(\S+)/) {
|
||||||
|
|
Loading…
Reference in a new issue