1
linux/scripts/kconfig
Steven Rostedt d4bb58b5cb localmodconfig: Check if configs are already set for selects
There are some cases that a required module does not have a prompt
and needs to have another module enabled that selects it to be set.
As localmodconfig is conservative and tries to make the minimum config
without breaking the user's kernel, or keeping the user from using
devices that were loaded when the lsmod was done, all modules that
select this module will also be enabled.

If you needed module A, but module A did not have a prompt but needed
module B to be selected, localmodconfig would make sure B was still
enabled. If not only B selected A, but C, D, E, F, and G also
selected A, then all of those would also be included, as well as the
modules they depend on. This ballooned the number of configs that
localmodconfig would keep.

The fix here is to process the depends first, and then record those
configs that did not have a prompt and needed to be selected.
After the depends are done, check what configs are needed to select
the configs in the list, and if a config that selects it is already
set, then we don't need to do anything else.

If no config that selects the config is set, then just pick one and
try again.

This change brought down the number of selected modules from 290
to 67! Both before and after were run against a config that had 3095
modules enabled.

Tested-by: John David Yost <johnyost@ptd.net> # AlleyTrotter
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2012-06-19 15:03:06 -04:00
..
lxdialog kconfig: fix set but not used variables 2011-08-29 20:22:26 -04:00
.gitignore kconfig: migrate parser to implicit rules 2011-06-09 14:04:44 -04:00
check.sh
conf.c kbuild: all{no,yes,mod,def,rand}config only read files when instructed to. 2012-05-07 20:51:06 +02:00
confdata.c kconfig: delete last traces of __enabled_ from autoconf.h 2012-04-12 18:35:58 -07:00
expr.c kconfig: use calloc() for expr allocation 2011-07-02 01:04:37 -04:00
expr.h kbuild: Fix compiler warning with assertion when calling 'fwrite' 2012-01-15 00:17:18 +01:00
gconf.c kconfig: fix set but not used warnings 2011-12-11 21:29:45 +01:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
images.c
kxgettext.c kconfig: nuke LKC_DIRECT_LINK cruft 2011-06-06 15:32:20 -04:00
lkc_proto.h kconfig: introduce specialized printer 2011-07-01 16:23:27 +02:00
lkc.h kbuild: Fix compiler warning with assertion when calling 'fwrite' 2012-01-15 00:17:18 +01:00
Makefile Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2012-01-16 14:35:34 -08:00
mconf.c MCA: delete all remaining traces of microchannel bus support. 2012-05-17 19:06:13 -04:00
menu.c kconfig: factor code in menu_get_ext_help() 2011-08-08 16:02:03 +02:00
merge_config.sh merge_config.sh: Add option to display redundant configs 2012-03-30 15:14:47 +02:00
nconf.c MCA: delete all remaining traces of microchannel bus support. 2012-05-17 19:06:13 -04:00
nconf.gui.c scripts/kconfig/nconf: add KEY_HOME / KEY_END for dialog_inputbox 2011-09-09 14:40:08 +02:00
nconf.h scripts/kconfig/nconf: dynamically alloc dialog_input_result 2011-09-09 14:40:08 +02:00
POTFILES.in kconfig: gettext support for lxdialog 2008-01-28 23:14:39 +01:00
qconf.cc xconfig: Abort close if configuration cannot be saved 2011-07-25 15:50:34 +02:00
qconf.h xconfig: Abort close if configuration cannot be saved 2011-07-25 15:50:34 +02:00
streamline_config.pl localmodconfig: Check if configs are already set for selects 2012-06-19 15:03:06 -04:00
symbol.c kconfig: fix new choices being skipped upon config update 2012-01-26 11:01:56 +01:00
util.c kconfig: add missing <stdlib.h> inclusion 2011-06-06 15:32:16 -04:00
zconf.gperf kconfig: constify `kconf_id_lookup' 2011-06-09 14:04:42 -04:00
zconf.hash.c_shipped kconfig: regen parser 2011-06-09 14:04:45 -04:00
zconf.l Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-07-30 00:17:06 -07:00
zconf.lex.c_shipped Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-07-30 00:17:06 -07:00
zconf.tab.c_shipped Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-07-30 00:17:06 -07:00
zconf.y Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-07-30 00:17:06 -07:00