diff mbox series

kbuild: teach kselftest-merge to find nested config files

Message ID 20190520151614.19188-1-dan.rue@linaro.org
State Accepted
Commit 6d3db46c8e331908775b0135dc7d2e5920bf6d90
Headers show
Series kbuild: teach kselftest-merge to find nested config files | expand

Commit Message

Dan Rue May 20, 2019, 3:16 p.m. UTC
Current implementation of kselftest-merge only finds config files that
are one level deep using `$(srctree)/tools/testing/selftests/*/config`.

Often, config files are added in nested directories, and do not get
picked up by kselftest-merge.

Use `find` to catch all config files under
`$(srctree)/tools/testing/selftests` instead.

Signed-off-by: Dan Rue <dan.rue@linaro.org>

---
 Makefile | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

-- 
2.21.0

Comments

gregkh@linuxfoundation.org May 20, 2019, 5:56 p.m. UTC | #1
On Mon, May 20, 2019 at 10:16:14AM -0500, Dan Rue wrote:
> Current implementation of kselftest-merge only finds config files that

> are one level deep using `$(srctree)/tools/testing/selftests/*/config`.

> 

> Often, config files are added in nested directories, and do not get

> picked up by kselftest-merge.

> 

> Use `find` to catch all config files under

> `$(srctree)/tools/testing/selftests` instead.

> 

> Signed-off-by: Dan Rue <dan.rue@linaro.org>

> ---

>  Makefile | 5 ++---

>  1 file changed, 2 insertions(+), 3 deletions(-)


To be more specific here, the binderfs test is not catching the config
entry, so it would be nice to get this into the stable trees as well :)

> diff --git a/Makefile b/Makefile

> index a45f84a7e811..e99e7f9484af 100644

> --- a/Makefile

> +++ b/Makefile

> @@ -1228,9 +1228,8 @@ kselftest-clean:

>  PHONY += kselftest-merge

>  kselftest-merge:

>  	$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))

> -	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \

> -		-m $(objtree)/.config \

> -		$(srctree)/tools/testing/selftests/*/config

> +	$(Q)find $(srctree)/tools/testing/selftests -name config | \

> +		xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config

>  	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig

>  

>  # ---------------------------------------------------------------------------


is find run with $(Q)?  It isn't with other instances in the Makefile.

thanks,

greg k-h
Dan Rue May 30, 2019, 7 p.m. UTC | #2
On Mon, May 20, 2019 at 07:56:41PM +0200, Greg KH wrote:
> On Mon, May 20, 2019 at 10:16:14AM -0500, Dan Rue wrote:

> > Current implementation of kselftest-merge only finds config files that

> > are one level deep using `$(srctree)/tools/testing/selftests/*/config`.

> > 

> > Often, config files are added in nested directories, and do not get

> > picked up by kselftest-merge.

> > 

> > Use `find` to catch all config files under

> > `$(srctree)/tools/testing/selftests` instead.

> > 

> > Signed-off-by: Dan Rue <dan.rue@linaro.org>

> > ---

> >  Makefile | 5 ++---

> >  1 file changed, 2 insertions(+), 3 deletions(-)

> 

> To be more specific here, the binderfs test is not catching the config

> entry, so it would be nice to get this into the stable trees as well :)

> 

> > diff --git a/Makefile b/Makefile

> > index a45f84a7e811..e99e7f9484af 100644

> > --- a/Makefile

> > +++ b/Makefile

> > @@ -1228,9 +1228,8 @@ kselftest-clean:

> >  PHONY += kselftest-merge

> >  kselftest-merge:

> >  	$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))

> > -	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \

> > -		-m $(objtree)/.config \

> > -		$(srctree)/tools/testing/selftests/*/config

> > +	$(Q)find $(srctree)/tools/testing/selftests -name config | \

> > +		xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config

> >  	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig

> >  

> >  # ---------------------------------------------------------------------------

> 

> is find run with $(Q)?  It isn't with other instances in the Makefile.


I'm not entirely sure all the ways that $(Q) is used (it looks like it
just gets set to @), but if i run 'KBUILD_VERBOSE=1 make
kselftest-merge' I do see the find command printed before running:

    find ./tools/testing/selftests -name config | \
          xargs ./scripts/kconfig/merge_config.sh -m ./.config

I noticed find used inconsistently (sometimes with @, sometimes with
$(Q), sometimes with neither), so I picked the usage that seemed most
correct to me.

Dan

> 

> thanks,

> 

> greg k-h


-- 
Linaro - Kernel Validation
Masahiro Yamada May 31, 2019, 1:52 a.m. UTC | #3
On Fri, May 31, 2019 at 4:00 AM Dan Rue <dan.rue@linaro.org> wrote:
>

> On Mon, May 20, 2019 at 07:56:41PM +0200, Greg KH wrote:

> > On Mon, May 20, 2019 at 10:16:14AM -0500, Dan Rue wrote:

> > > Current implementation of kselftest-merge only finds config files that

> > > are one level deep using `$(srctree)/tools/testing/selftests/*/config`.

> > >

> > > Often, config files are added in nested directories, and do not get

> > > picked up by kselftest-merge.

> > >

> > > Use `find` to catch all config files under

> > > `$(srctree)/tools/testing/selftests` instead.

> > >

> > > Signed-off-by: Dan Rue <dan.rue@linaro.org>

> > > ---

> > >  Makefile | 5 ++---

> > >  1 file changed, 2 insertions(+), 3 deletions(-)

> >

> > To be more specific here, the binderfs test is not catching the config

> > entry, so it would be nice to get this into the stable trees as well :)

> >

> > > diff --git a/Makefile b/Makefile

> > > index a45f84a7e811..e99e7f9484af 100644

> > > --- a/Makefile

> > > +++ b/Makefile

> > > @@ -1228,9 +1228,8 @@ kselftest-clean:

> > >  PHONY += kselftest-merge

> > >  kselftest-merge:

> > >     $(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))

> > > -   $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \

> > > -           -m $(objtree)/.config \

> > > -           $(srctree)/tools/testing/selftests/*/config

