kumquat-buildroot/docs/manual
Yann E. MORIN 0aed4c2dae linux: allow packages to set kernel config options
Currently, the linux kernel will apply some fixups on its .config file,
based on whether some packages are enabled or not. That list of
conditional fixups is getting bigger and bigger with each new package
that needs such fixups, culminating with the pending firewalld one [0].

Furthermore, these fixups are not accessible to packages in br2-external
trees.

Add a new per-package variable, that packages may set to the commands to
run to fixup the kernel .config file, which is added at the end of the
linux' own fixups.

This opens the possibility to write things like;

    define FOO_LINUX_CONFIG_FIXUPS
        $(call KCONFIG_ENABLE_OPT,BLA)
    endef

Of course, it also opens the way to run arbitrary commands in there, but
any alternative that would be declarative only, such as a list of
options to enable or disable (as an example):

    FOO_LINUX_CONFIG_FIXUPS = +BAR -FOO +BUZ="value"

.. is not very nice either, and such lists fall flat when a value would
have a space.

For packages that we have in-tree, we can ensure they won't play foul
with their _LINUX_CONFIG_FIXUPS. For packages in br2-external trees,
there's nothing we can do; users already have the opportunity to hack
into the linux configure process by providing LINUX_PRE_CONFIGURE_HOOKS
or LINUX_POST_CONFIGURE_HOOKS anyway...

.. which brings the question of why we don't use that to implement the
per-package fixups. We don't, because _PRE or _POST_CONFIGURE_HOOKS are
run after we run 'make oldconfig' to sanitise the mangled .config.

[0] http://lists.busybox.net/pipermail/buildroot/2020-March/278683.html

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-05-01 15:50:28 +02:00
..
adding-board-support.txt
adding-packages-asciidoc.txt
adding-packages-autotools.txt
adding-packages-cargo.txt
adding-packages-cmake.txt
adding-packages-conclusion.txt
adding-packages-directory.txt
adding-packages-generic.txt linux: allow packages to set kernel config options 2020-05-01 15:50:28 +02:00
adding-packages-gettext.txt
adding-packages-golang.txt
adding-packages-hooks.txt
adding-packages-kconfig.txt
adding-packages-kernel-module.txt
adding-packages-linux-kernel-spec-infra.txt
adding-packages-luarocks.txt
adding-packages-meson.txt
adding-packages-perl.txt
adding-packages-python.txt docs: adding-packages-python: don't mention distutilscross 2020-04-28 19:17:54 +02:00
adding-packages-qmake.txt
adding-packages-rebar.txt
adding-packages-tips.txt
adding-packages-virtual.txt
adding-packages-waf.txt
adding-packages.txt
advanced.txt
appendix.txt
beyond-buildroot.txt
ccache-support.txt
common-usage.txt
configure-other-components.txt
configure.txt
contribute.txt
customize-configuration.txt
customize-device-permission-tables.txt
customize-directory-structure.txt
customize-outside-br.txt
customize-packages.txt
customize-patches.txt
customize-post-image.txt
customize-quick-guide.txt
customize-rootfs.txt
customize-users-tables.txt
customize.txt
debugging-buildroot.txt
developers.txt
download-infra.txt
download-location.txt
eclipse-integration.txt
faq-troubleshooting.txt
getting.txt
how-buildroot-works.txt
introduction.txt
known-issues.txt
legal-notice.txt
make-tips.txt
makedev-syntax.txt
makeusers-syntax.txt
manual.mk
manual.txt
migrating.txt
package-make-target.txt
patch-policy.txt
prerequisite.txt
quickstart.txt
rebuilding-packages.txt
resources.txt
using-buildroot-debugger.txt
using-buildroot-development.txt
using-buildroot-toolchain.txt
writing-rules.txt