All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] kbuild: enable pipefail for commands where possible
@ 2026-10-14  8:30 Thomas Weißschuh
  2026-10-14 21:40 ` Nathan Chancellor
  2026-10-15  8:36 ` sashiko-bot
  0 siblings, 2 replies; 4+ messages in thread
From: Thomas Weißschuh @ 2026-10-14  8:30 UTC (permalink / raw)
  To: Nathan Chancellor, Nicolas Schier
  Cc: linux-kbuild, linux-kernel, Nam Cao, kernel test robot,
	Thomas Weißschuh

The exit status of a shell pipeline by default only depends on the exit
status of its last command. If an earlier command fails this is silently
ignored. In this case the build continues operating on intermediate
state, potentially leading to confusing follow-up failures.

The 'pipefail' option can be used to exit the pipeline with an error as
soon as a single of its command fails which 'set -e' will elevate to
error exit of the whole command.

'pipefail' has been only standardized in POSIX 2024, but it is supported
by many shells anyways, including bash and dash. To avoid issues with
shells not implementing it, ignore failures silently.

Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/oe-kbuild-all/202610131613.BpOi6VPp-lkp@intel.com/
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
 scripts/Kbuild.include | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 8c311b997e24..1975d2739cdb 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -149,8 +149,11 @@ delete-on-interrupt = \
 		$(foreach sig, HUP INT QUIT TERM PIPE, \
 			trap 'rm -f $@; trap - $(sig); kill -s $(sig) $$$$' $(sig);))
 
+# try to enable pipefail
+try-pipefail = set -o pipefail || true 2>/dev/null
+
 # print and execute commands
-cmd = @$(if $(cmd_$(1)),set -e; $($(quiet)log_print) $(delete-on-interrupt) $(cmd_$(1)),:)
+cmd = @$(if $(cmd_$(1)),$(try-pipefail); set -e; $($(quiet)log_print) $(delete-on-interrupt) $(cmd_$(1)),:)
 
 ###
 # if_changed      - execute command if any prerequisite is newer than

---
base-commit: 27286bf096c51df05eec6664f18b945f8dd61c0e
change-id: 20261013-kbuild-error-propagation-8ab5f649ff36

Best regards,
--  
Thomas Weißschuh <thomas.weissschuh@linutronix.de>


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-15 10:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-14  8:30 [PATCH RFC] kbuild: enable pipefail for commands where possible Thomas Weißschuh
2026-10-14 21:40 ` Nathan Chancellor
2026-10-15 10:15   ` Thomas Weißschuh
2026-10-15  8:36 ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.