mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
selftests: keep the build status from wrapping to success
The top-level all and install rules return failure only when every selected target fails, which commitcad6f32665("selftests: Deescalate error reporting") deliberately kept as the default. They implement this by multiplying the exit statuses of the targets: ret=$$((ret * $$?)) A failing recursive make exits with status 2, so eight failing targets produce 256, and "exit 256" reports success. Building eight or more targets that all fail therefore succeeds, and install goes on to package an empty installation. Record a successful target instead of multiplying statuses. The rules still fail only when no target succeeds, and FORCE_TARGETS still stops at the first failure. Link: https://lore.kernel.org/r/20261014200115.1363363-2-sashal@kernel.org Fixes:5f70bde26a("selftests: fix build behaviour on targets' failures") Signed-off-by: Sasha Levin <sashal@kernel.org> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
cec2b4f55c
commit
907d138279
|
|
@ -227,7 +227,7 @@ all:
|
|||
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET \
|
||||
O=$(abs_objtree) \
|
||||
$(if $(FORCE_TARGETS),|| exit); \
|
||||
ret=$$((ret * $$?)); \
|
||||
[ $$? -eq 0 ] && ret=0; \
|
||||
done; exit $$ret;
|
||||
|
||||
run_tests: all
|
||||
|
|
@ -294,7 +294,7 @@ ifdef INSTALL_PATH
|
|||
OBJ_PATH=$(INSTALL_PATH) \
|
||||
O=$(abs_objtree) \
|
||||
$(if $(FORCE_TARGETS),|| exit); \
|
||||
ret=$$((ret * $$?)); \
|
||||
[ $$? -eq 0 ] && ret=0; \
|
||||
done; exit $$ret;
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user