Add tips to clean source tree to build help message. When user run
kunit.py after building another kernel for ARCH=foo, it is necessary
to run 'make ARCH=foo mrproper' to remove all build artifacts generated
during the build. In such cases, kunit build could fail.
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
---
tools/testing/kunit/kunit.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
index 7f9ae55fd6d5..db86a396ed33 100755
--- a/tools/testing/kunit/kunit.py
+++ b/tools/testing/kunit/kunit.py
@@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
'the options in .kunitconfig')
add_common_opts(config_parser)
- build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
+ build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
add_common_opts(build_parser)
add_build_opts(build_parser)
--
2.47.2
Em Tue, 29 Apr 2025 16:27:12 -0600
Shuah Khan <skhan@linuxfoundation.org> escreveu:
> Add tips to clean source tree to build help message. When user run
> kunit.py after building another kernel for ARCH=foo, it is necessary
> to run 'make ARCH=foo mrproper' to remove all build artifacts generated
> during the build. In such cases, kunit build could fail.
>
> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
> ---
> tools/testing/kunit/kunit.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
> index 7f9ae55fd6d5..db86a396ed33 100755
> --- a/tools/testing/kunit/kunit.py
> +++ b/tools/testing/kunit/kunit.py
> @@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
> 'the options in .kunitconfig')
> add_common_opts(config_parser)
>
> - build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
> + build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
> add_common_opts(build_parser)
> add_build_opts(build_parser)
>
Would be better instead to detect if the last build was not done
by kunit.py and call "make mrproper" inside kunit.py?
Thanks,
Mauro
On 4/29/25 23:18, Mauro Carvalho Chehab wrote:
> Em Tue, 29 Apr 2025 16:27:12 -0600
> Shuah Khan <skhan@linuxfoundation.org> escreveu:
>
>> Add tips to clean source tree to build help message. When user run
>> kunit.py after building another kernel for ARCH=foo, it is necessary
>> to run 'make ARCH=foo mrproper' to remove all build artifacts generated
>> during the build. In such cases, kunit build could fail.
>>
>> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
>> ---
>> tools/testing/kunit/kunit.py | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
>> index 7f9ae55fd6d5..db86a396ed33 100755
>> --- a/tools/testing/kunit/kunit.py
>> +++ b/tools/testing/kunit/kunit.py
>> @@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
>> 'the options in .kunitconfig')
>> add_common_opts(config_parser)
>>
>> - build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
>> + build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
>> add_common_opts(build_parser)
>> add_build_opts(build_parser)
>>
> Would be better instead to detect if the last build was not done
> by kunit.py and call "make mrproper" inside kunit.py?
Detecting last build and printing out the right "make ARCH= mrproper"
command is good. I don't think we want run the call make mrproper from
kunit.py - this shouldn't be a automatic step. It would be annoying
to loose build artifacts if it isn't what user would want.
thanks,
-- Shuah
>
> Thanks,
> Mauro
On Wed, 30 Apr 2025 at 06:27, Shuah Khan <skhan@linuxfoundation.org> wrote:
>
> Add tips to clean source tree to build help message. When user run
> kunit.py after building another kernel for ARCH=foo, it is necessary
> to run 'make ARCH=foo mrproper' to remove all build artifacts generated
> during the build. In such cases, kunit build could fail.
>
> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
> ---
Thanks for doing this.
This looks good to me, save for the issue below.
I do wonder whether there's a more general fix we can do in the
makefiles, but I'm not sure how that'd have to work. Maybe by storing
the architecture used somewhere and amending the error based on that,
or hacking around the specific x86_64/UML incompatibilities. But let's
go ahead with this fix regardless.
Cheers,
-- David
> tools/testing/kunit/kunit.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
> index 7f9ae55fd6d5..db86a396ed33 100755
> --- a/tools/testing/kunit/kunit.py
> +++ b/tools/testing/kunit/kunit.py
> @@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
> 'the options in .kunitconfig')
> add_common_opts(config_parser)
>
> - build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
> + build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
Because this string is enclosed by single quotes, the 'make ARCH=foo
mrproper' is not part of the string (and there's a missing terminating
quote as well).
Maybe change help= to use double quotes, and add the missing one? Or
use double quotes or backticks for the make example?
> add_common_opts(build_parser)
> add_build_opts(build_parser)
>
> --
> 2.47.2
>
On 4/29/25 21:54, David Gow wrote:
> On Wed, 30 Apr 2025 at 06:27, Shuah Khan <skhan@linuxfoundation.org> wrote:
>>
>> Add tips to clean source tree to build help message. When user run
>> kunit.py after building another kernel for ARCH=foo, it is necessary
>> to run 'make ARCH=foo mrproper' to remove all build artifacts generated
>> during the build. In such cases, kunit build could fail.
>>
>> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
>> ---
>
> Thanks for doing this.
>
> This looks good to me, save for the issue below.
>
> I do wonder whether there's a more general fix we can do in the
> makefiles, but I'm not sure how that'd have to work. Maybe by storing
> the architecture used somewhere and amending the error based on that,
> or hacking around the specific x86_64/UML incompatibilities. But let's
> go ahead with this fix regardless.
I agree the right fix is to see if kunit.py can suggest the right arch
to clean. I will take a look at that.
As you said, it is good to have this documented in this series.
>
> Cheers,
> -- David
>
>> tools/testing/kunit/kunit.py | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
>> index 7f9ae55fd6d5..db86a396ed33 100755
>> --- a/tools/testing/kunit/kunit.py
>> +++ b/tools/testing/kunit/kunit.py
>> @@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
>> 'the options in .kunitconfig')
>> add_common_opts(config_parser)
>>
>> - build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
>> + build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
>
> Because this string is enclosed by single quotes, the 'make ARCH=foo
> mrproper' is not part of the string (and there's a missing terminating
> quote as well).
>
> Maybe change help= to use double quotes, and add the missing one? Or
> use double quotes or backticks for the make example?
>
>
>> add_common_opts(build_parser)
>> add_build_opts(build_parser)
Thanks for the pointers. I will go look at those to make this
help message coded better,
thanks,
-- Shuah
On 4/30/25 15:25, Shuah Khan wrote: > On 4/29/25 21:54, David Gow wrote: >> On Wed, 30 Apr 2025 at 06:27, Shuah Khan <skhan@linuxfoundation.org> wrote: >>> >>> Add tips to clean source tree to build help message. When user run >>> kunit.py after building another kernel for ARCH=foo, it is necessary >>> to run 'make ARCH=foo mrproper' to remove all build artifacts generated >>> during the build. In such cases, kunit build could fail. >>> >>> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> >>> --- >> >> Thanks for doing this. >> >> This looks good to me, save for the issue below. >> >> I do wonder whether there's a more general fix we can do in the >> makefiles, but I'm not sure how that'd have to work. Maybe by storing >> the architecture used somewhere and amending the error based on that, >> or hacking around the specific x86_64/UML incompatibilities. But let's >> go ahead with this fix regardless. > > I agree the right fix is to see if kunit.py can suggest the right arch > to clean. I will take a look at that. It is an easy change to the main Makefile. Will send the patch tomorrow. We won't need the documentation and help message changes with the main Makefile change. thanks, -- Shuah
Shuah Khan <skhan@linuxfoundation.org> writes:
> Add tips to clean source tree to build help message. When user run
> kunit.py after building another kernel for ARCH=foo, it is necessary
> to run 'make ARCH=foo mrproper' to remove all build artifacts generated
> during the build. In such cases, kunit build could fail.
>
> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
> ---
> tools/testing/kunit/kunit.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
> index 7f9ae55fd6d5..db86a396ed33 100755
> --- a/tools/testing/kunit/kunit.py
> +++ b/tools/testing/kunit/kunit.py
> @@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
> 'the options in .kunitconfig')
> add_common_opts(config_parser)
>
> - build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
> + build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
> add_common_opts(build_parser)
Nit: could perhaps that line be broken in a bit more readable way?
build_parser = subparser.add_parser('build',
help='Builds a kernel with KUnit tests. '
'Successful build depends on a clean source tree. '
'Run mrproper to clean generated artifacts for prior '
'ARCH=foo kernel build. '
'Run "make ARCH=foo mrproper"')
(fixed "artifacts" while I was in the neighborhood :)
jon
On 4/29/25 16:49, Jonathan Corbet wrote:
> Shuah Khan <skhan@linuxfoundation.org> writes:
>
>> Add tips to clean source tree to build help message. When user run
>> kunit.py after building another kernel for ARCH=foo, it is necessary
>> to run 'make ARCH=foo mrproper' to remove all build artifacts generated
>> during the build. In such cases, kunit build could fail.
>>
>> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
>> ---
>> tools/testing/kunit/kunit.py | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
>> index 7f9ae55fd6d5..db86a396ed33 100755
>> --- a/tools/testing/kunit/kunit.py
>> +++ b/tools/testing/kunit/kunit.py
>> @@ -583,7 +583,7 @@ def main(argv: Sequence[str]) -> None:
>> 'the options in .kunitconfig')
>> add_common_opts(config_parser)
>>
>> - build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests')
>> + build_parser = subparser.add_parser('build', help='Builds a kernel with KUnit tests. Successful build depends on a clean source tree. Run mrproper to clean generated artifcats for prior ARCH=foo kernel build. Run 'make ARCH=foo mrproper')
>> add_common_opts(build_parser)
>
> Nit: could perhaps that line be broken in a bit more readable way?
>
> build_parser = subparser.add_parser('build',
> help='Builds a kernel with KUnit tests. '
> 'Successful build depends on a clean source tree. '
> 'Run mrproper to clean generated artifacts for prior '
> 'ARCH=foo kernel build. '
> 'Run "make ARCH=foo mrproper"')
It improves readability. Will fix it.
>
> (fixed "artifacts" while I was in the neighborhood :)
Thanks for catching it.
thanks,
-- Shuah
© 2016 - 2026 Red Hat, Inc.