commit c0bb9fb0e52a64601d38b3739b729d9138d4c8a1 upstream. Marcus and Satya reported an issue where BTF_ID macro generates same symbol in separate objects and that breaks final vmlinux link. ld.lld: error: ld-temp.o <inline asm>:14577:1: symbol '__BTF_ID__struct__cgroup__624' is already defined This can be triggered under specific configs when __COUNTER__ happens to be the same for the same symbol in two different translation units, which is already quite unlikely to happen. Add __LINE__ number suffix to make BTF_ID symbol more unique, which is not a complete fix, but it would help for now and meanwhile we can work on better solution as suggested by Andrii. Cc: stable@vger.kernel.org Reported-by: Satya Durga Srinivasu Prabhala <quic_satyap@quicinc.com> Reported-by: Marcus Seyfarth <m.seyfarth@gmail.com> Closes: https://github.com/ClangBuiltLinux/linux/issues/1913 Debugged-by: Nathan Chancellor <nathan@kernel.org> Co-developed-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/bpf/CAEf4Bzb5KQ2_LmhN769ifMeSJaWfebccUasQOfQKaOd0nQ51tw@mail.gmail.com/ Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://lore.kernel.org/r/20230915-bpf_collision-v3-2-263fc519c21f@google.com Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|---|---|---|
| .. | ||
| sched | ||
| unaligned | ||
| arm-smccc.h | ||
| atomic.h | ||
| bitmap.h | ||
| bitops.h | ||
| bits.h | ||
| btf_ids.h | ||
| bug.h | ||
| build_bug.h | ||
| cache.h | ||
| compiler-gcc.h | ||
| compiler.h | ||
| compiler_types.h | ||
| const.h | ||
| coresight-pmu.h | ||
| ctype.h | ||
| debugfs.h | ||
| delay.h | ||
| err.h | ||
| export.h | ||
| filter.h | ||
| find.h | ||
| ftrace.h | ||
| gfp.h | ||
| gfp_types.h | ||
| hash.h | ||
| hashtable.h | ||
| interrupt.h | ||
| io.h | ||
| jhash.h | ||
| kallsyms.h | ||
| kconfig.h | ||
| kern_levels.h | ||
| kernel.h | ||
| linkage.h | ||
| list.h | ||
| list_sort.h | ||
| log2.h | ||
| math.h | ||
| math64.h | ||
| mm.h | ||
| module.h | ||
| mutex.h | ||
| nmi.h | ||
| numa.h | ||
| objtool.h | ||
| overflow.h | ||
| pfn.h | ||
| poison.h | ||
| rbtree.h | ||
| rbtree_augmented.h | ||
| rcu.h | ||
| refcount.h | ||
| ring_buffer.h | ||
| seq_file.h | ||
| sizes.h | ||
| slab.h | ||
| spinlock.h | ||
| static_call_types.h | ||
| string.h | ||
| stringify.h | ||
| time64.h | ||
| types.h | ||
| zalloc.h | ||