[PATCH bpf] bpf: Fix BTF_ID symbol generation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux