Re: [PATCH v5 2/4] scripts/jobserver-exec: propagate child exit status

Nicolas Schier <[email protected]>
Newsgroups org.kernel.vger.linux-kbuild,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <ai2VuFWUxVRGjGKR@levanger>
On Wed, May 27, 2026 at 08:32:18PM +0100, Daniel Golle wrote:
> main() called JobserverExec().run() and discarded its return value,
> then the script exited with the implicit status 0. As a result, any
> Makefile that wired a build step through jobserver-exec saw the step
> silently succeed even when the wrapped command had failed.
> 
> Two in-tree callers were affected:
> 
>   Documentation/devicetree/bindings/Makefile
>     cmd_chk_style runs a python checker via jobserver-exec and uses
>     "&& touch $@ || true" so failures leave the stamp file untouched
>     and the next make rerun reports them again. The swallowed exit
>     code made the stamp file get created even on failure, caching the
>     failed run and hiding the reported issues until the inputs change.
> 
>   scripts/Makefile.vmlinux_o
>     cmd_gen_initcalls_lds runs scripts/generate_initcall_order.pl via
>     jobserver-exec; a perl failure was masked by the wrapper.
> 
> Return the subprocess exit code from main() and pass it to sys.exit()
> so the wrapped command's status reaches make.
> 
> Signed-off-by: Daniel Golle <[email protected]>
> ---
> v5: new patch; prereq for chk_style in 3/4 so style failures
>     leave the stamp file untouched instead of being cached
> 
>  scripts/jobserver-exec | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/jobserver-exec b/scripts/jobserver-exec
> index 758e947a6fb9..21b319e6c9a5 100755
> --- a/scripts/jobserver-exec
> +++ b/scripts/jobserver-exec
> @@ -28,8 +28,8 @@ def main():
>          sys.exit("usage: " + name +" command [args ...]\n" + __doc__)
>  
>      with JobserverExec() as jobserver:
> -        jobserver.run(sys.argv[1:])
> +        return jobserver.run(sys.argv[1:])
>  
>  
>  if __name__ == "__main__":
> -    main()
> +    sys.exit(main())
> -- 
> 2.54.0

Good catch, thanks!

For kbuild:
Reviewed-by: Nicolas Schier <[email protected]>

-- 
Nicolas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.