> > > +   $(Q)find $(srctree)/tools/testing/selftests -name config | \

> > > +           xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config

> > >     +$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig

> > >

> > >  # ---------------------------------------------------------------------------

> >

> > is find run with $(Q)?  It isn't with other instances in the Makefile.

>

> I'm not entirely sure all the ways that $(Q) is used (it looks like it

> just gets set to @), but if i run 'KBUILD_VERBOSE=1 make

> kselftest-merge' I do see the find command printed before running:

>

>     find ./tools/testing/selftests -name config | \

>           xargs ./scripts/kconfig/merge_config.sh -m ./.config

>

> I noticed find used inconsistently (sometimes with @, sometimes with

> $(Q), sometimes with neither), so I picked the usage that seemed most

> correct to me.



I agree. Using $(Q) looks correct to me.



> Dan

>

> >

> > thanks,

> >

> > greg k-h

>

> --

> Linaro - Kernel Validation




-- 
Best Regards
Masahiro Yamada
Masahiro Yamada June 4, 2019, 5:30 p.m. UTC | #4
On Tue, May 21, 2019 at 12:19 AM Dan Rue <dan.rue@linaro.org> wrote:
>

> Current implementation of kselftest-merge only finds config files that

> are one level deep using `$(srctree)/tools/testing/selftests/*/config`.

>

> Often, config files are added in nested directories, and do not get

> picked up by kselftest-merge.

>

> Use `find` to catch all config files under

> `$(srctree)/tools/testing/selftests` instead.

>

> Signed-off-by: Dan Rue <dan.rue@linaro.org>

> ---

>  Makefile | 5 ++---

>  1 file changed, 2 insertions(+), 3 deletions(-)

>

> diff --git a/Makefile b/Makefile

> index a45f84a7e811..e99e7f9484af 100644

> --- a/Makefile

> +++ b/Makefile

> @@ -1228,9 +1228,8 @@ kselftest-clean:

>  PHONY += kselftest-merge

>  kselftest-merge:

>         $(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))

> -       $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \

> -               -m $(objtree)/.config \

> -               $(srctree)/tools/testing/selftests/*/config

> +       $(Q)find $(srctree)/tools/testing/selftests -name config | \

> +               xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config

>         +$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig

>

>  # ---------------------------------------------------------------------------

> --

> 2.21.0

>



Applied to linux-kbuild/fixes. Thanks.




-- 
Best Regards
Masahiro Yamada
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index a45f84a7e811..e99e7f9484af 100644
--- a/Makefile
+++ b/Makefile
@@ -1228,9 +1228,8 @@  kselftest-clean:
 PHONY += kselftest-merge
 kselftest-merge:
 	$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
-	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
-		-m $(objtree)/.config \
-		$(srctree)/tools/testing/selftests/*/config
+	$(Q)find $(srctree)/tools/testing/selftests -name config | \
+		xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
 	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
 
 # ---------------------------------------------------------------------------