linux-custom: Fix logic for find command in `install_kbuild()`

Message ID 20251117154942.1985172-1-stefan-koch@siemens.com
State Under Review
Headers show
Series linux-custom: Fix logic for find command in `install_kbuild()` | expand

Commit Message

Koch, Stefan Nov. 17, 2025, 3:49 p.m. UTC
Previously, two paths in `install_kbuild()` were combined with AND,
which always returned an empty file list.
This change switches to OR logic, providing the files excluded
by the corresponding find call in `kernel_headers()`.

Signed-off-by: Stefan Koch <stefan-koch@siemens.com>
---
 meta/recipes-kernel/linux/files/debian/isar/install.tmpl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jan Kiszka Nov. 17, 2025, 3:56 p.m. UTC | #1
On 17.11.25 16:49, Stefan Koch wrote:
> Previously, two paths in `install_kbuild()` were combined with AND,
> which always returned an empty file list.
> This change switches to OR logic, providing the files excluded
> by the corresponding find call in `kernel_headers()`.
> 

So, what was the result of this issue? Was kbuild broken, or when
exactly was it?

Jan

> Signed-off-by: Stefan Koch <stefan-koch@siemens.com>
> ---
>  meta/recipes-kernel/linux/files/debian/isar/install.tmpl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
> index a1b00d39..6fa94508 100644
> --- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
> +++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
> @@ -252,7 +252,7 @@ install_kbuild() {
>  
>      mkdir -p ${destdir}
>  
> -    (cd ${S}; find . -path './scripts/*' -a -path './tools/*' -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \)) >>${src_kbuild_files}
> +    (cd ${S}; find . \( -path './scripts/*' -o -path './tools/*' \) -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \)) >>${src_kbuild_files}
>      (cd ${S}; find scripts -type f -o -type l) >>${src_kbuild_files}
>  
>      (cd ${O}; find scripts -type f) >>${obj_kbuild_files}
Koch, Stefan Nov. 17, 2025, 4:17 p.m. UTC | #2
On Mon, 2025-11-17 at 16:56 +0100, Jan Kiszka wrote:
> On 17.11.25 16:49, Stefan Koch wrote:
> > Previously, two paths in `install_kbuild()` were combined with AND,
> > which always returned an empty file list.
> > This change switches to OR logic, providing the files excluded
> > by the corresponding find call in `kernel_headers()`.
> > 
> 
> So, what was the result of this issue? Was kbuild broken, or when
> exactly was it?
This is only a minor issue. Kbuild was working anyway, I don't noticed
any failure case because of that.

related line from kernel_headers():
(cd ${S}; find . -not -path './scripts/*' -a -not -path './tools/*' -a
\( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \))
>>${src_hdr_files}

*patched* line from install_kbuild():
(cd ${S}; find . \( -path './scripts/*' -o -path './tools/*' \) -a \( -
name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \))
>>${src_kbuild_files}

The subset excluded by one line should be included by the other line.

The *unpatched* line.
(cd ${S}; find . -path './scripts/*' -a -path './tools/*' -a \( -name
'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \))
>>${src_kbuild_files}

combines two paths in an AND operation, which will never be true.
So the line is useless.

The patch fixes only this logical issue with both subsets.

This was not a big blocker at all, because the next line in
install_kbuild():
(cd ${S}; find scripts -type f -o -type l) >>${src_kbuild_files}

also adds the scripts subdir. Only the tools subdir was missing here,
but that seems to be working in most cases, even without it.

> 
> Jan
> 
> > Signed-off-by: Stefan Koch <stefan-koch@siemens.com>
> > ---
> >  meta/recipes-kernel/linux/files/debian/isar/install.tmpl | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/meta/recipes-
> > kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-
> > kernel/linux/files/debian/isar/install.tmpl
> > index a1b00d39..6fa94508 100644
> > --- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
> > +++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
> > @@ -252,7 +252,7 @@ install_kbuild() {
> >  
> >      mkdir -p ${destdir}
> >  
> > -    (cd ${S}; find . -path './scripts/*' -a -path './tools/*' -a
> > \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \))
> > >>${src_kbuild_files}
> > +    (cd ${S}; find . \( -path './scripts/*' -o -path './tools/*'
> > \) -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \))
> > >>${src_kbuild_files}
> >      (cd ${S}; find scripts -type f -o -type l)
> > >>${src_kbuild_files}
> >  
> >      (cd ${O}; find scripts -type f) >>${obj_kbuild_files}
> 

Best regards

Patch

diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
index a1b00d39..6fa94508 100644
--- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl
@@ -252,7 +252,7 @@  install_kbuild() {
 
     mkdir -p ${destdir}
 
-    (cd ${S}; find . -path './scripts/*' -a -path './tools/*' -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \)) >>${src_kbuild_files}
+    (cd ${S}; find . \( -path './scripts/*' -o -path './tools/*' \) -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \)) >>${src_kbuild_files}
     (cd ${S}; find scripts -type f -o -type l) >>${src_kbuild_files}
 
     (cd ${O}; find scripts -type f) >>${obj_kbuild_files}