[Buildroot] [PATCH v1 1/1] package/pkg-utils: avoid overwriting =m with =y
Christian Stewart
christian at paral.in
Tue May 17 10:16:24 UTC 2022
The KCONFIG_ENABLE_OPT is intended to enable a required kernel configuration
option when a package requires it.
However, this will often override an existing enabled module with `=m` with `=y`
which overrides the module to be built-in instead of separate.
This is undesirable behavior; we often want these as `=m` and not `=y` to reduce
the size of the kernel image.
This patch changes KCONFIG_MUNGE_DOT_CONFIG to prevent changing `=m` to `=y`.
Signed-off-by: Christian Stewart <christian at paral.in>
---
package/pkg-utils.mk | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index 7d1aea7710..96b15b3d46 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -21,8 +21,16 @@ KCONFIG_DOT_CONFIG = $(strip \
)
# KCONFIG_MUNGE_DOT_CONFIG (option, newline [, file])
+# If setting to =y and the option is already set to =m, ignore.
define KCONFIG_MUNGE_DOT_CONFIG
- $(SED) "/\\<$(strip $(1))\\>/d" $(call KCONFIG_DOT_CONFIG,$(3))
+ OPTION=$(firstword $(subst =, ,$(2))); \
+ VALUE=$(lastword $(subst =, ,$(2))); \
+ if [[ "$${VALUE}" == "y" ]]; then \
+ if grep -q "$${OPTION}=m" $(call KCONFIG_DOT_CONFIG,$(3)); then \
+ exit 0; \
+ fi; \
+ fi; \
+ $(SED) "/\\<$(strip $(1))\\>/d" $(call KCONFIG_DOT_CONFIG,$(3)); \
echo '$(strip $(2))' >> $(call KCONFIG_DOT_CONFIG,$(3))
endef
--
2.35.1
More information about the buildroot
mailing list