Marcus and Nick reported issue where BTF_ID macro generates same symbol in separate objects and that breaks final vmlinux link. Adding __LINE__ number suffix to make BTF_ID symbol more unique, which is not real fix, but it would help for now and meanwhile we can work on better solution as suggested by Andrii in [2]. [1] https://github.com/ClangBuiltLinux/linux/issues/1913 [2] https://lore.kernel.org/bpf/ZQQVr35crUtN1quS@krava/T/#m64d7c29c407d6adf0e7b420359958b3aafa7bf69 Reported-by: Marcus Seyfarth <m.seyfarth@xxxxxxxxx> Reported-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> --- include/linux/btf_ids.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h index a3462a9b8e18..a9cb10b0e2e9 100644 --- a/include/linux/btf_ids.h +++ b/include/linux/btf_ids.h @@ -49,7 +49,7 @@ word \ ____BTF_ID(symbol, word) #define __ID(prefix) \ - __PASTE(prefix, __COUNTER__) + __PASTE(__PASTE(prefix, __COUNTER__), __LINE__) /* * The BTF_ID defines unique symbol for each ID pointing -- 2.41.0