On Fri, Mar 20, 2026 at 02:29:33PM -0700, Nathan Chancellor wrote:
> When the check_undefined command in kernel/trace/Makefile fails, there
> is no output, making it hard to understand why the build failed. Capture
> the output of the $(NM) + grep command and print it when failing to make
> it clearer what the problem is.
>
> Fixes: a717943d8ecc ("tracing: Check for undefined symbols in
> simple_ring_buffer")
> Signed-off-by: Nathan Chancellor <[email protected]>
Thanks!
Reviewed-by: Vincent Donnefort <[email protected]>
> ---
> Commit a717943d8ecc ("tracing: Check for undefined symbols in
> simple_ring_buffer") and its follow up fixes are in the kvmarm tree so
> this should go there as well. This is the rebased version of my
> suggestion in the original thread:
>
> https://lore.kernel.org/20260311221816.GA316631@ax162/
> ---
> kernel/trace/Makefile | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> index c5e14ffd36ee..d662c1a64cd5 100644
> --- a/kernel/trace/Makefile
> +++ b/kernel/trace/Makefile
> @@ -174,7 +174,13 @@ UNDEFINED_ALLOWLIST = __asan __gcov __kasan __kcsan
> __hwasan __sancov __sanitize
> $(shell $(NM) -u $(obj)/undefsyms_base.o 2>/dev/null |
> awk '{print $$2}')
>
> quiet_cmd_check_undefined = NM $<
> - cmd_check_undefined = test -z "`$(NM) -u $< | grep -v $(addprefix -e ,
> $(UNDEFINED_ALLOWLIST))`"
> + cmd_check_undefined = \
> + undefsyms=$$($(NM) -u $< | grep -v $(addprefix -e ,
> $(UNDEFINED_ALLOWLIST)) || true); \
> + if [ -n "$$undefsyms" ]; then \
> + echo "Unexpected symbols in $<:" >&2; \
> + echo "$$undefsyms" >&2; \
> + false; \
> + fi
>
> $(obj)/%.o.checked: $(obj)/%.o $(obj)/undefsyms_base.o FORCE
> $(call if_changed,check_undefined)
>
> ---
> base-commit: e3d585ed3ff891a00c2284fef4be9cf8581735ab
> change-id: 20260320-cmd_check_undefined-verbose-7d15f13f615d
>
> Best regards,
> --
> Nathan Chancellor <[email protected]>
>