linux/scripts
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
..
basic
coccinelle Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2012-05-28 10:39:07 -07:00
dtc scripts: dtc: fix compile warnings 2012-03-24 23:07:35 +01:00
genksyms
kconfig localmodconfig: Check if configs are already set for selects 2012-06-19 15:03:06 -04:00
ksymoops
mod modpost: use proper kernel style for autogenerated files 2012-05-23 22:28:51 +09:30
package builddeb: include autogenerated header files 2012-05-26 22:54:50 +02:00
rt-tester
selinux
tracing
.gitignore scripts: Add sortextable to sort the kernel's exception table. 2012-04-19 15:06:55 -07:00
bin2c.c
bloat-o-meter
bootgraph.pl
checkincludes.pl
checkkconfigsymbols.sh
checkpatch.pl checkpatch: suggest pr_<level> over printk(KERN_<LEVEL> 2012-05-31 17:49:27 -07:00
checkstack.pl
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck coccicheck: change handling of C={1,2} when M= is set 2012-02-24 23:50:19 +01:00
config scripts/config: properly report and set string options 2012-05-16 00:13:11 +02:00
conmakehash.c
decodecode
depmod.sh kbuild: do not check for ancient modutils tools 2012-01-23 15:12:19 +01:00
diffconfig
docproc.c
export_report.pl
extract-ikconfig
extract-vmlinux
gcc-goto.sh ARM: 7333/2: jump label: detect %c support for ARM 2012-03-24 09:38:56 +00:00
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh
get_maintainer.pl get_maintainer.pl: add support for moderated lists 2012-03-23 16:58:32 -07:00
gfp-translate
headerdep.pl
headers_check.pl headers_check: recursively search for linux/types.h inclusion 2012-03-26 14:54:27 +02:00
headers_install.pl
headers.sh
kallsyms.c
Kbuild.include scripts/Kbuild.include: Fix portability problem of "echo -e" 2012-03-24 23:32:05 +01:00
kernel-doc scripts/kernel-doc: fix fatal error caused by cfg80211.h 2012-01-23 08:44:53 -08:00
Lindent
link-vmlinux.sh Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2012-05-28 10:32:28 -07:00
Makefile Merge branch 'x86-extable-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-23 10:44:35 -07:00
Makefile.asm-generic
Makefile.build kbuild: disable -Wmissing-field-initializers for W=1 2012-01-26 11:07:26 +01:00
Makefile.clean
Makefile.fwinst
Makefile.headersinst
Makefile.help
Makefile.host
Makefile.lib Kbuild: centralize MKIMAGE and cmd_uimage definitions 2012-03-26 15:49:20 +02:00
Makefile.modbuiltin
Makefile.modinst
Makefile.modpost
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds
namespace.pl
patch-kernel scripts/patch-kernel: digest kernel.org hosted .xz patches 2012-03-30 15:23:36 +02:00
pnmtologo.c
profile2linkerlist.pl
recordmcount.c
recordmcount.h
recordmcount.pl
setlocalversion setlocalversion: Use "grep -q" instead of piping output to "read dummy" 2012-03-26 22:54:00 +02:00
show_delta
sortextable.c scripts/sortextable: Handle relative entries, and other cleanups 2012-04-24 11:42:20 -07:00
sortextable.h scripts/sortextable: Handle relative entries, and other cleanups 2012-04-24 11:42:20 -07:00
tags.sh Subject: [PATCH] tags.sh: Add missing quotes 2012-04-02 11:28:17 +02:00
unifdef.c
ver_linux
xz_wrap.sh xz: Enable BCJ filters on SPARC and 32-bit x86 2012-04-18 13:13:18 -07:00