| Message ID | 20260107151436.964819-3-joaomarcos.costa@bootlin.com |
|---|---|
| State | Changes Requested |
| Headers | show |
| Series | Move RISC-V recipe-specific configuration out of common includes | expand |
Hello, I hope this email finds you well. On 1/7/26 16:14, João Marcos Costa wrote: > 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 > (...) I just saw that the previous patch (same fix, but in u-boot) made its way into oe-core/master, but this linux-yocto patch here didn't. Would you have any feedbacks about it? Something to be reworked/rephrased, otherwise I'd say this patch is needed just as much as the u-boot one. Also, my original intent was to provide a fix a problem I faced in Whinlatter, so backporting those patches should be needed as well. I will work on it, of course, but I'd like first to make sure the linux-yocto patch is not left outside. Thanks!
diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb index fb4e0864d2..a2e5b8308b 100644 --- a/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto-features.inc b/meta/recipes-kernel/linux/linux-yocto-features.inc new file mode 100644 index 0000000000..300add606b --- /dev/null +++ b/meta/recipes-kernel/linux/linux-yocto-features.inc @@ -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}" diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb index 9ac8507f9f..7dcf15a265 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.12.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb index 1230e4e805..79ea0c5492 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb index 32ed29f25e..ad6fa16bd3 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb index 940561352c..d401934e97 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.12.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb index ffa15b0c1b..4ab250bf70 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb index 2afdc02467..661aad0a95 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.18.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc index 4d0a726bb6..389329030d 100644 --- a/meta/recipes-kernel/linux/linux-yocto.inc +++ b/meta/recipes-kernel/linux/linux-yocto.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 diff --git a/meta/recipes-kernel/linux/linux-yocto_6.12.bb b/meta/recipes-kernel/linux/linux-yocto_6.12.bb index 84419f8c78..07b9084c05 100644 --- a/meta/recipes-kernel/linux/linux-yocto_6.12.bb +++ b/meta/recipes-kernel/linux/linux-yocto_6.12.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto_6.16.bb b/meta/recipes-kernel/linux/linux-yocto_6.16.bb index 408f14b451..b823e13e8a 100644 --- a/meta/recipes-kernel/linux/linux-yocto_6.16.bb +++ b/meta/recipes-kernel/linux/linux-yocto_6.16.bb @@ -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 diff --git a/meta/recipes-kernel/linux/linux-yocto_6.18.bb b/meta/recipes-kernel/linux/linux-yocto_6.18.bb index 562a997020..e82edc27c3 100644 --- a/meta/recipes-kernel/linux/linux-yocto_6.18.bb +++ b/meta/recipes-kernel/linux/linux-yocto_6.18.bb @@ -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