@@ -10,6 +10,7 @@
inherit kernel
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# provide this .inc to set specific revisions
include recipes-kernel/linux/linux-yocto-dev-revisions.inc
new file mode 100644
@@ -0,0 +1,15 @@
+KERNEL_FEATURES_RISCV = "\
+ arch/riscv/tunes/riscv-isa-clear.scc \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 32 i m a', 'arch/riscv/tunes/riscv-isa-rv32i.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 64 i m a', 'arch/riscv/tunes/riscv-isa-rv64i.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'f d', 'arch/riscv/tunes/riscv-isa-fpu.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'c', 'arch/riscv/tunes/riscv-isa-c.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'v', 'arch/riscv/tunes/riscv-isa-v.scc', '', d)} \
+ ${@bb.utils.contains_any('TUNE_FEATURES', 'b zba', 'arch/riscv/tunes/riscv-isa-zba.scc', '', d)} \
+ ${@bb.utils.contains_any('TUNE_FEATURES', 'b zbb', 'arch/riscv/tunes/riscv-isa-zbb.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'zbc', 'arch/riscv/tunes/riscv-isa-zbc.scc', '', d)} \
+ ${@bb.utils.contains( 'TUNE_FEATURES', 'zicbom', 'arch/riscv/tunes/riscv-isa-zicbom.scc', '', d)} \
+ "
+
+KERNEL_FEATURES:append:riscv32 = " ${KERNEL_FEATURES_RISCV}"
+KERNEL_FEATURES:append:riscv64 = " ${KERNEL_FEATURES_RISCV}"
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.12/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.12.inc
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.16/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.16.inc
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.18/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.18.inc
@@ -4,6 +4,7 @@ LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.12.inc
@@ -4,6 +4,7 @@ LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.16.inc
@@ -4,6 +4,7 @@ LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.18.inc
@@ -37,22 +37,6 @@ KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'cfg/
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'features/numa/numa.scc', '', d)}"
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'vfat', 'cfg/fs/vfat.scc', '', d)}"
-KERNEL_FEATURES_RISCV = "\
- arch/riscv/tunes/riscv-isa-clear.scc \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 32 i m a', 'arch/riscv/tunes/riscv-isa-rv32i.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'rv 64 i m a', 'arch/riscv/tunes/riscv-isa-rv64i.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'f d', 'arch/riscv/tunes/riscv-isa-fpu.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'c', 'arch/riscv/tunes/riscv-isa-c.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'v', 'arch/riscv/tunes/riscv-isa-v.scc', '', d)} \
- ${@bb.utils.contains_any('TUNE_FEATURES', 'b zba', 'arch/riscv/tunes/riscv-isa-zba.scc', '', d)} \
- ${@bb.utils.contains_any('TUNE_FEATURES', 'b zbb', 'arch/riscv/tunes/riscv-isa-zbb.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'zbc', 'arch/riscv/tunes/riscv-isa-zbc.scc', '', d)} \
- ${@bb.utils.contains( 'TUNE_FEATURES', 'zicbom', 'arch/riscv/tunes/riscv-isa-zicbom.scc', '', d)} \
- "
-
-KERNEL_FEATURES:append:riscv32 = " ${KERNEL_FEATURES_RISCV}"
-KERNEL_FEATURES:append:riscv64 = " ${KERNEL_FEATURES_RISCV}"
-
# A KMACHINE is the mapping of a yocto $MACHINE to what is built
# by the kernel. This is typically the branch that should be built,
# and it can be specific to the machine or shared
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.12/standard/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion.inc
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.16/standard/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion.inc
@@ -1,6 +1,7 @@
KBRANCH ?= "v6.18/standard/base"
require recipes-kernel/linux/linux-yocto.inc
+require recipes-kernel/linux/linux-yocto-features.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion.inc
In a custom linux recipe that requires linux-yocto.inc, the metadata files (*.scc) end up in KERNEL_FEATURES. However, the custom recipe's FILESPATH does not contain the path to oe-core's linux-yocto directory (as expected), which leads to the error below: ERROR: linux-custom-6.12.15+git-r0 do_kernel_metadata: Feature 'arch/riscv/tunes/riscv-isa-clear.scc' not found, this will cause configuration failures. ERROR: linux-custom-6.12.15+git-r0 do_kernel_metadata: Check the SRC_URI for meta-data repositories or directories that may be missing Move KERNEL_FEATURES_RISCV - along with the appends - to a new file: linux-yocto-features.inc. Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com> --- meta/recipes-kernel/linux/linux-yocto-dev.bb | 1 + .../linux/linux-yocto-features.inc | 15 +++++++++++++++ meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb | 1 + meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb | 1 + meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb | 1 + .../linux/linux-yocto-tiny_6.12.bb | 1 + .../linux/linux-yocto-tiny_6.16.bb | 1 + .../linux/linux-yocto-tiny_6.18.bb | 1 + meta/recipes-kernel/linux/linux-yocto.inc | 16 ---------------- meta/recipes-kernel/linux/linux-yocto_6.12.bb | 1 + meta/recipes-kernel/linux/linux-yocto_6.16.bb | 1 + meta/recipes-kernel/linux/linux-yocto_6.18.bb | 1 + 12 files changed, 25 insertions(+), 16 deletions(-) create mode 100644 meta/recipes-kernel/linux/linux-yocto-features.inc