diff mbox series

[v1,2/2] linux-yocto/6.12: riscv: relocate KERNEL_FEATURES_RISCV into recipe

Message ID 20260106143712.843971-3-joaomarcos.costa@bootlin.com
State Changes Requested
Headers show
Series Move RISC-V recipe-specific configuration out of common includes | expand

Commit Message

João Marcos Costa Jan. 6, 2026, 2:37 p.m. UTC
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 - out of the common
definitions.

Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
---
 meta/recipes-kernel/linux/linux-yocto.inc     | 16 ----------------
 meta/recipes-kernel/linux/linux-yocto_6.12.bb | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 16 deletions(-)

Comments

Bruce Ashfield Jan. 6, 2026, 3:28 p.m. UTC | #1
On Tue, Jan 6, 2026 at 9:37 AM Joao Marcos Costa via
lists.openembedded.org
<joaomarcos.costa=bootlin.com@lists.openembedded.org> 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 - out of the common
> definitions.

We shouldn't do this either.

It dooms us to carry it along with each versioned linux-yocto recipe,
which we don't
want.

Maybe a new .inc that all the linux-yocto recipe's inherit could work,
since it is
then something smaller to carry along.

Bruce

>
> Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
> ---
>  meta/recipes-kernel/linux/linux-yocto.inc     | 16 ----------------
>  meta/recipes-kernel/linux/linux-yocto_6.12.bb | 16 ++++++++++++++++
>  2 files changed, 16 insertions(+), 16 deletions(-)
>
> 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..22fa4ba5e0 100644
> --- a/meta/recipes-kernel/linux/linux-yocto_6.12.bb
> +++ b/meta/recipes-kernel/linux/linux-yocto_6.12.bb
> @@ -76,4 +76,20 @@ KERNEL_FEATURES:append:powerpc64le = " arch/powerpc/powerpc-debug.scc"
>  # ERROR: modpost: __ex_table+0x17a4 references non-executable section '.debug_loclists'
>  # Check again during next major version upgrade
>  KERNEL_FEATURES:remove:riscv32 = "features/debug/debug-kernel.scc"
> +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}"
> +
>  INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
> --
> 2.47.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#228891): https://lists.openembedded.org/g/openembedded-core/message/228891
> Mute This Topic: https://lists.openembedded.org/mt/117105622/1050810
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [bruce.ashfield@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Jan. 6, 2026, 5:52 p.m. UTC | #2
On Tue, Jan 6, 2026 at 7:28 AM Bruce Ashfield via lists.openembedded.org
<bruce.ashfield=gmail.com@lists.openembedded.org> wrote:

> On Tue, Jan 6, 2026 at 9:37 AM Joao Marcos Costa via
> lists.openembedded.org
> <joaomarcos.costa=bootlin.com@lists.openembedded.org> 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 - out of the common
> > definitions.
>
> We shouldn't do this either.
>
> It dooms us to carry it along with each versioned linux-yocto recipe,
> which we don't
> want.
>
> Maybe a new .inc that all the linux-yocto recipe's inherit could work,
> since it is
> then something smaller to carry along.



Yeah we need this regardless how we fix it. I agree a separate inc file
might be more contained to maintain in long run


>
> Bruce
>
> >
> > Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
> > ---
> >  meta/recipes-kernel/linux/linux-yocto.inc     | 16 ----------------
> >  meta/recipes-kernel/linux/linux-yocto_6.12.bb | 16 ++++++++++++++++
> >  2 files changed, 16 insertions(+), 16 deletions(-)
> >
> > 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..22fa4ba5e0 100644
> > --- a/meta/recipes-kernel/linux/linux-yocto_6.12.bb
> > +++ b/meta/recipes-kernel/linux/linux-yocto_6.12.bb
> > @@ -76,4 +76,20 @@ KERNEL_FEATURES:append:powerpc64le = "
> arch/powerpc/powerpc-debug.scc"
> >  # ERROR: modpost: __ex_table+0x17a4 references non-executable section
> '.debug_loclists'
> >  # Check again during next major version upgrade
> >  KERNEL_FEATURES:remove:riscv32 = "features/debug/debug-kernel.scc"
> > +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}"
> > +
> >  INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
> > --
> > 2.47.0
> >
> >
> >
> >
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#228902):
> https://lists.openembedded.org/g/openembedded-core/message/228902
> Mute This Topic: https://lists.openembedded.org/mt/117105622/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

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..22fa4ba5e0 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.12.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.12.bb
@@ -76,4 +76,20 @@  KERNEL_FEATURES:append:powerpc64le = " arch/powerpc/powerpc-debug.scc"
 # ERROR: modpost: __ex_table+0x17a4 references non-executable section '.debug_loclists'
 # Check again during next major version upgrade
 KERNEL_FEATURES:remove:riscv32 = "features/debug/debug-kernel.scc"
+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}"
+
 INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"