Reorder modutils config options & fix yet more dependency

- modprobe can indirectly benefit from FEATURE_2_4_MODULES and
  FEATURE_INSMOD_TRY_MAP options.
- The position of config FEATURE_INSMOD_TRY_MMAP prevented some other
  config options from indenting under FEATURE_2_4_MODULES. Reorder to
  fix this.
- FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is now moved to
  Config.src under "Common options" section. (I wished to edit this
  config so that it also work with "big" modutils, but it's not done at
  the moment. Sorry.)

Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Kang-Che Sung 2017-02-01 19:43:54 +08:00 committed by Denys Vlasenko
parent 4ae658f077
commit 415cc42b6a
2 changed files with 27 additions and 26 deletions

View File

@ -45,31 +45,22 @@ config FEATURE_CMDLINE_MODULE_OPTIONS
Allow insmod and modprobe take module options from the applets' Allow insmod and modprobe take module options from the applets'
command line. command line.
config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
bool "Skip loading of already loaded modules"
default y
depends on MODPROBE_SMALL && (DEPMOD || INSMOD || MODPROBE)
help
Check if the module is already loaded.
config FEATURE_2_4_MODULES config FEATURE_2_4_MODULES
bool "Support version 2.2/2.4 Linux kernels" bool "Support version 2.2/2.4 Linux kernels"
default n default n
depends on (INSMOD || RMMOD || LSMOD) && !MODPROBE_SMALL depends on (INSMOD || LSMOD || MODPROBE || RMMOD) && !MODPROBE_SMALL
help help
Support module loading for 2.2.x and 2.4.x Linux kernels. Support module loading for 2.2.x and 2.4.x Linux kernels.
This increases size considerably. Say N unless you plan This increases size considerably. Say N unless you plan
to run ancient kernels. to run ancient kernels.
config FEATURE_INSMOD_TRY_MMAP
bool "Try to load module from a mmap'ed area"
default n
depends on INSMOD && !MODPROBE_SMALL
help
This option causes module loading code to try to mmap
module first. If it does not work (for example,
it does not work for compressed modules), module will be read
(and unpacked if needed) into a memory block allocated by malloc.
The only case when mmap works but malloc does not is when
you are trying to load a big module on a very memory-constrained
machine. Malloc will momentarily need 2x as much memory as mmap.
Choosing N saves about 250 bytes of code (on 32-bit x86).
config FEATURE_INSMOD_VERSION_CHECKING config FEATURE_INSMOD_VERSION_CHECKING
bool "Enable module version checking" bool "Enable module version checking"
default n default n
@ -113,7 +104,7 @@ config FEATURE_INSMOD_LOAD_MAP
config FEATURE_INSMOD_LOAD_MAP_FULL config FEATURE_INSMOD_LOAD_MAP_FULL
bool "Symbols in load map" bool "Symbols in load map"
default y default y
depends on FEATURE_INSMOD_LOAD_MAP && !MODPROBE_SMALL depends on FEATURE_INSMOD_LOAD_MAP
help help
Without this option, -m will only output section Without this option, -m will only output section
load map. With this option, -m will also output load map. With this option, -m will also output
@ -129,6 +120,22 @@ config FEATURE_CHECK_TAINTED_MODULE
support request. support request.
This option is required to support GPLONLY modules. This option is required to support GPLONLY modules.
config FEATURE_INSMOD_TRY_MMAP
bool "Try to load module from a mmap'ed area"
default n
depends on (INSMOD || MODPROBE) && !MODPROBE_SMALL
help
This option causes module loading code to try to mmap
module first. If it does not work (for example,
it does not work for compressed modules), module will be read
(and unpacked if needed) into a memory block allocated by malloc.
The only case when mmap works but malloc does not is when
you are trying to load a big module on a very memory-constrained
machine. Malloc will momentarily need 2x as much memory as mmap.
Choosing N saves about 250 bytes of code (on 32-bit x86).
config FEATURE_MODUTILS_ALIAS config FEATURE_MODUTILS_ALIAS
bool "Support module.aliases file" bool "Support module.aliases file"
default y default y

View File

@ -8,14 +8,8 @@
* Licensed under GPLv2, see file LICENSE in this source tree. * Licensed under GPLv2, see file LICENSE in this source tree.
*/ */
/* config MODPROBE_SMALL is defined in Config.src to ensure better "make config" order */ /* modprobe-small configs are defined in Config.src to ensure better
* "make config" order */
//config:config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
//config: bool "Skip loading of already loaded modules"
//config: default y
//config: depends on MODPROBE_SMALL && (DEPMOD || INSMOD || MODPROBE)
//config: help
//config: Check if the module is already loaded.
//applet:IF_LSMOD( IF_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP))) //applet:IF_LSMOD( IF_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP)))
//applet:IF_MODPROBE(IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))) //applet:IF_MODPROBE(IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))