@@ -8,6 +8,12 @@ config BR2_LINUX_KERNEL
if BR2_LINUX_KERNEL
+# Packages that need to have a kernel with support for loadable modules,
+# but do not use the kernel-modules infrastructure, should select that
+# option.
+config BR2_LINUX_NEEDS_MODULES
+ bool
+
#
# Version selection. We provide the choice between:
#
@@ -178,6 +178,9 @@ LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_
LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
+# If no package has yet set it, set it from the Kconfig option
+LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES)
+
define LINUX_KCONFIG_FIXUP_CMDS
$(if $(LINUX_NEEDS_MODULES),
$(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config))
Currently, packages that need the kernel to have support for laodable modules have two ways to require it: - either the use the kernel-module infra, which does it automatically, - or they do not use it, and they need to requrie it manually, by setting the corresponding Makefile variable; however, they must only set it when they are actually enabled, which makes for a slightly cumbersome and ugly code, like: ifeq ($(BR2_PACKAGE_FOO),y) LINUX_NEEDS_MODULES = y endif Introduce a nw blind Kconfig option that packages can select to signify they need kernel modules. That Kconfig option is then used to set the Makefile variable. It makes it cleaner: - code is simpler (one Kconfig line instead of a Makefile if-block, - this is handled at the Kconfig level, which is where we usually handle such dependencies. Packages will be updated in follow-up commits. Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- linux/Config.in | 6 ++++++ linux/linux.mk | 3 +++ 2 files changed, 9 insertions(+)