Re: [PATCH] tracing: ring-buffer: allowlist clang-generated symbols

From: Vincent Donnefort

Date: Wed Jun 17 2026 - 09:28:54 EST


On Tue, Jun 16, 2026 at 06:42:03PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> In randconfig build testing using clang-22, I came across two
> sets of extra symbols in the ring buffer code that may get
> inserted by the compiler:
>
> Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> U memset
>
> Unexpected symbols in kernel/trace/simple_ring_buffer.o:
> U llvm_gcda_emit_arcs
> U llvm_gcda_emit_function
> U llvm_gcda_end_file
> U llvm_gcda_start_file
> U llvm_gcda_summary_info
> U llvm_gcov_init
>
> Add all of these to the allowlist.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> kernel/trace/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> index f934ff586bd4..aa8564fb8ff4 100644
> --- a/kernel/trace/Makefile
> +++ b/kernel/trace/Makefile
> @@ -146,6 +146,7 @@ KASAN_SANITIZE_undefsyms_base.o := y

Would "GCOV_PROFILE_undefsyms_base.o := y" work?

>
> UNDEFINED_ALLOWLIST = __asan __gcov __kasan __kcsan __hwasan __sancov __sanitizer __tsan __ubsan __msan \
> __aeabi_unwind_cpp __s390_indirect_jump __x86_indirect_thunk simple_ring_buffer \
> + memset llvm_gcda llvm_gcov \
> $(shell $(NM) -u $(obj)/undefsyms_base.o 2>/dev/null | awk '{print $$2}')
>
> quiet_cmd_check_undefined = NM $<
> --
> 2.39.5
>