Re: [PATCH] kbuild: unset sub_make_done before calling kselftest build system

[email protected] Fri, 03 Jul 2026 06:14:48 +0000
Newsgroups org.kernel.vger.live-patching,org.kernel.vger.linux-kbuild,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete fix and inconsistent state: The patch correctly unsets `sub_make_done` for the `kselftest` targets to allow Kbuild command-line reevaluation when building external kernel modules. However, it fails to apply the same logic to the `tools/` and `tools/%` targets, introducing a discrepancy between build entry points.
--

commit 06c418388d65deb3d8494a6e8e7071c0e709186b
Author: Thomas Weißschuh <[email protected]>

kbuild: unset sub_make_done before calling kselftest build system

This commit unsets sub_make_done before invoking the kselftest build system to
ensure Kbuild reevaluates command-line flags when building test modules. It
mirrors a previous fix done for scripts/install.sh.

> diff --git a/Makefile b/Makefile
> index b9c5792c79e01..f717a4dc96d6a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1591,10 +1591,10 @@ tools/%: FORCE
>  
>  PHONY += kselftest
>  kselftest: headers
> -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
> +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests run_tests

[Severity: Medium]
Will make tools/selftests still fail after this change?

The tools/ and tools/% targets in Makefile delegate to the tools build
system, which can also trigger external kernel module builds (like bpf_testmod).

Because sub_make_done is not unset for these targets, invoking commands like
make tools/selftests or make tools/all will skip Kbuild's M= argument parsing.

Should sub_make_done also be unset in the tools/ and tools/% targets to maintain
consistency across the build entry points?

>  kselftest-%: headers FORCE
> -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
> +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests $*
>  
>  PHONY += kselftest-merge
>  kselftest-merge:

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260703-makefile-unset-submake-done-v1-1-6899248f3d6a@linutronix.de?part=1