mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-29 15:44:04 +00:00
kernel: fix KernelPackage when all KCONFIG are versioned
If a kernel package was defined where all KCONFIG symbols were dynamic, and versioned, no FILES would be installed, as the foreach evaluation was providing the value of the variable defined by the KCONFIG symbol name including the version test Fix this by calling the version_filter function on the list of KCONFIG variable names run through by foreach Example, kernel 6.1: KCONFIG:=CONFIG_OLD@lt6.1 CONFIG_NEW@ge6.1 filter-out any KCONFIG settings forced by package: CONFIG_OLD@lt6.1 CONFIG_NEW@ge6.1 there are dynamic settings, so for each of them, get the value of the make variable defined by symbol name: CONFIG_OLD@lt6.1 is not set CONFIG_NEW@ge6.1 is not set versus CONFIG_OLD is not set CONFIG_NEW=m test if any of these are m, or y if yes, install files, otherwise, nothing to install Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au> (cherry picked from commit b3448b3fdb59d25dce05991dc8f322c1020b090b)
This commit is contained in:
parent
e4d7917be6
commit
27f68a39fd
@ -236,7 +236,7 @@ $(call KernelPackage/$(1)/config)
|
|||||||
$(call KernelPackage/depends)
|
$(call KernelPackage/depends)
|
||||||
$(call KernelPackage/hooks)
|
$(call KernelPackage/hooks)
|
||||||
|
|
||||||
ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),)
|
ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(call version_filter,$(filter-out %=y %=n %=m,$(KCONFIG))),$($(c)))),.),)
|
||||||
define Package/kmod-$(1)/install
|
define Package/kmod-$(1)/install
|
||||||
@for mod in $$(call version_filter,$$(FILES)); do \
|
@for mod in $$(call version_filter,$$(FILES)); do \
|
||||||
if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \
|
if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user