From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BE9E279903; Wed, 27 May 2026 19:32:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779910357; cv=none; b=bo6DpxpdY2FkekuuueCvtoUTZIe68isuw/D7aYK1j+aF7SiLANjyWdEjVUubN8lGABpTQ/zAM6k5h3X+Mmy6wCEHJHTiAhZNamv5qBtZ76p5u/iW1EOq0CYQFJf8rgCMWdOngvTBxv8vvEM3aQKHghxuCZditZV+GMKNa28MZ0A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779910357; c=relaxed/simple; bh=XrV6pvz7EmVN8mpKSGyJZ16fe1BTF9LlQZAPlUsFwqc=; h=Date:From:To:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=TrVKdUW7/CW4fuPhIpd6eUNTLUnS2kaxr9GVdF6sxL9z9phci8cDzUFoQPhE8PrG4ok0b8AMhtlJDgs2hxb+Nbp4j+J3aOhRDUPuW3KF3DaJf+1St8wrJJ2ukAroq4Nscf2g/0rTW07+iOKogTRTchOljCl7ybwvNsDtbJPQe30= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.99) (envelope-from ) id 1wSJzL-000000003hp-0GZn; Wed, 27 May 2026 19:32:23 +0000 Date: Wed, 27 May 2026 20:32:18 +0100 From: Daniel Golle To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Nathan Chancellor , Nicolas Schier , Saravana Kannan , Ping-Ke Shih , Andy Shevchenko , David Sterba , Bryan O'Donoghue , Hariharan Basuthkar , Jeff Hugo , Filipe Manana , Bitterblue Smith , Wei Yang , Takashi Iwai , Aurabindo Pillai , Chih-Kang Chang , David Lechner , Daniel Golle , Miguel Ojeda , Gary Guo , Tamir Duberstein , Thomas =?iso-8859-1?Q?Wei=DFschuh?= , Pagadala Yesu Anjaneyulu , Bartosz Golaszewski , Jorge Ramirez-Ortiz , Masahiro Yamada , Guenter Roeck , Aleksander Jan Bajkowski , Boris Burkov , Blake Jones , Jonathan Corbet , Mauro Carvalho Chehab , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org Subject: [PATCH v5 2/4] scripts/jobserver-exec: propagate child exit status Message-ID: <660368ca16e2d3845577a9fd157d2f37f0e09e85.1779908995.git.daniel@makrotopia.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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 --- 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